Google지도에 다음과 같은 문제가 있습니다.Infowindow in Googlemaps
게시자가 addOverlay()
으로 게시 한 마커를 반환하는 createMarker 함수를 만들었습니다. 이것은 완벽하게 작동하지만 마커가 나타납니다 만 유일한 문제는 마커에 대한 클릭 이벤트입니다. '이 텍스트를 게시하고 싶습니다'라는 텍스트로 채워지는 infowindow가 필요합니다. 대신 html이라는 var로 채워집니다. 나는 내 코드 (var html = 'test';
)의 시작 부분에 'html이 정의되지 않았다'라는 메시지를 받았다. 이것이 html var을 설정 한 이유이다. 모든 정보창에는 텍스트 'test'가 있습니다. updateInfoWindow()
을 사용해 보았지만 작동하지 않습니다.이 문제에 익숙한 사람은 누구입니까? 전체 소스를 제공 할 수 있지만 createMarker 함수로 충분하다고 생각합니다.
function GM_load() {
map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.enableScrollWheelZoom();
map.setMapType(G_HYBRID_MAP);
geocoder = new GClientGeocoder();
GM_showItems();
}
function GM_showItems() {
GDownloadUrl("modules/Googlemaps/ajax/getItems.php", function(data, responseCode) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
//start
var itemid = markers[i].getAttribute('id');
var title = markers[i].getAttribute('name');
var address = markers[i].getAttribute('address');
var city = markers[i].getAttribute('city');
var x = 0;
if (geocoder) {
geocoder.getLatLng(address + ' ' + city,
function(point) {
if (!point) {
alert(address + ' ' + city + " not found");
} else {
x = x+1;
Marker = createMarker(point, x);
map.addOverlay(Marker);
}
}
);
}
}
});
}
function createMarker(latlng, number) {
var marker = new GMarker(latlng);
marker.value = number;
GEvent.addListener(marker,"click", function() {
map.openInfoWindowHtml(latlng,'i want this text to be published');
});
return marker;
}