/ / Nie można utworzyć wyskakujących okienek dla funkcji utworzonych przez dane KML - javascript, openlayers

Nie można utworzyć wyskakujących okienek dla funkcji utworzonych za pośrednictwem danych KML - javascript, openlayers

Korzystanie z OpenLayers 2.12, „Odbieram dane mapy KML, zawierające lokalizacje punktów mapy ze zdalnego serwera. Dane są pomyślnie odbierane przez mój Javascript, tworzone są funkcje i mogę zobaczyć znaczniki lokalizacji na mojej mapie.

To, co próbuję zrobić, to utworzyć wyskakujące okienko po kliknięciu każdej lokalizacji. Oto moja obsługa zdarzeń „wybrana przez funkcję”:

function site_selected(event) {

var feature = event.feature;
feature.closeBox = true;
feature.popupClass = OpenLayers.Class(OpenLayers.Popup.FramedCloud, {
"autoSize": true
});
feature.data.popupContentHTML = "<div>hello</div>";
feature.data.overflow = "auto";
feature.lonlat = new OpenLayers.LonLat(feature.geometry.x, feature.geometry.y);
var popup = feature.createPopup(true);
popup.show();
}

Jednak połączenie z feature.createPopup(true) zwraca null.

Sprawdziłem przykład wyskakujących okienek, ale nie dotyczy to ładowania danych KML. Ustawiam własność lonlat, jednak wciąż zwracam wartość null. Pytanie brzmi: dlaczego?

Odpowiedzi:

0 dla odpowiedzi № 1

spójrz na przykłady „popup” https://github.com/ccnmtl/openlayers/tree/master/openlayers/examples

funkcja linii createPopup: https://github.com/ccnmtl/openlayers/blob/master/openlayers/examples/popupMatrix.html#L857


0 dla odpowiedzi nr 2

Odkryłem, że użycie następującego kodu tworzy wyskakujące okienko i wyświetla je na mapie:

popup = new OpenLayers.Popup("popup",
new OpenLayers.LonLat(feature.geometry.x,feature.geometry.y),
new OpenLayers.Size(200,200),
"example popup",
true);

map.addPopup(popup);
popup.show();