单张地图宽度(以米为单位)
Leaflet map width in metres
我想要一个按钮,可以在我的传单地图上创建一个圆圈。
圆应位于地图中心,直径应为当前显示区域宽度的 75%。
要获得中心的 lat
和 lgn
很容易。但是我不知道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
以像素为单位。
我想要一个按钮,可以在我的传单地图上创建一个圆圈。
圆应位于地图中心,直径应为当前显示区域宽度的 75%。
要获得中心的 lat
和 lgn
很容易。但是我不知道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
以像素为单位。