我尝试使用传单标签,并且在几个页面上都成功了。我想使用相同的方法在另一个页面上显示标签,但它回复了一条我不理解的晦涩的技术消息:
Uncaught TypeError: Cannot read property 'call' of undefined
at e.whenReady (leaflet.js:6)
at e.addLayer (leaflet.js:6)
at e.showLabel (leaflet.label-src.js:538)
at e.showLabel (leaflet.label-src.js:287)
at e._onMarkerAdd (leaflet.label-src.js:383)
at e.fire (leaflet.js:5)
at e._layerAdd (leaflet.js:6)
at e.whenReady (leaflet.js:6)
at e.addLayer (leaflet.js:6)
at e.onAdd (leaflet.js:7)
经过大量研究,我发现 Leaflet.label 在 Leaflet 1.0.3 中已被弃用,这是有道理的,因为我们在其他页面中使用旧的传单版本,标签显示正确,但在较新的传单版本上它使 map 崩溃。 docs说我应该使用 bindTooltip
而不是 bindLabel
,但我不知道如何。我尝试在标记上使用一些内容来调用它,但它没有出现在 map 上,并且我没有在生成的结构中找到它。
所以,我的问题如下:如何在 Leaflet 1.0.3 中使用标签,该标签将绑定(bind)到标记并在平移/缩放的情况下进行调整?
最佳答案
Tooltip现在确实是 Leaflet 主库的直接一部分。
请注意,默认情况下它仅在鼠标悬停时出现,但您可以使用 permanent
让它始终可见的选项。
marker.bindTooltip("Some tooltip content", {
permanent: true
});
示例:http://playground-leaflet.rhcloud.com/tiqo/1/edit?html,output
关于升级到 1.0.3 时的传单标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43780990/