【发布时间】:2014-07-06 19:11:31
【问题描述】:
我已经在 mysql 数据库的地图上绘制了一千多个标记。此页面 map.php 采用 xml 并获取信息。在这个数组中,几个点在数据库中有多个条目,但谷歌地图只显示最近绘制的标记的信息窗口。
我希望信息窗口列出所有这些位置,类似于循环在 php 中的工作方式。因此,共享经纬度的所有内容都将在一个信息窗口中
我使用的代码:
downloadUrl("map/map_data_source.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var date = markers[i].getAttribute("date");
var artist = markers[i].getAttribute("artist");
var venue = markers[i].getAttribute("venue");
var address = markers[i].getAttribute("address");
var city = markers[i].getAttribute("city");
var idgigs = markers[i].getAttribute("id");
var country = markers[i].getAttribute("country");
var count = markers[i].getAttribute("count");
var swith = markers[i].getAttribute("swith");
var stage = markers[i].getAttribute("stage");
var type = markers[i].getAttribute("type");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var html =
'<div id="infoWindow" width="600px"><img src="projects/components/' + artist + '">' +
'<br><br>' + date +
'<br><b>' + venue + '</b> / ' + city + '<br>' + swith + stage +
'<br><b><a class="second_sub_menu" href="../projects/bands.php?sub=Setlist&info=' + artist + '&id=' + idgigs + '">SHOW INFORMATION</a></b>';
var marker = new google.maps.Marker({
map: map,
position: point,
icon: 'http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=' + count + '|' + type + '|000000',
zIndex: i
});
bindInfoWindow(marker, map, infoWindow, html);
}
});
}
function bindInfoWindow(marker, map, infoWindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(map, marker);
if (map.getZoom() < 4) map.setCenter(marker.getPosition());
if (map.getZoom() < 4) map.setZoom(4);
});
google.maps.event.addListener(map, "click", function() {infoWindow.close();});
}
所以这个问题已经出现了一百万零一次,但似乎仍然没有真正的答案..(有人提到标记集群和蜘蛛程序作为显示这些结果的另一种方式,但我想要标记它们是怎样的) ..
提前谢谢你,我进展顺利,但如果没有这个工作,项目可能会被装箱..! :(
【问题讨论】:
-
你试过什么?那里有代码将来自多个标记的信息窗口内容组合在同一位置,并在单击该位置的标记时显示它。
-
@Dr.Molle 该链接似乎很完美。除了我简单的数字颜色头只是无法弄清楚每一行代码应该去哪里......!谢谢你的链接,我会反复试验,直到希望它全部点击到位;)
标签: php mysql google-maps