KML Lower Coordinates / reduce points density

09.03 / 2015

SPÉCIFICITÉ

Script réduction des points KML

TECHNOLOGIE

Toutes les technologies KML (ex: API Gmap)

GESTION DE PROJET

API

Réalisation

Gestion de projet

Blog

C'est important d'être précis, et de respecter au "cordeau" les frontières tracées par l'homme pour délimiter les territoires. Cependant il s'avère que parfois trop de précision tue ... l'API Google Maps. En effet, si vous souhaitez utiliser des fichiers KML avec des coordonnées qui respectent scrupuleusement le contour d'un pays par exemple, il y a de grande chances que l'API Google Maps vous envoie paître. La solution est donc de réduire le nombre de coordonnées pour un tracé plus approximatif mais toujours significatif.

Le problème a été rencontré sur des sites en TYPO3 comme en Drupal, quand il s'agit de mettre en place des cartes Google Map avancées avec des définitions de zones.

Grâce à un script réalisé par nos soins, il est a présent possible de réduire le nombre de coordonnées (reduce coordinates ou reduce density), en choisissant la précision. En effet nous avons essayé de trouver un script ou programme pour retraiter un ensemble de fichiers KML, mais sans succès, donc pour les prochains qui chercheront, on met à disposition ce que nous avons fait :).

Dans l'exemple qui suit, vous avez à gauche une carte "précise" (et donc avec plein de coordonnées), et à droite une carte moins précise (mais avec moins de coordonnées). La précision est de 1/8, c'est à dire que le script a gardé une coordonnées toutes les 8 coordonnées.

KML no reduce
Carte précise
KML reduce
Carte moins précise, ayant été traité par le script

Pour télécharger le Script PHP KML reduce points density

Ce script, bien que très élémentaire, permet d'indiquer un répertoire d'entrée ou se trouvent un ou plusieurs kml qu'il doit traiter. Un répertoire de sortie, ou se trouveront les fichiers kml impactés (NB : Si ce répertoire n'existe pas, il sera créé, ce qui n'est pas le cas du répertoire d'entrée).

Attention : lorsque vous indiquez ces 2 répertoires, le script le fera par rapport à son emplacement, il se charge de créer un chemin absolu jusqu'à sa localisation. Par exemple, le script se trouve dans le répetoire "/var/www/monSuperSite/script/" et que vos fichier kml se trouvent "/var/www/monSuperSite/script/kml/2015/". Dans ce cas dans le champ répertoire d'entrée il faut stipuler "kml/2015". Il faut donc renseigner les chemins relatifs au script.

Et pour ce qui est de la précision, si vous voulez garder 1/5 des points, il vous suffit d'indiquer 5. Dans l'exemple présenté précédemment il fallait renseigner 8.

N'hésitez pas à me faire part de vos retours ou de vos conseils.

Archrissement :)

À lire aussi

Blog

Le mobile : Au plus proche des ses clients / administrés