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.

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.