【发布时间】:2012-03-08 23:06:16
【问题描述】:
我创建了一个谷歌地图(api v3),其标记数量取决于搜索结果。当我单击标记时,它会打开一个信息窗口。让该信息窗口显示与其标记相关联的信息的最佳方式是什么?与所有标记相关的信息都在我从 ajax 请求收到的 json 对象中。
for (i=0; i < result.point.length; i++) {
var latLng = new google.maps.LatLng(result.proint[i].Latitude,result.point[i].Longitude);
var marker = new google.maps.Marker({
position: latLng,
title: i.toString()
//map: map
});
markersArray.push(marker);
var infowindow = new google.maps.InfoWindow({
content: 'specific information associated to the marker clicked'
});
google.maps.event.addListener(markersArray[i], 'click', function(event) {
infowindow.open(map, this);
});
【问题讨论】:
-
链接到实时代码会很有价值。
-
您想要多个信息窗口还是一个?您的代码现在的方式是为每个标记创建一个新的信息窗口,但是只会显示一个,即最后创建的一个。如果您的意图是只有一个,那么您应该将它的创建移出 for 循环。
-
我同意更多代码会有所帮助,至少是 JSON 对象。
-
感谢您指出这一点。是的,我的意图是只有一个。这是 json 对象: $arr = array(); foreach ($points as $row) { array_push($arr, array('Address' => $row->getAddress(),'Latitude' => $row->getLatitude(), 'Longitude' => $row- >getLongitude(),'PublicTransportation' => $row->getPublicTransportation(),'Name' => $row->getName(),'Description' => $row->getDescription() )); } die(json_encode(array('point' => $arr)));
-
你发现了吗?任何答案有帮助吗?如果有帮助,请将答案标记为有用。
标签: google-maps-api-3 google-maps-markers