Mais

Como posso fazer com que o valor do pop-up mude quando clico em outro elemento, sem clicar em uma área do mapa onde não há elementos primeiro?

Como posso fazer com que o valor do pop-up mude quando clico em outro elemento, sem clicar em uma área do mapa onde não há elementos primeiro?


Estou trabalhando com openLayers 3, que é novo para mim, e fui capaz de adicionar um pop-up ao meu mapa que aparece quando você clica em um recurso em uma camada vetorial. O problema é que o conteúdo do popup não é atualizado quando você clica em outro recurso; você precisa clicar em uma área onde não haja um recurso para fechá-la e, em seguida, clicar em outro recurso para que o conteúdo do popup seja atualizado. Gostaria que o conteúdo do pop-up fosse atualizado quando você clicar em um novo recurso, sem precisar clicar em uma área onde não haja recurso primeiro. Existe uma maneira de fazer isso? Aqui está o código para o pop-up que estou usando:

map.on ('click', function (evt) {var feature = map.forEachFeatureAtPixel (evt.pixel, function (feature, layer) {return feature;}); if (feature) {popup.setPosition (evt.coordinate) ; $ (elemento) .popover ({'placement': 'top', 'html': true, 'content': 'Parcela Nº: 
'+ feature.get (' parcel ') +'
'+ 'Proprietário:
'+ feature.get (' primowner ')}); $ (elemento) .popover ('mostrar'); } else {$ (element) .popover ('destroy'); }});

Destrua-o primeiro e depois mostre:

if (recurso) {$ (elemento) .popover ('destruir'); popup.setPosition (coordinate); // as chaves são citadas para evitar a renomeação no modo AVANÇADO. $ (elemento) .popover ({'placement': 'top', 'animation': false, 'html': true, 'content': feature.get ('txt')}); $ (elemento) .popover ('mostrar'); } else {$ (element) .popover ('destroy'); popup.setPosition (indefinido); }

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