Как получить расположение функции в OpenLayers v3

11

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

пример

draw.on('drawend', function (event) {
    // get the feature
    var feature = event.element;
    // ...listen for changes on it
    logStatus(feature.getId());
});

Я знаю, как получить идентификатор, но мне нужно местоположение (lon lat) функции, потому что мне нужно сохранить ее в БД, как я могу это сделать? Я не нашел его в API.

Иордания
источник

Ответы:

27

Если функции являются точками, используйте

var coord = event.feature.getGeometry().getCoordinates();

Для точечной геометрии getCoordinatesвозвращает массив из 2 чисел. Первое число - это xкоордината. Второе число - это yкоордината.

И если вы хотите преобразовать coordв долготу и широту, используйте:

coord = ol.proj.transform(coord, 'EPSG:3857', 'EPSG:4326');
var lon = coord[0];
var lat = coord[1];

Выше предполагается, что ваша проекция карты представляет собой Web Mercator (EPSG: 3857), который используется по умолчанию.

erilem
источник