Comment obtenir l'emplacement des fonctionnalités dans OpenLayers v3

11

Après avoir utilisé l'interaction de dessin ou modifié l'interaction, j'ai un écouteur qui renvoie la fonction modifiée ou ajoutée.

Exemple

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

Je sais comment obtenir l'identifiant, mais j'ai besoin de l'emplacement (lon lat) de la fonctionnalité car je dois l'enregistrer dans la base de données, comment puis-je le faire? Je ne l'ai pas trouvé dans l'API.

Jordan
la source

Réponses:

27

Si les entités sont des points, utilisez

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

Pour les géométries de point, getCoordinatesrenvoie un tableau de 2 nombres. Le premier nombre est la xcoordonnée. Le deuxième nombre est la ycoordonnée.

Et si vous voulez convertir coorden longitude et latitude, utilisez:

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

Ce qui précède suppose que votre projection de vue de carte est Web Mercator (EPSG: 3857), qui est la valeur par défaut.

erilem
la source