Bonsoir, ou plutôt Bonnuit !
Je viens poster ici parce que j'ai rien compris à ce que j'ai trouvé sur internet.
Et aussi parce que je déprime...
Pour commencer, en pièce jointe à ce sujet, l'application que je développe.
- L'utilisateur renseigne son adresse, il clique ensuite sur le bouton « Géoportail » ou « Google Map », et la carte s'affiche avec un marqueur situé sur l'adresse qu'il a saisie.
- Si l'adresse n'est pas trouvée, message d'information... ... ...
Maintenant passons au niveau des problèmes :
- Ci-dessous voici comment je place mon marqueur (on peut surement faire mieux). Problème, l'image n'est pas positionnée au bon endroit, elle est centrée par rapport aux coordonnées, au lieu d'être juste au dessus...
- Ensuite, si l'utilisateur à la mauvaise idée de changer l'adresse qu'il a saisie, ou lorsque l'utilisateur change le marqueur de place sur la carte Google et qu'il revient sur la carte Géoportail, il faut déplacer le marqueur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 // positionnement du marqueur var position = new OpenLayers.Geometry.Point(this.longitude, this.latitude); position.transform(OpenLayers.Projection.CRS84, this.carteGeoportail.projection); // création du marqueur this.marqueurGeoportail = new OpenLayers.Feature.Vector( position, null, { externalGraphic:IMAGE_MARQUEUR, graphicWidth:20, graphicHeight:34 } ); // couche du marqueur var couche = new OpenLayers.Layer.Vector('Marqueur'); couche.addFeatures([this.marqueurGeoportail]); this.carteGeoportail.getMap().addLayer(couche);
Autant j'arrive à placer un marqueur, autant je suis incapable de le déplacer après. J'ai essayé le code suivant, mais non.
- Et si maintenant, je veux déplacer mon marqueur... Comment qu'on fait ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 // positionnement du marqueur var position = new OpenLayers.Geometry.Point(this.longitude, this.latitude); position.transform(OpenLayers.Projection.CRS84, this.carteGeoportail.projection); // recentre le marqueur this.marqueurGeoportail.geometry = new OpenLayers.Geometry().move = position;
Dans la doc j'ai vu DragFeature, mais un « alert(OpenLayers.Control.DragFeature); » me donne undefined, donc bon.
- Est-il possible de demander au Géoportail les coordonnées d'une adresse ?
Partager