So erhalten Sie den Funktionsspeicherort in OpenLayers v3

11

Nachdem ich die Zeichnungsinteraktion verwendet oder die Interaktion geändert habe, habe ich einen Listener, der die geänderte oder hinzugefügte Funktion zurückgibt.

Beispiel

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

Ich weiß, wie ich die ID erhalte, aber ich benötige den Speicherort (lon lat) der Funktion, da ich sie in der Datenbank speichern muss. Wie kann ich das tun? Ich habe es nicht in der API gefunden.

Jordan
quelle

Antworten:

27

Wenn die Funktionen Punkte sind, verwenden Sie

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

Für getCoordinatesPunktgeometrien wird ein Array mit 2 Zahlen zurückgegeben. Die erste Zahl ist die xKoordinate. Die zweite Zahl ist die yKoordinate.

Und wenn Sie coordin einen Längen- und einen Breitengrad konvertieren möchten, verwenden Sie:

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

Oben wird davon ausgegangen, dass Ihre Kartenansichtsprojektion Web Mercator (EPSG: 3857) ist. Dies ist die Standardeinstellung.

erilem
quelle