Получить идентификатор функции openlayers5 - PullRequest
0 голосов
/ 31 мая 2019

В OL2 идентификаторы функций были сгенерированы внутренне. В OL5 это не так, поскольку идентификаторы не определены. Внутренний идентификатор функции был удален из OL5? Если нет, то что мне нужно сделать, чтобы получить идентификатор. Я запрашиваю идентификатор через:

feature.getId ()

Ответы [ 2 ]

0 голосов
/ 22 июля 2019

openlayers 5 не генерирует идентификатор функции.

Вы должны установить идентификатор функции (при необходимости) при ее создании.Используйте метод setId.Теперь, позвонив по номеру feature.getId(), вы получите идентификатор функции.

Необходимо учитывать, что в том же источнике карты идентификатор должен быть уникальным.

0 голосов
/ 31 мая 2019

Если geoJson или другой источник содержит идентификаторы объектов, они будут использоваться, в противном случае идентификатор объекта останется неопределенным.Вы можете создавать свои собственные идентификаторы, если они вам нужны.Если источник содержит набор функций с идентификатором и без него, вам необходимо убедиться, что автоматически созданные идентификаторы уникальны (например, используйте префикс).

var featureId = 0;
vector.getSource().on('addfeature', function(e){
  featureId++;
  if (!e.feature.getId()) {
    e.feature.setId('auto-gen-'+featureId);
  }
});
...