1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > android高德地图自定义图层 自定义图层-图层-教程-地图 JS API | 高德地图API

android高德地图自定义图层 自定义图层-图层-教程-地图 JS API | 高德地图API

时间:2020-11-08 00:56:22

相关推荐

android高德地图自定义图层 自定义图层-图层-教程-地图 JS API | 高德地图API

自定义图层CustomLayer

自定义图层是完全由开发者指定绘制方法的图层。该图层可以是 canvas、svg、甚至可以是 dom 组成的图层。 JSAPI 能够实现自定义图层与高德地图的同步平移和缩放,并调用开发者的 render 方法进行图层的重绘。 自定义图层使用 AMap.CustomLayer 类来进行构造,构造函数接受两个参数,第一个参数是作为图层的 dom 画布,第二个参数是图层的相关属性设定,与通用图层属性相同。以下为自定义图层的使用方式:

1. 创建一个自定义图层实例

// 获取 canvas 实例

var canvas = document.createElement('canvas');

// 将 canvas 宽高设置为地图实例的宽高

canvas.width = map.getSize().width;

canvas.height = map.getSize().height;

// 创建一个自定义图层

var customLayer = new AMap.CustomLayer(canvas, {

zIndex: 12,

zooms: [3, 18] // 设置可见级别,[最小级别,最大级别]

});

map.add(customLayer);

2. 为自定义图层添加渲染方法自定义图层的 render 方法即用户自定义的图层绘制方式。此 render 方法在以下两个时机进行调用:API在图层初次绘制

地图移动与缩放结束的时

在 render 方法中,开发者应该更新绘制时使用的容器内像素位置来重新绘制图层内容,这个像素位置是由每个经纬度坐标转换而来,通常使用 mapObj. lnglatToContainer 方法进行转换。

// 自定义的 render 方法

function onRender() {

for (var i = 0; i < provinces.length; i += 1) {

// 使用 lngLatToContainer 方法将经纬度转换成当前像素坐标

provinces[i].containerPos = map.lngLatToContainer(provinces[i].center);

}

draw();

if(!started){

autoSize();

started = true;

}

}

// 将自定义的 render 方法挂在自定义图层的 render 属性上

customLayer.render = onRender;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。