【发布时间】:2012-07-10 07:21:51
【问题描述】:
加载函数
function load() {
var cluster = [];
infoWindow = new google.maps.InfoWindow();
var map = new google.maps.Map(document.getElementById("map"), {
center: new google.maps.LatLng(10.6145, -24.3418),
zoom: 2,
mapTypeId: 'roadmap'
});
// Read the data from example.xml
downloadUrl("phpsqlajax_genxml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
// obtain the attribues of each marker
var name = markers[i].getAttribute("name");
var address = markers[i].getAttribute("address");
var link = markers[i].getAttribute("link");
var type = markers[i].getAttribute("type");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var html = "<b>" + '<a href="' + link + '" >' + markers[i].getAttribute("name") + '</a>' + "</b> <br/>" + "</b> <br/>" + '<a href="' + link + '" >' + markers[i].getAttribute("address") + '</a>';
var icon = customIcons[type] || {};
// create the marker
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon,
shadow: icon.shadow
});
addMarker(marker, html);
cluster.push(marker);
}
var mc = new MarkerClusterer(map,cluster);
//markerCluster = new MarkerClusterer(map, gmarkers);
});
}
添加标记
function addMarker(marker, content)
{
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(content);
infoWindow.open(map, marker);
infoWindow.close();
});
}
ajax 代码
function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
【问题讨论】:
-
"加载函数函数 load() {"。这是一个有趣的功能。
-
说真的,请编辑您的问题,以便正确格式化代码。很难按原样阅读。
-
我知道,但是你的格式很糟糕,所以看起来只有一行代码。
-
您的 javascript 代码中有错误:
Uncaught TypeError: Object #<HTMLDivElement> has no method 'O'。这显然发生在您严重混淆的main.js中的某个地方,祝您调试顺利。 -
为什么要先调用 infoWindow.open() 然后再调用 infoWindow.close()?
标签: php mysql ajax google-maps markerclusterer