我正在将地图从使用mapbox.js转换为mapbox-gl.js,并且无法绘制一个使用英里或米作为其半径而不是像素的圆。这个特定的圆圈用于显示距中心点在任何方向上的距离区域。
以前我可以使用以下内容,然后将其添加到图层组中:
// 500 miles = 804672 meters
L.circle(L.latLng(41.0804, -85.1392), 804672, {
stroke: false,
fill: true,
fillOpacity: 0.6,
fillColor: "#5b94c6",
className: "circle_500"
});
我在 Mapbox GL 中发现的唯一文档如下:
map.addSource("source_circle_500", {
"type": "geojson",
"data": {
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-85.1392, 41.0804]
}
}]
}
});
map.addLayer({
"id": "circle500",
"type": "circle",
"source": "source_circle_500",
"layout": {
"visibility": "none"
},
"paint": {
"circle-radius": 804672,
"circle-color": "#5b94c6",
"circle-opacity": 0.6
}
});
但这会以像素为单位渲染圆,它不会随缩放而缩放。Mapbox GL 目前是否有一种方法可以根据距离和缩放比例来渲染一个带有圆形(或多个)的图层?
我目前正在使用 Mapbox GL 的 v0.19.0。