Como obter o local do recurso no OpenLayers v3

11

Depois de usar a interação de desenho ou modificar a interação, tenho um ouvinte que retorna o recurso que modificou ou adicionou.

Exemplo

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

Eu sei como obter o ID, mas preciso da localização (long lat) do recurso porque preciso salvá-lo no banco de dados, como posso fazer isso? Não o encontrei na API.

Jordânia
fonte

Respostas:

27

Se os recursos são pontos, use

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

Para geometrias de pontos, getCoordinatesretorna uma matriz de 2 números. O primeiro número é a xcoordenada. O segundo número é a ycoordenada.

E se você deseja converter coordem longitude e latitude, use:

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

O texto acima pressupõe que a projeção da visualização do mapa seja o Web Mercator (EPSG: 3857), que é o padrão.

erilem
fonte