传单地图上的轮廓线标签

时间:2017-03-06 15:50:32

标签: javascript maps label leaflet contour

我有一张Leaflet地图,其中包含一个包含等高线的geoJSON。对应于每一行的高程位于feature.properties.Elevation中的geoJSON。我想实现以下目标:

Contour lines map

我在传单中尝试实现的目的是计算每条折线的中心,然后在包含feature.properties.Elevation数据的位置添加标记。

L.geoJson(contourJSON, {
  onEachFeature: function(feature, layer) {
    var label = L.marker(layer.getBounds().getCenter(), {
      icon: L.divIcon({
        className: 'label',
        html: feature.properties.Elevation,
        iconSize: [100, 40]
      })
    }).addTo(map);
  }
});

哪种作品,但没有漂亮的样式,并且不清楚哪个值属于特定行:

Contour lines output

添加高程标签的更好方法是什么,它是可读的,也可能是当前缩放级别的动态?我正在使用Leaflet 1.0.3,所以也许Tooltip可以提供解决方案?谢谢!

1 个答案:

答案 0 :(得分:3)

你可能对那些可能合并的Leaflet插件感兴趣:(不确定合并它们有​​多容易)

  

...在矢量数据上显示[s]标签,同时避免标签冲突。

  

沿折线显示文字。

您可能还想查看余下的Leaflet plugins

顺便说一句,我不确定你的标签/标记放在折线"中心"是合适的。您可以选择其中一个顶点,或者例如最右侧/东侧的顶点,以获得与您提供的示例类似的效果。