有一个有点奇怪的问题,希望有人能帮忙解决。
在leaflet中,一旦用户输入了纬度/经度并将一个点添加到地图上,我想能够在该点周围也添加一个10公里的正方形。
我尝试寻找计算距离x公里时正方形顶点的方法,但没有找到任何东西。但肯定有更简单的方法!
有人有什么想法吗?很高兴只需说L.polygon然后传入中心点和正方形大小。
谢谢,
Tayler
使用经纬度初始化一个半径为5000米的L.Circle
,获取其边界并用其来初始化一个L.Rectangle
:
new L.Rectangle(new L.Circle([0, 0], 5000).getBounds())
const perimeter = 100_000 // we want a rectangle with a 100km perimeter
const rectangleCenter = [13, -13] // center of the rectangle
const circle = L.circle(rectangleCenter, { radius: perimeter / 8 }).addTo(map)
const { _northEast, _southWest } = circle.getBounds()
map.removeLayer(circle)
L.rectangle([[_northEast.lat, _northEast.lng], [_southWest.lat, _southWest.lng]], { color: "#ff7800", weight: 1 }).addTo(map)