单张地图宽度(以米为单位)

Leaflet map width in metres

我想要一个按钮,可以在我的传单地图上创建一个圆圈。 圆应位于地图中心,直径应为当前显示区域宽度的 75%。 要获得中心的 latlgn 很容易。但是我不知道75%的地图半径是

我尝试了方法 getsize,但它 returns 的宽度为 px。但我需要 。 有插件吗?或者是否可以使用 zoomlevel 和来自 getsize 的像素来计算它?

获取地图边界(即 LatLngBounds),获取这些边界的东(或西)经度,然后使用 L.LatLng.distanceTo 从中获取米数,例如:

var center = map.getCenter();
var eastBound = map.getBounds().getEast();
var centerEast = L.latLng(center.lat, eastBound);

var dist = center.distanceTo(centerEast);
var radius = dist * 0.75

还要记住 Leaflet 有 L.Circle 以米(或 CRS 单位)为单位,L.CircleMarker 以像素为单位。