Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Leaflet 如何在仅给出1对[lat,lon]的传单中绘制矩形标记_Leaflet - Fatal编程技术网

Leaflet 如何在仅给出1对[lat,lon]的传单中绘制矩形标记

Leaflet 如何在仅给出1对[lat,lon]的传单中绘制矩形标记,leaflet,Leaflet,我需要在传单地图上的一个点周围画一个矩形。这一点是一对[lat,lon]。我怎么能轻松做到这一点?我知道画圆很容易。但是如何绘制矩形呢?下面的代码计算出矩形的坐标,然后将其添加到地图中 var latLng = L.latLng(your_coordinates); var currentPoint = map.latLngToContainerPoint(latLng); var width = 20; var height = 15; var xDif

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

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

    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.-获得给定中心坐标和半径的边界:

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);
换句话说,对象“边界”类似于一个矩形,因此您将拥有东北、西北、东南和东南坐标


更多信息:

如何确定矩形的大小/纵横比?大小是合理的。到1520年可能是20岁到15岁什么?像素?米?20像素乘以15像素是否可以给出米的值?好的,问题解决了。谢谢但是如何更改填充和线条颜色?在
L.rectangle
的选项哈希中操作样式。这是第二个参数(在我的示例中未使用)