각 마커에 팝업을 첨부하려고합니다 (이 경우 OpenLayers 및 OpenStreetMaps를 사용하고 있습니다). 각 마커는 해당 팝업을 보여주는 '클릭'이벤트에 등록됩니다.events.register는 등록중인 이벤트를 자동 실행합니다.
그러나 마커 클릭을 기다리는 대신 시작시 모든 팝업을 실행하기 만하면됩니다.
약 1000 개 마커가 있습니다 내가 (만들 때 숨겨져) 마커와 팝업 채우는이 루프를 사용하고 있으므로 :
for (var i = 0; i < data.length; i++)
{
if (i == 1) {
var lonLat = new OpenLayers.LonLat(data[i].Lon, data[i].Lat).transform(fromProjection, toProjection);
var zoom = 5;
map.setCenter(lonLat, zoom);
}
var lonLat = new OpenLayers.LonLat(data[i].Lon, data[i].Lat).transform(fromProjection, toProjection);
AddingPopup(lonLat);
AddingMarker(i, lonLat);
그리고이 두 만드는 내 기능은 다음과 같습니다
function AddingMarker(i, lonLat) {
var marker = new OpenLayers.Marker(lonLat);
markers.addMarker(marker);
marker.events.register('click', marker, PopupsShow(i));
};
function AddingPopup(lonLat) {
var popup = new OpenLayers.Popup("Popup", lonLat, null, "text", true);
map.addPopup(popup);
popup.hide();
};
을
그리고 이것은 자동 발사 실행시 모든 마커되고있는 기능입니다 :
function PopupsShow(i) {
map.popups[i].show();
};
여기에 내가 누락되었습니다. 실행시 PopupsShow 기능이 시작되는 이유는 마커가 클릭되기를 기다리지 않고 있기 때문입니다. 주변을 둘러 보았지만 아무 도움도되지 않는 것 같습니다.
감사합니다.