同时设置样点和多边形单张

时间:2016-06-21 10:05:44

标签: javascript leaflet

我正在开发一个可以在地图上显示points的应用程序。为了改进应用程序,我还添加了show multipolygons的功能。

我已经创建了一个可以选择数据集的下拉菜单。一个是包含商店(点)的数据集,另一个是包含区域(多重多边形)。一切正常,我可以在地图上显示点或多边形。

因为我将应用程序构建为仅首先显示点,所以我只设计了点(请参阅下面的代码)。

var myStyle = {
"color": "#ff7800",
"weight": 5,
"opacity": 0.65
};

     window["mapDataLayer"] = L.geoJson(geojson, {
        pointToLayer: function (feature, latlng) {
            var markerStyle = { 
                fillColor: getColor(feature.properties.Fastfoodketen),
                color: "#696969",
                fillOpacity: 0.6,
                opacity: 0.9,
                weight: 1,
                radius: 8
            };
            return L.circleMarker(latlng, markerStyle);
        },
         onEachFeature: function (feature, layer){
           layer.on({
                click: function showResultsInDiv() {
                    var d = document.getElementById('tab4');
                    d.innerHTML = "";
                        for (prop in feature.properties){
                        d.innerHTML += prop+": "+feature.properties[prop]+"<br>";
                        }
                    $('.nav-tabs a[href="#tab4"]').tab('show');
                }
            }); },
         style: myStyle
    }).addTo(map);

现在我想要设置多边形的样式。 如何更改上面的代码以包含多边形?

我认为包含一个if / else循环来检查几何是一个点还是一个多边形,然后指向相应的样式是一个好方法。但是,我不知道如何检查几何是否为点/多边形。

1 个答案:

答案 0 :(得分:1)

这由this(强调我的)所涵盖:

  

pointToLayer:定义GeoJSON 如何生成Leaflet图层的Function。[...]

     

styleFunction定义用于样式化GeoJSON 线条和多边形Path选项,[...]

您可以在Leaflet documentation on GeoJSON options

中查看相关示例