Openlayers: Как я могу идентифицировать Баллы с помощью onClick? - PullRequest
0 голосов
/ 25 сентября 2019

На моей карте открытых слоев есть список очков, который обрабатывается в виде списка значков, а затем корректно отображается на карте.

var markers = [icon1, icon2, icon3]
var vectorSource = new ol.source.Vector({
features:markers});
var stationLayer = new ol.layer.Vector({
source:vectorSource});
map.addLayer(stationLayer);

На следующем шаге я хочу сделать эти очкина карте кликабельны.При щелчке по точке таблица за пределами карты должна отображать дополнительную информацию о выбранной точке.Различные точки определяются через их положение в массиве.

Прочитав несколько примеров, я попробовал это:

map.on('click',function(event){
var coord = event.coordinate;
console.log(coord)
var source = stationLayer.getSource();
var feature = source.getClosestFeaturetoCoordinate(coord);
});

Событие щелчка запускается правильно, правильные координаты отображаются наприставка.Также есть сохраненная функция, но я не могу сказать, является ли это точкой и правильной ли она.

Можно ли как-нибудь получить индекс в маркерах от точки нажатия?

1 Ответ

0 голосов
/ 26 сентября 2019

Попробуйте с getFeaturesAtCoordinate Он получит все объекты, геометрия которых пересекается с предоставленной координатой.

....
 let features = vectorSource.getFeaturesAtCoordinate(event.coordinate);
        if (features.length > 0) {
          let data = features[0];
          console.log(data.get("NameOfProperty1"));
          console.log(data.get("NameOfProperty2"));
     });
....

Подробнее здесь: https://openlayers.org/en/latest/apidoc/module-ol_source_Cluster-Cluster.html#getFeaturesAtCoordinate

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...