Suite

Comment puis-je modifier la valeur de la fenêtre contextuelle lorsque je clique sur une autre entité, sans cliquer d'abord sur une zone de carte où il n'y a pas d'entités ?


Je travaille avec openLayers 3, ce qui est nouveau pour moi, et j'ai pu ajouter une fenêtre contextuelle à ma carte qui s'affiche lorsque vous cliquez sur une entité dans une couche vectorielle. Le problème est que le contenu contextuel ne se met pas à jour lorsque vous cliquez sur une autre fonctionnalité ; vous devez cliquer sur une zone où il n'y a pas de fonctionnalité pour la fermer, puis cliquez sur une autre fonctionnalité pour que le contenu contextuel s'actualise. J'aimerais que le contenu contextuel soit mis à jour lorsque vous cliquez sur une nouvelle fonctionnalité, sans avoir à cliquer d'abord sur une zone où il n'y a pas de fonctionnalité. Y a-t-il un moyen que je puisse faire? Voici le code du popup que j'utilise :

map.on('click', function(evt) { var feature = map.forEachFeatureAtPixel(evt.pixel, function(feature, layer) { return feature; }); if (feature) { popup.setPosition(evt.coordinate) ; $(element).popover({ 'placement': 'top', 'html': true, 'content': 'N° de colis : 
'+ feature.get('colis')+'
'+ 'Propriétaire:
'+ feature.get('primowner') }); $(element).popover('afficher'); } else { $(element).popover('destroy'); } });

Détruisez-le d'abord, puis montrez :

if (caractéristique) { $(element).popover('destroy'); popup.setPosition(coordonnée); // les clés sont entre guillemets pour empêcher le renommage en mode AVANCÉ. $(element).popover({ 'placement': 'top', 'animation': false, 'html': true, 'content': feature.get('txt') }); $(element).popover('afficher'); } else { $(element).popover('destroy'); popup.setPosition(undefined); }

http://jsfiddle.net/jonataswalker/9qorz7kd/


Voir la vidéo: Comment puis je modifier mon pseudonyme - Tutoriel #2 (Octobre 2021).