Я собираюсь преобразовать карту с помощью 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 для отображения слоя с кругом (или несколькими), который основан на расстоянии и масштабах с увеличением?
В настоящее время я использую v0.19.0 из Mapbox GL.