我想以精确的尺寸在地图上显示对象。
我有关于这些对象的参考数据,包含以米为单位的对象的长度和宽度,现在我需要根据缩放级别将米转换为像素图标大小的像素。
var meterlength = 50;
var meterwidth = 40;
//convert meters to pixels
var icon = L.divIcon({html:"<svg>..</svg>",iconSize:[xx,yy]});
我发现了https://github.com/makinacorpus/Leaflet.GeometryUtil/
具有长度和距离功能的GeometryUtils,但无法使其正常工作。
有什么想法吗?非常感谢你!
编辑:
这个答案解决了我原来的问题:
https://gis.stackexchange.com/a/198444
但是我使用&#34; zoomanim&#34;来缩小地图缩放图标。事件 - 遗憾的是 map.containerPointToLatLng() Methode适用于旧的缩放级别而不适用于新的缩放级别。 有解决方法吗?
答案 0 :(得分:0)
如果您希望图像代表对象的实际大小,那么您应该更好地使用L.imageOverlay
而不是标记,并尝试根据缩放级别调整其大小。
请参阅https://gis.stackexchange.com/questions/171609/resize-divicons-svgs-at-zoom-levels-leaflet
然后,您需要为图像叠加边界找到合适的坐标,而不是像素。
现在,如果确实想要根据缩放级别更改标记图标大小,那么您在SO和GIS SE上有几个涵盖此主题的帖子。