여러 마커를 추가하고 각 마커에 infowindow를 표시 할 때 새로운 Google지도 API에 문제가 있습니다. 모든 마커가 표시되지만 내 주요 문제는 InfoWindow 항상 한 곳에서 보여 주지만 everywere를 보았지만 올바른 솔루션을 찾지 못하는 것 같습니다. xmlhttp.responseText를 사용하여 다른 함수에서 정보를 얻으려는 표시되는 모든 정보가 데이터베이스에서 나옵니다. getData입니다.google api infoWindow google maps api에서 1 마커 아래에 표시
내 코드
function showMap(data){
//Changing the json respose back to the javascript array
var LongLat = eval('(' + data + ')');
// Creating a new map
var map = new google.maps.Map(document.getElementById("map"), {
center: new google.maps.LatLng(-26.1981, 28.0488),
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
for (var i = 0; i < LongLat.length; i++) {
latLng = new google.maps.LatLng(LongLat[i][0],LongLat[i][1]);
// Creating a marker and putting it on the map
var marker = new google.maps.Marker({
position:latLng,
map: map,
title: LongLat[i][0]
});
var infoWindow = new google.maps.InfoWindow();
// Attaching a click event to the current marker
google.maps.event.addListener(marker, "click", function(point){
getData(this.position);
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
infoWindow.setContent(xmlhttp.responseText);
infoWindow.open(map,marker);
}
}
});
}
}
아래로하고 내 GetData의 기능은
function getData(d){
을 다음과 같다
// lantitude와 longitude로 개체 분리 p = (d.toString());
c = p.indexOf(',');
e = p.indexOf(')');
lat = p.substring(1,c);
lon = p.substring(c+1,e);
if(d == "results"){
var htmlCode = t;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById('results').innerHTML = xmlhttp.responseText;
}
}
if(xmlhttp.readyState==4 && xmlhttp.status==200){
alert(xmlhttp.responseText);
return xmlhttp.responseText;
}
var html = xmlhttp.open("GET","mapmaker.php?lat="+lat+"&lon="+lon,true);
xmlhttp.send();
}
다른 유사한 질문에서 답을 찾으려고 했습니까? 이 질문을 여러 번 본 느낌이 들었습니다. – slawekwin