美文网首页
2020-06-10

2020-06-10

作者: 虔城南野 | 来源:发表于2020-06-11 19:59 被阅读0次

iOS在高德地图上展示谷歌瓦片地图

特别提醒:请下载高德地图3D版本SDK,2D版本加载层级有限。


谷歌瓦片URL链接格式

https://mt2.google.cn/vt/lyrs=y&hl=zh-CN&gl=cn&x=%ld&y=%ld&z=%ld&scale=%d

mt0~mt3:对应不同的瓦片服务器;

lyrs=s:卫星图;

lyrs=y:带标签的卫星图;

x、y分别对应图片横向、纵向的序号,z对应地图缩放级别,scale对应屏幕分辨率倍数。

代码实现

@interface MATileGoogleOverlay : MATileOverlay

@end

@implementation MATileGoogleOverlay

- (NSURL *)URLForTilePath:(MATileOverlayPath)path {

    NSString *tileUrl = [NSString stringWithFormat:@"https://mt2.google.cn/vt/lyrs=y&hl=zh-CN&gl=cn&x=%ld&y=%ld&z=%ld&scale=%d", path.x, path.y, path.z, (int)path.contentScaleFactor];

    return [NSURL URLWithString:tileUrl];

}

- (void)loadTileAtPath:(MATileOverlayPath)pathresult:(void(^)(NSData*,NSError*))result {

    NSURL *tileUrl = [self URLForTilePath:path];

    //通过链接下载图片并回调(缓存已经下载的图片以便下次请求时从本地获取)

    result(UIImagePNGRepresentation(downloadImg), nil);

}

@end

@interface GoogleMapViewController () <MAMapViewDelegate>

{

     IBOutlet MAMapView*mapView;

}

@property (nonatomic, strong) MATileGoogleOverlay *googleOverlay;

@end

@implementation 

- (void)viewDidLoad {

    [super viewDidLoad];

    [mapView addOverlay:self.googleOverlay];

}

- (MATileGoogleOverlay *)googleOverlay {

    if (_googleOverlay == nil) {

        NSString *tileUrl = [NSString stringWithFormat:@"https://mt2.google.cn/vt/lyrs=y&hl=zh-CN&gl=cn&x={x}&y={y}&z={z}&scale={scale}"];

         _googleOverlay = [[MATileGoogleOverlay alloc] initWithURLTemplate:tileUrl];

        _googleOverlay.minimumZ = 3;

        _googleOverlay.maximumZ = 19;

        _googleOverlay.boundingMapRect = MAMapRectWorld;

    }

    return _googleOverlay;

}

- (MAOverlayRenderer *)mapView:(MAMapView *)mapView rendererForOverlay:(id<MAOverlay>)overlay {

    if([overlay isKindOfClass:[MATileGoogleOverlay class]]) {

        MATileOverlayRenderer *tileRenderer = [[MATileOverlayRenderer alloc] initWithTileOverlay:overlay];

        return tileRenderer;

    }

    return nil;

}

相关文章

  • 有效的沟通即可降低成本也可心情愉悦2020-06-10

    有效的沟通即可降低成本也可心情愉悦2020-06-10 一...

  • 2020-06-18

    2020-06-16 2020-06-15 2020-06-14 2020-06-12 2020-06-10 ‘夫...

  • 2020-06-16

    2020-06-15 2020-06-14 2020-06-12 2020-06-10 ‘夫妻日记 2019年10...

  • 2020-06-16

    2020-06-15 2020-06-14 2020-06-12 2020-06-10 ‘夫妻日记 2019年10...

  • 2020-06-15

    2020-06-14 2020-06-12 2020-06-10 ‘夫妻日记 2019年10月星期一 今天和领导闹...

  • 【D169】如何觉察说话是否带“评价”——写作营共读打卡第136

    2020-06-10,周三,晴 今天阅读《非暴力沟通》第三章。 Day136《如何觉察说话是否带“评价”》 ——写...

  • 2020-06-10

    《2020-06-10》 ---- 上联:上有天,下有地,天地中间父母立。 下联: 诸君侯群龙,墨艳香十里,雁飞羽...

  • 2020-06-14

    2020-06-12 2020-06-10 ‘夫妻日记 2019年10月星期一 今天和领导闹了点矛盾,内心一直闷闷...

  • 精力管理第一天

    为什么精力不够用? 2020-06-10 精力是什么,简单的说就是精神和体力。随着年龄的增长,烦恼的增加,人们对自...

  • 2020-06-12

    2020-06-10 ‘夫妻日记 2019年10月星期一 今天和领导闹了点矛盾,内心一直闷闷不乐,明明是领导做的不...

网友评论

      本文标题:2020-06-10

      本文链接:https://www.haomeiwen.com/subject/mmwptktx.html