仅给出1 [lat,lon]对

时间:2015-06-04 20:27:00

标签: leaflet

我需要在传单地图中的一个点周围绘制一个矩形。这一点是[lat,lon]对。我怎么能轻松做到这一点?我知道很容易划出一个圆圈。但是我怎么画一个矩形呢?

2 个答案:

答案 0 :(得分:3)

以下代码计算出矩形的坐标,然后将其添加到地图中。

    var latLng = L.latLng(your_coordinates);
    var currentPoint = map.latLngToContainerPoint(latLng);
    var width = 20;
    var height = 15;
    var xDifference = width / 2;
    var yDifference = height / 2;
    var southWest = L.point((currentPoint.x - xDifference), (currentPoint.y - yDifference));
    var northEast = L.point((currentPoint.x + xDifference), (currentPoint.y + yDifference));
    var bounds = L.latLngBounds(map.containerPointToLatLng(southWest),map.containerPointToLatLng(northEast));
    L.rectangle(bounds).addTo(map);

答案 1 :(得分:0)

以米为单位指定半径会更容易:

您可以通过以下方式实现:

1.- 使用给定的中心坐标和半径获取边界:

let radiusMts = 5500;
let bounds = L.latLng(44.6730555555556, 6.9225).toBounds(radiusMts); 

2.- 添加反应角的边界:

L.rectangle(bounds).addTo(map);

此外,您还可以为矩形设置颜色:

L.rectangle(bounds, {color: "#ff7800", weight: 1}).addTo(map);

换句话说,对象“边界”就像一个矩形,因此您将拥有东北、西北、东南和西南坐标。

更多信息:https://leafletjs.com/reference-1.7.1.html#latlng