【发布时间】:2012-10-30 07:05:25
【问题描述】:
我正在尝试使用传单多面体对象进行我想象的相当常见的用例。
我使用 geojson 创建了 MultiPolygon:
var layer = L.GeoJSON(g, style_opts);
我想要在每个多边形的中心放置一个简单的文本标签。 (例如,将州名放在每个州的中心)。
我看过: https://groups.google.com/forum/?fromgroups=#!topic/leaflet-js/sA2HnU5W9Fw
这实际上覆盖了文本,但是当我添加一堆多边形时,它似乎以奇怪的方式使标签偏离中心,我目前无法找到问题所在。
我也看过:https://github.com/jacobtoye/Leaflet.label
但是当您将鼠标悬停在多边形上时,这似乎只会将标签放在多边形上,并且不会静态停留在多边形上。
我认为我最好的做法是使用第一个链接,并找出它改变位置的原因,但与此同时,如果有人知道在传单中的多边形上放置标签的快速简便的方法,我将非常感激。
另外,如果我对上述两个链接有任何错误的假设,请随时纠正我。
非常感谢。
【问题讨论】:
-
遗憾的是,6 年零 4 个月后,在 Leaflet 中仍然没有更好的方法来标记多边形。内置的工具提示类不提供相同的功能,并且几乎总是需要修改和自定义类来模仿真实的地图标签。与其抱怨,不如闭嘴写一个插件。同时,我想将此链接添加到图片中。 Esri Leaflet 项目描述了这种用于标签的方法,它也适用于 Leaflet 本身:esri.github.io/esri-leaflet/examples/labeling-features.html
-
我尝试在 vue js 中使用带有自定义 css 的 Leaflet.label 和 bindTooltip 来标记 geojson 多多边形,但这只是我的情况下的解决方案。谢谢@jhickok
标签: javascript mapping openlayers leaflet