Мне нужно загрузить некоторые функции в векторном слое и иметь функцию стиля.OL3: Clustering Vector Особенности, когда не удается определить Тип функции
var features = new ol.format.GeoJSON().readFeatures(geojsonStr, {
featureProjection: 'EPSG:3857'
});
var vectorSource = new ol.source.Vector({
features: features,
});
/*
var clusterSource = new ol.source.Cluster({
distance: 15,
source: vectorSource
});
*/
var customStyleFunction = function(feature, resolution) {
....
}
var vectorLayer = new ol.layer.Vector({
//source: clusterSource,
source: vectorSource,
style : customStyleFunction
});
map.addLayer(vectorLayer);
Я не знаю, какую геометрию я буду получать в geojsonStr
. Проблема в том, что когда моя коллекция имеет тип «Точка», я могу ее сгруппировать, но с любыми другими типами я не вижу слой ... Как я могу кластерные точки и игнорировать полигоны и линии? или пусть OL3 будет достаточно умен, чтобы решить?
EDIT: Я прочитал https://github.com/openlayers/openlayers/pull/4917
Итак, вы хотите получить все функции и проверить их индивидуально, чтобы добавить их в источник вектора в случае, если они являются Точкой, и полностью игнорировать их, если они что-то еще, не так ли? Или вы хотите сделать что-то еще с другими функциями? – Icarus
Нет. У меня есть строка GeoJSON с FeatureCollection. Пока мы можем предположить, что все геометрии одного типа. Проблема в том, что я должен установить источник, прежде чем я узнаю, какие геометрии у меня есть в коллекции, и не могу определить, могу ли я использовать «clusterSource» или «vectorSource» в моем «vectorLayer». Но .... (не главная проблема) было бы здорово, если бы я мог получить смешанный FeatureCollection и кластер только Точки, оставляющие другие геометрии нетронутыми. –
После прочтения https://github.com/openlayers/openlayers/pull/4917 Я почти там, но все еще не могу условно выбрать 'vectorSource' или' clusterSource' для присоединения к 'vectorLayer'. –