2020-06-10

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;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容