传单地图宽度(以米为单位)
Posted
技术标签:
【中文标题】传单地图宽度(以米为单位)【英文标题】:Leaflet map width in metres 【发布时间】:2016-05-31 19:18:53 【问题描述】:我想要一个在我的传单地图上创建一个圆圈的按钮。
圆圈应放置在地图中心,直径应为当前显示区域宽度的 75%。
要获得中心的lat
和lgn
很容易。但我不知道 75% 的地图以 米 为半径。
我尝试了 getsize
方法,但它返回 px 的宽度。但我需要 米。
有插件吗?还是可以用zoomlevel和getsize的Pixel来计算?
【问题讨论】:
您能否详细说明您正在使用的技术和软件。从问题中不清楚,所以这使得任何人都无法回答你。使用edit 按钮添加这些详细信息。 【参考方案1】:获取地图边界(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
以像素工作。
【讨论】:
也非常感谢 Circle 和 CircleMarker 的有用提示。 L.latlng 需要改为 L.latLng。尝试编辑,但更改少于 6 个字符以上是关于传单地图宽度(以米为单位)的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Geopandas 在地图上显示以米为单位的比例尺、指北针以及经纬度坐标轴?
将圆的半径(以米为单位)缩放到 D3.js d3.geo.mercator 地图