Suite

Comment utiliser la souris pour sélectionner plusieurs entités sur une carte Web

Comment utiliser la souris pour sélectionner plusieurs entités sur une carte Web


Faites-moi savoir si cette question n'est pas assez détaillée ou précise.

J'ai une carte sur une page Web. J'ai une série d'outils sur la page Web où je sélectionne une seule entité sur la carte, puis j'effectue une action sur cette entité. c'est-à-dire remodeler l'entité, supprimer l'entité, afficher une fenêtre contextuelle avec des attributs détaillés sur l'entité. Tout cela fonctionne très bien avec une seule fonctionnalité.

Mais maintenant, j'ai besoin de sélectionner plusieurs fonctionnalités et d'effectuer la même opération sur elles en tant que groupe. Étant donné que toutes les caractéristiques seront situées à proximité, ce que j'aimerais faire, c'est pouvoir les sélectionner en utilisant la souris pour faire glisser un rectangle sur ces caractéristiques. Idéalement, cela me donnerait un éventail de fonctionnalités à parcourir ou peut-être à renvoyer au serveur pour les opérations côté serveur.

Voici ce que j'ai essayé jusqu'à présent :

require(["esri/toolbars/draw"], function (draw) { tb = new draw(map); tb.on("draw-end", getFeatures); tb.activate(draw.EXTENT); }); getFeatures = function (evt) { require(["esri/geometry/Polygon", "esri/tasks/query"], function (polygon, query) { var extendPoly = new polygon(evt.geometry); var extendQuery = nouvelle requête (); extendQuery.geometry = extendPoly.getExtent (); dojo.forEach(map.graphics.graphics, function (graphic) { if (extentQuery.contains(graphic.geometry)) { selectedFeatures.push(graphic.getContent()) ; } }); });

Cependant, lorsque j'arrive à extendQuery.contains, il est indiqué que contains n'est pas membre de extendQuery.


Vous devrez utiliser l'outil de dessin, où les utilisateurs peuvent dessiner des graphiques sur la carte. Vous devrez organiser un événementon("tirage fin")pour transmettre le graphique créé par l'utilisateur et effectuer une tâche de requête spatiale sur vos entités existantes.

Le résultat de cette requête spatiale sera une collection d'entités, que vous pourrez ensuite transmettre à vos autres outils. Voici un exemple de configuration de l'outil Dessin.