1

マップ内のいくつかのポップアップを更新しようとしていますが、それを行うことができません。

最初にいくつかのマーカーを作成し、次のコードでそれらに関連付けられたポップアップを作成します。マーカーごとに 1 つのポップアップ:

 popFeature = new OpenLayers.Feature(markers, location); 
                         popFeature.closeBox = true;
                         popFeature.popupClass =     OpenLayers.Class(OpenLayers.Popup.FramedCloud, {
                                 'autoSize': true
                         });
                         popFeature.data.popupContentHTML = "hello";                         
popFeature.data.overflow = (false) ? "auto" : "hidden";     
                         var markerClick = function (evt) {
                                if (this.popup == null) {
                                    this.popup = this.createPopup(this.closeBox);
                                    map.addPopup(this.popup);
                                    this.popup.show();
                                } else {
                                    this.popup.toggle();
                                }
                                currentPopup = this.popup;
                                OpenLayers.Event.stop(evt);
                         };
                         mark.events.register("mousedown",     popFeature, markerClick);

その後、新しいマーカーをマーカー レイヤーに追加します。

ここまでは問題ありませんが、しばらくして popupcontentHTML を更新したいのですが、その値にアクセスする方法がわかりません。

OL API を読みましたが、取得方法がわかりません。機能、イベント、拡張機能について迷っています...

そのプロパティにアクセスして他の言葉を書くことができるかどうか知りたいです。

4

1 に答える 1

5

私は自分自身に答えます、おそらくそれは将来他の人を助けるでしょう:

for(i = 0; i < map.popups.length; i++){
if(map.popups[i].lonlat.lon == marker.lonlat.lon){
map.popups[i].setContentHTML("new content");
}
}

コンテンツは現時点で更新されます。

于 2012-07-26T09:10:16.300 に答える