Suite

Problèmes avec OpenLayers 2.14. Une fonction Draw.Feature n'active pas le canevas de dessin de polygone. Que devrais-je faire?


En réponse aux demandes de la communauté d'être plus précis sur mon problème et de soumettre tout le code, je me suis permis d'éditer le post précédent en espérant que cette fois le problème sera expliqué plus clairement et si une solution est trouvée, cela pourra aider les autres qui tombent sur une situation comme la mienne.

Dans mon projet, j'ai créé une carte qui contient quelques superpositions, dont 4 appartiennent à Google Maps (Terrain, Sattelite, Routes et Hybride).

Mon objectif était de créer une fonction qui appelle OpenLayers.Control.DrawFeature pour définir une couche dans laquelle l'utilisateur final peut dessiner un polygone. La fonction est déclenchée lorsqu'un bouton est enfoncé.

J'ai écouté la suggestion de Thomas et inséré une ligne d'alerte pour m'assurer qu'en appuyant sur le bouton la fonction fonctionne. Le résultat est que j'ai eu le message affiché sur mon écran lorsque j'ai cliqué sur le bouton mais rien de plus.

Ma question est la suivante : quel type d'ajustements dois-je apporter à la fonction pour pouvoir la faire fonctionner ? Où est-ce que je me suis trompé?

Je me suis inspiré de: http://dev.openlayers.org/examples/draw-feature.html mais comme je suis assez nouveau dans le domaine des SIG Internet (probablement à cause du manque d'expérience), ma fonction personnalisée n'a pas fonctionné .

Si je copie le code du lien supérieur présenté, cela fonctionne parfaitement mais mon objectif est de comprendre sa logique et de pouvoir créer quelque chose d'indépendant.

Voici mon code HTML :

Myproject body { width: 960px; hauteur : 500px ; position : relative ; } #map { largeur : 100 % ; hauteur : 100 % ; } div.fill { largeur : 100 % ; hauteur : 100 % ; } div.ol-mouse-position { largeur:50px; hauteur : 50px ; position=relatif ; La couleur rouge; } .layersDiv { background-color: red; }

Scaleline-id

{ fond : vert ; marge : 10 pixels ; police : Times New Roman ; largeur : 50 pixels ; police-couleur:rouge; }

Coordonnées

{ fond : rose ; marge : 10px ; position:absolue; police-couleur:bleu; }

  
Sélectionner le calque
Quartiers
Routes
Bâtiments
Google Maps hybride
Dessin

L'OL2.js est le script OpenLayers v 2.14 copié localement.


En supposant que votrethêtafonction est appelée, le problème que je vois est que vous instanciez un nouveau gestionnaire, dont vous n'avez pas besoin.

Le suivantthêtala fonction devrait fonctionner :

function theta() { var x = new OpenLayers.Layer.Vector ("un"); var p = new OpenLayers.Control.DrawFeature (x, OpenLayers.Handler.Polygon); map.addLayer(x); map.addControl(p); p.activer(); }


Voir la vidéo: Canevas de Wulff - Exercice 5 (Octobre 2021).