Comment déterminer l'aire d'un polygone dans OpenLayers 3?
Cet article vous guidera dans l'ajout d'un polygone, puis dans l'obtention de la surface calculée à l'aide d'une sphère.
Les polygones sont un excellent moyen de représenter la superficie approximative du terrain sur une carte, et il est souvent utile de connaître la zone du polygone que vous avez définie. Ceci est possible dans OpenLayers 3; un puissant outil de cartographie JavaScript.
Cet article vous guidera dans l'ajout d'un polygone, puis dans l'obtention de la surface calculée à l'aide d'une sphère.
Veuillez noter que vous devez avoir une carte OpenLayers fonctionnelle installée dans une page Web pour suivre cet article.
Veuillez noter que vous devez avoir une carte OpenLayers fonctionnelle installée dans une page Web pour suivre cet article. Si vous n'en avez pas, Comment créer une carte à l'aide d'OpenLayers 3.
- 1Créez une entité surfacique. La fonction constructeur Polygon a besoin d'un tableau de tableaux de coordonnées; définissez d'abord ce tableau dans une variable afin de pouvoir l'utiliser plus tard. Copiez simplement la ligne de code suivante dans votre fichier
<script></script> element:.coordonnées var = [[10, 20], [20, 30], [30, 20], [20, 10]]; var polygon_feature = new ol.Feature ({geometry: new ol.geom.Polygon ([coordonnées])}); - 2Ajoutez l'entité à un calque vectoriel. Pour ajouter le polygone à la carte, vous devez l'ajouter à une source, que vous ajoutez à une couche vectorielle, que vous pouvez ensuite ajouter à la carte:
var vector_layer = new ol.layer.Vector ({source: new ol.source.Vector ({features: [polygon_feature]})}) map.addLayer (vector_layer); - 3Transformez la géométrie de l'entité pour utiliser des coordonnées.
var current_projection = new ol.proj.Projection ({code: "EPSG: 4326"}); var new_projection = tile_layer.getSource (). getProjection (); polygon_feature.getGeometry (). transform (current_projection, new_projection); - 4Créez une sphère pour effectuer le calcul. La sphère doit être de la taille de la Terre (doit avoir un rayon de 6,3 mètres). Techniquement, la sphère a un rayon égal au demi-grand axe de l'ellipsoïde WGS84.
var sphère = nouvelle sphère ol. (6378137);
- 5Utilisez la sphère pour calculer la surface à l'aide de la méthode geodesicarea (). Parce que la méthode fournit une valeur en mètres carrés, divisez par un million pour obtenir des kilomètres carrés.
var area_m = Sphere.geodesicArea (coordonnées); var area_km = area_m / 1000/1000; console.log ('zone:', zone_km, 'km²'); // CONSOLE: superficie: 2317133,7166773956 km² - 6Vérifiez que la réponse de la zone a du sens. Nous savons que c'est correct car il semble avoir à peu près la même taille que l'Algérie, qui a une superficie de 2381 741 km² (d'après Wikipedia).
- N'ayez pas peur d'utiliser la documentation de l'API OpenLayers 3: bien que cela soit écrasant au début, il est essentiel d'apprendre à faire de nouvelles choses avec OpenLayers.
Lisez aussi: Comment utiliser des visages sur Snapchat?
En parallèle