Jak uzyskać lokalizację funkcji w OpenLayers v3

11

Po użyciu interakcji rysowania lub modyfikacji interakcji mam detektora, który zwraca funkcję, która zmodyfikowała lub dodała.

Przykład

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

Wiem, jak uzyskać identyfikator, ale potrzebuję lokalizacji (lon lat) funkcji, ponieważ muszę ją zapisać w bazie danych. Jak to zrobić? Nie znalazłem tego w interfejsie API.

Jordania
źródło

Odpowiedzi:

27

Jeśli funkcje są punktami, użyj

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

Dla geometrii punktowych getCoordinateszwraca tablicę 2 liczb. Pierwsza liczba to xwspółrzędna. Druga liczba to ywspółrzędna.

A jeśli chcesz przekonwertować coordna długość i szerokość geograficzną, użyj:

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

Powyższe zakłada, że ​​twoją projekcją widoku mapy jest Web Mercator (EPSG: 3857), który jest domyślny.

erilem
źródło