Openlayers et les événements sur plusieurs couches (OpenLayer.La couche.Vecteur)
Une autre journée de travail avec openlayers et un autre problème.
À savoir: - j'ai plusieurs couches vectorielles sur le dessus les uns des autres pour les différents types de choses (des voitures, des voyages, de l'histoire et des domaines). Ils ont tous les événements que im essayant de l'attraper... Mais comme Niklas découvert, lorsque vous activez les événements sur un calque, il est déplacé sur le dessus et les événements sur les couches ne le feu.
Est-il un moyen de contourner cela? Parce que quand je la déplace sur la zone polygone je veux événement de tir et l'affichage de son nom et quand je bouge la souris sur la voiture marqueur je veux cas d'incendie. Et sans que je ne veux pas les mettre sur la même couche, parce que je veux qu'il soit possible de les activer ou de désactiver rapidement et sans boucle, à travers toutes les caractéristiques et de les désactiver chaque.
Alan
Edit1: j'ai fait quelques recherches et découvert, que vous pouvez utiliser même le contrôle sur plusieurs couches. qui pourrait probablement résoudre ce problème pour moi. im de contrôle de l'atm et de tester si l'ajout de plusieurs couches de contrôle unique est la solution à mon problème ou pas.
OriginalL'auteur Odif Yltsaeb | 2011-04-08
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé cela quand j'ai eu le même problème, en essayant d'obtenir de multiples couches de réagir à des événements de souris.
La solution, juste au cas où quelqu'un d'autre trouve ce fil est beaucoup plus simple.
La SelectFeature de contrôle prend un tableau de couches Vectorielles et si tous les connexes vous avez besoin de réagir à des événements de la souris (pointer et cliquer) sont dans ce tableau, ils travaillent TOUS, et pas uniquement à celle qui a été déplacée vers le haut.
Donc, dans le plan approuvé de solution à ce fil, il peut être beaucoup plus simple en faisant ceci:
Cela va enregistrer les événements appropriés sur les deux couches et de les rendre à la fois en live.
J'espère que cela aide quelqu'un d'autre d'achoppement sur cette question.
Comme l'a dit ailleurs, à l'aide de OpenLayers est pas dur, trouver la bonne façon de faire les choses avec elle est.
OriginalL'auteur Martin Fraser
ce résoudre mon problème :
avant :
après :
Espère que cela aide
OriginalL'auteur Jakikiller
Bien voici la solution:
Juste un objet blob pour la manipulation de tout ce que j'ai (ou n'importe quel visiteur) le faire sur la page de la carte. Et dans cette méthode que j'ai maintenant lier l'événement à.. en suivant la méthode que je lier différents jQuery événements à différents éléments du dom. Et puis il y a la méthode qui est un wrapper pour jQuery.ajax, de sorte que tous les appels ajax passer par une méthode qui a du succès et erreur rappels comme ses paramètres.. et ainsi de suite. Fondamentalement, j'ai pensé de son mieux pour créer un gros objet plutôt que de créer des tas de fonctions, qui tous recevoir la carte comme un paramètre.
En fait... après avoir écrit cette méthode que j'ai eu à mettre à jour. Mais, les changements ont été spécifique à mon cas.. Pour tout le monde, qui doit résoudre le même problème, ici exemple devrait suffire 🙂
Ok, merci et bonne chance!
OriginalL'auteur Odif Yltsaeb
Je suis honoré d'être mentionné comme ça! 🙂
J'ai fini par substitution de la fonction activer la Fonction de Gestionnaire dans un fichier js: (a commenté la ligne est la seule différence.)
J'ai aussi trouvé que le choix des contrôles travaillé sur des couches de ne pas être sur le dessus, donc je pense que votre approche à l'aide de plusieurs couches dans le contrôle semble bon.
Ok.. j'ai eu de travail.. au moins plus de problèmes semblent être derrière moi...
Curieux de voir la solution, bonne chance! 🙂
Vous pouvez le vérifier maintenant :). En fait.. avec OpenLayers est pas dur... Trouver la bonne façon de faire les choses est H A R D!
OriginalL'auteur Niklas Wulff