#1 Sat 02 December 2017 11:15
- fredalva
- Juste Inscrit !
- Date d'inscription: 1 Dec 2017
- Messages: 1
Zone clickable sur openlayer
Bonjour, débutant en programmation javascript je souhaiterai afficher un fond de carte uploadé par l'utilisateur puis utiliser les outils de dessin polygon afin de créer des zones clickable sur la carte.
Est-ce faisable ? Auriez-vous des pistes sur la meilleur façon de procéder ?
Merci
Hors ligne
#2 Mon 04 December 2017 15:11
Re: Zone clickable sur openlayer
Bonjour FredAlva,
Ta demande est assez vaste mais je vais essayer de te donner quelques pistes pour t'aider dans ton développement.
Après avoir codé ta carte basique avec l'Api d'OpenLayers (http://openlayers.org/en/latest/examples/),
1. Upload d'une couche par l'utilisateur :
Pour donner la possibilité d'uploader la couche à l'utilisateur, il faut savoir quelle source de données tu veux utiliser :
En ce qui concerne les sources WMS, WFS... tout ce qui se rapporte à une URL, tu peux juste coder un input pour entrer le lien du flux puis charger cette URL dans les sources de la couche SIG.
Pour les vecteurs de source GeoJson par exemple, tu dois utiliser un input de type file pour charger la donnée shape côté serveur et ensuite la charger dans la source de ton vecteur.
2. Création des Zones par l'utilisateur:
Je te conseille de créer un nouveau vecteur dans lequel tu ajouteras des objets (features) de format polygone. Tu peux t'aider de l'exemple suivant: http://openlayers.org/en/latest/example … tures.html
Après le dessin, il faut donner l'option à l'utilisateur d'enregistrer la géométrie du vecteur dans une base de donnée sous format geojson par exemple. Tu peux realoder ce format sur la carte depuis la base PostgreSQL.
3. zones cliquables :
Il est possible d'utiliser les fonctions liées à l'objet Map pour sélectionner les polygones dessinés précédemment et afficher les informations stockées.
Le plus délicat est la phase 2 surtout si tu débutes. N'hésite pas à faire part de ton avancement et n'abandonne jamais.
Florian
Hors ligne