Я работал над приложением, в котором вы можете показать points
на карте. Чтобы улучшить приложение, я добавил функциональность шоу multipolygons
.Стиль и точки и мультиполигоны одновременно Листовка
Я создал dropdowmenu, где вы можете выбрать набор данных. Один из них представляет собой набор данных, содержащий магазины (точки), а другой содержит участки (многополигоны). Все работает отлично, и я могу показать на карте точки или полигоны.
Поскольку я создаю приложение, чтобы показывать только точки сначала, я только начертил точки (см. Код ниже).
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, чтобы проверить, была ли геометрия точкой или мультиполигоном, а затем направляется к соответствующему стилю. Тем не менее, я не знаю, как проверить, является ли геометрия точкой/полигоном.
Я проверил сайт листовка раньше, но когда я реализую 'style', он изменяет мне обе точки (которые я не хочу менять) и multipolygons. Я редактировал свой вопрос с помощью нового кода. –
Хорошо, что это хорошо! Но как проверить, является ли функция точкой или полигоном? –
'if (feature.geometry.type === 'Point') {...}'. Посмотрите на [GeoJSON spec] (http://geojson.org/) – IvanSanchez