mapbox-gl画圆注意事项

首先,要实现地图上按照一定距离(米)画圆,需要使用mapbox-gl的表达式功能(expressions),首先找到墨卡托坐标距离和屏幕上的像素换算公式

根据函数,传入圆的地理距离和圆中心点所在的纬度坐标,计算地图缩放到20级时,圆在屏幕上的像素尺寸

 

function metersToPixelsAtMaxZoom(meters, latitude) {return meters / 0.075 / Math.cos(latitude * Math.PI / 180)}

 circle-radius 那里用stops

//添加数据源

map.addSource("circle_source",

{

"type": "geojson",

"data": {

"type": "FeatureCollection",

"features": [

{"type": "Feature","geometry": {"type": "Point","coordinates": [110.132, 21.768]} }]}});//添加圆的图层

map.addLayer({

"id": "circle_layer",//类型设置

"type": "circle",//数据源id设置

"source": "circle_source","paint": {  

 //设置圆的半径随地图缩放而变化"

circle-radius": {stops: [ [0, 0],[20, pixelRadius(jsonData.feature[0].properties.radius,jsonData.feature[0].geometry.coordinates[1])]],base: 2}, 

"circle-opacity": 0.3,

"circle-color": "#ffae000"}}); 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值