Как я могу использовать стили и всплывающие окна с данными геоджона? - PullRequest
0 голосов
/ 15 февраля 2019

Я хочу взять все данные для некоторых полигонов (координаты, popupContent, заголовок элемента управления, стили) из файла * .geojson.Я хочу отдельный элемент управления для каждого полигона.Всплывающие окна и элементы управления работают с функцией следующей функции:

function onEachFeature(feature, layer) {
    var ObjektLayer = L.geoJSON();
        ObjektLayer.addData(feature);
    if (feature.geometry.type == "Polygon" )
        {if (feature.properties.control != null)
         {controls.addOverlay(ObjektLayer,feature.properties.control);
            };
        if (feature.properties.popupContent != null)
            {ObjektLayer.bindPopup(feature.properties.popupContent);
            };
        ObjektLayer.addTo(map);  // nicht für Marker
        };
 };

Если я добавлю функцию стиля, это не сработает:

function style (feature) {
if (feature.properties.stroke != null) {
return {color:          feature.properties.stroke,
        weight:         feature.properties.strokeWidth,
        opacity:        feature.properties.strokeOpacity,
        fillOpacity:    feature.properties.fillOpacity,
        fill:           feature.properties.fill,
        fillColor:      feature.properties.fillColor
        }
}
else
return {};
}

Функция стиля работает только при использованиипростая функция, например:

function onEachFeature(feature, layer) {layer.bindPopup().addTo(map);}

Конечно, в этом случае элементы управления не работают.Мой призыв к * .geojson:

    $.ajax(overlay).done(function(data) {
    data = JSON.parse(data);
    L.geoJson(data, 
            {pointToLayer: MarkerStyle,
            style: style,
            onEachFeature: onEachFeature
            });
    });

Марки в коде работают хорошо.Что делать?Спасибо за проверку кода.

Gruss, wonk

...