一、设置MATileOverlay
1.根据URL模版(即指向相关图层图片的URL)创建MATileOverlay对象。
2.设置MATileOverlay的可见最大/最小Zoom值。
3.设定MATileOverlay的可渲染区域。
4.将MATileOverlay对象添加到MAMapView中。
5.实现MAMapViewDelegate的mapView:viewForOverlay:函数,在瓦片显示在地图View上。
let tileOverlay = MATileOverlay.init(urlTemplate: "[https://mt3.google.cn/maps/vt?lyrs=y@194&hl=zh-CN&gl=cn&x={x}&y={y}&z={z}"](https://mt3.google.cn/maps/vt?lyrs=y@194&hl=zh-CN&gl=cn&x=%7Bx%7D&y=%7By%7D&z=%7Bz%7D%22))
/* minimumZ 是tileOverlay的可见最小Zoom值. */
tileOverlay!.minimumZ = 1
/* minimumZ 是tileOverlay的可见最大Zoom值. */
tileOverlay!.maximumZ = 20
/* boundingMapRect 是用来 设定tileOverlay的可渲染区域. */
tileOverlay!.boundingMapRect = MAMapRectWorld
mapView.add(tileOverlay)
二、代理方法调用
func mapView(_ mapView: MAMapView!, rendererFor overlay: MAOverlay!) -> MAOverlayRenderer! {
// if (overlay.isKind(of: MATileOverlay.self))
// {
//
// }
// return nil;
let renderer = MATileOverlayRenderer.init(tileOverlay: (overlay as! MATileOverlay))
return renderer;
}
ps这里有个坑:
如果不把if注释掉,那你在定位地方永远看不到谷歌的卫星图,因为这个是返回nil的时候是返回高德正常的图层,只有在国外才会显示Google的,所以要全部覆盖,就全部返回自己定义的图层。
网友评论