android高德地图自定义图层,自定义图层-Canvas

自定义图层

html,body,#container {

width: 100%;

height: 100%;

}

var map = new AMap.Map('container', {

center: [116.306206, 39.975468],

zooms: [3, 10],

zoom:3

});

function getData(callback){

AMap.plugin('AMap.DistrictSearch', function() {

var search = new AMap.DistrictSearch();

search.search('中国', function(status, data) {

if (status === 'complete') {

var positions = []

var provinces = data['districtList'][0]['districtList']

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

positions.push({

center: provinces[i].center,

radius:Math.max(2, Math.floor(Math.random() * 10))

})

}

callback(positions)

}

});

});

}

function addLayer(positions){

AMap.plugin('AMap.CustomLayer', function() {

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

var customLayer = new AMap.CustomLayer(canvas, {

zooms: [3, 10],

alwaysRender:true,//缩放过程中是否重绘,复杂绘制建议设为false

zIndex: 120

});

var onRender = function(){

var retina = AMap.Browser.retina;

var size = map.getSize();//resize

var width = size.width;

var height = size.height;

canvas.style.width = width+'px'

canvas.style.height = height+'px'

if(retina){//高清适配

width*=2;

height*=2;

}

canvas.width = width;

canvas.height = height;//清除画布

var ctx = canvas.getContext("2d");

ctx.fillStyle = '#08f';

ctx.strokeStyle = '#fff';

ctx.beginPath();

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

var center = positions[i].center;

var pos = map.lngLatToContainer(center);

var r = positions[i].radius;

if(retina){

pos = pos.multiplyBy(2);

r*=2

}

ctx.moveTo(pos.x+r, pos.y)

ctx.arc(pos.x, pos.y, r, 0, 2*Math.PI);

}

ctx.lineWidth = retina?6:3

ctx.closePath();

ctx.stroke();

ctx.fill();

}

customLayer.render = onRender;

customLayer.setMap(map);

});

}

getData(addLayer);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值