Leaflet Marker Tooltip居中

时间:2018-02-14 09:52:55

标签: javascript css leaflet markers

我想显示标记的中心(内部)工具提示。

背景

我想显示每个标记的计数(第一个 - >最后一个),我发现我可以使用工具提示(任何更好的建议)

所以我的标记现在看起来像这样,

var marker = L.marker(latlng, {icon: blueIcon}).bindTooltip(feature.properties.count, 
                    {
                permanent: true, 
                direction: 'right'
            });

我找不到有关方向centered或类似方法的任何进一步文档。

工具提示提供了查看哪个是第一个和最后一个标记的功能,但它似乎不是最佳做法。

所以我的问题:

  • 有没有比工具提示更好的解决方案?
  • 如何以标记为中心显示计数?

实施例

电流: enter image description here

通缉: enter image description here

(这里我会将背景隐藏起来,所以我只能看到文字。)

2 个答案:

答案 0 :(得分:2)

我发现你可以添加GROUP BY。 参考:http://leafletjs.com/reference-1.0.0.html#tooltip-direction

我用DivIcon

解决了我的问题
direction: center

与css一样

var numberIcon = L.divIcon({
                    className: "number-icon-default",
                    iconSize: [25, 41],
                    iconAnchor: [10, 44],
                    popupAnchor: [3, -40],
                    html: feature.properties.count        
              });

结果

enter image description here

答案 1 :(得分:2)

  

有比工具提示更好的解决方案吗?

不一定“更好”(这取决于您的确切要求),但更简单的解决方案是使用带有一些HTML文本的标记图标。

许多传单plugins可以为您提供此类功能,例如Leaflet.extra-markers

var map = L.map('map').setView([48.86, 2.35], 11);

var redMarker = L.ExtraMarkers.icon({
  number: '42',
  icon: 'fa-number',
  markerColor: 'red',
  shape: 'square',
  prefix: 'fa'
});

L.marker([48.86, 2.35], {
  icon: redMarker
}).addTo(map);

L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
  attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
<!-- Leaflet assets -->
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin="" />
<script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet-src.js" integrity="sha512-IkGU/uDhB9u9F8k+2OsA6XXoowIhOuQL1NTgNZHY1nkURnqEGlDZq3GsfmdJdKFe1k1zOc6YU2K7qY+hF9AodA==" crossorigin=""></script>

<!-- Leaflet.extramarkers assets -->
<link rel="stylesheet" href="https://unpkg.com/leaflet-extra-markers@1.0.6/src/assets/css/leaflet.extra-markers.css" />
<script src="https://unpkg.com/leaflet-extra-markers@1.0.6/src/assets/js/leaflet.extra-markers.js"></script>

<div id="map" style="height: 200px"></div>