leaflet js:如何为L.CircleMarker创建工具提示?

时间:2012-06-27 08:49:21

标签: leaflet

我想知道是否有办法为L.CircleMarker设置工具提示?

var geojsonLayerVessel = new L.GeoJSON(null, {
    pointToLayer: function (latlng){
    return new L.CircleMarker(latlng, {
        radius: 5,
        fillColor: "#ff7800",
        color: "#000",
        weight: 1,
        opacity: 1,
        fillOpacity: 0.8,
        title: "test"
    });
}
}); 

尝试了上面的代码,但它无法正常工作。

2 个答案:

答案 0 :(得分:1)

这对CircleMarkers无效。 但是你可以创建一个小DivIcon并用圆角设计它。 DivIcon支持'title'选项。

http://jsfiddle.net/GZHJX/

提供pointToLayer的功能:

function (latlng){
    return L.marker(latlng, 
                    { icon : L.divIcon({ className : 'circle',
                                         iconSize : [ 5, 5 ]}),
                      title: 'test'});
}

div的风格:

div.circle {
    background-color: #ff7800;
    border-color: black;
    border-radius: 3px;
    border-style: solid;
    border-width: 1px;
    width:5px;
    height:5px;
}

答案 1 :(得分:0)

对于GeoJSON图层,您可以按照this example收听'featureparse'事件以绑定弹出窗口。这些方面的东西:

var geoJsonLayer = new L.GeoJSON(null,{
pointToLayer: function (latlng){
return new L.CircleMarker(latlng, {
    radius: 5,
    fillColor: "#ff7800",
    color: "#000",
    weight: 1,
    opacity: 1,
    fillOpacity: 0.8,
});

geoJsonLayer.on('featureparse', function(e){
//Now you can bind popups to features in the layer, and you have access to
//attributes on the GeoJSON object through e.properties:
e.layer.bindPopup('Hello! ' + e.properties.someProperty);
});

//now you add some some data to your layer and add it to the map....
geoJsonLayer.addGeoJSON(someGeoJson);
map.addLayer(geoJsonLayer);

希望这有帮助!