重新计算 markercluster 和 downloadUrl
Recalculate markercluster and downloadUrl
我正在尝试解决问题,但没有成功。
正如您在取消选中 VDSL 或 ADSL 选项时看到的那样,markercluster 仍然具有相同的值。
downloadUrl("php_to_xml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var ThisMarkers = markers[i];
var lat = markers[i].getAttribute("lat");
var lng = markers[i].getAttribute("lng");
var typeofkafao = markers[i].getAttribute("typeofkafao");
var type = markers[i].getAttribute("type");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var icon = coloredRideshareIcon(typeofkafao);
//below is the balloon of the marker.
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon
});
addMarker(typeofkafao, marker, map, infoWindow, ThisMarkers);
}
var mcOptions = {gridSize: 40, maxZoom: 15};
var markerCluster = new MarkerClusterer(map,gmarkers,mcOptions); // edo trexi
});
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);
}
我知道问题出在 downloadUrl 函数上,因为它是异步的。
我必须在 downloadUrl 外部调用 markerCluster 但我不能,因为我无法在 downloadUrl 函数外部发送标记变量。
我认为问题已解决,但不完全是那样。
var markers2;
downloadUrl("php_to_xml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
markers2 = markers;
});
for (var i = 0; i < markers2.length; i++) {
var ThisMarkers = markers2[i];
var lat = markers2[i].getAttribute("lat");
var lng = markers2[i].getAttribute("lng");
var typeofkafao = markers2[i].getAttribute("typeofkafao");
var type = markers2[i].getAttribute("type");
var point = new google.maps.LatLng(
parseFloat(markers2[i].getAttribute("lat")),
parseFloat(markers2[i].getAttribute("lng")));
var icon = coloredRideshareIcon(typeofkafao);
//below is the balloon of the marker.
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon
});
addMarker(typeofkafao, marker, map, infoWindow, ThisMarkers);
}
var mcOptions = {gridSize: 40, maxZoom: 15};
var markerCluster = new MarkerClusterer(map,gmarkers,mcOptions); // edo trexi
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);
}
大家有什么想法吗?
非常感谢
查看控制台会很有用:
ReferenceError: markerCluster 未定义
markerCluster
-变量在 Markers()
中不可访问
删除 var
-关键字:
var markerCluster = new MarkerClusterer(map,gmarkers,mcOptions);
我正在尝试解决问题,但没有成功。
正如您在取消选中 VDSL 或 ADSL 选项时看到的那样,markercluster 仍然具有相同的值。
downloadUrl("php_to_xml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var ThisMarkers = markers[i];
var lat = markers[i].getAttribute("lat");
var lng = markers[i].getAttribute("lng");
var typeofkafao = markers[i].getAttribute("typeofkafao");
var type = markers[i].getAttribute("type");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var icon = coloredRideshareIcon(typeofkafao);
//below is the balloon of the marker.
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon
});
addMarker(typeofkafao, marker, map, infoWindow, ThisMarkers);
}
var mcOptions = {gridSize: 40, maxZoom: 15};
var markerCluster = new MarkerClusterer(map,gmarkers,mcOptions); // edo trexi
});
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);
}
我知道问题出在 downloadUrl 函数上,因为它是异步的。 我必须在 downloadUrl 外部调用 markerCluster 但我不能,因为我无法在 downloadUrl 函数外部发送标记变量。
我认为问题已解决,但不完全是那样。
var markers2;
downloadUrl("php_to_xml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
markers2 = markers;
});
for (var i = 0; i < markers2.length; i++) {
var ThisMarkers = markers2[i];
var lat = markers2[i].getAttribute("lat");
var lng = markers2[i].getAttribute("lng");
var typeofkafao = markers2[i].getAttribute("typeofkafao");
var type = markers2[i].getAttribute("type");
var point = new google.maps.LatLng(
parseFloat(markers2[i].getAttribute("lat")),
parseFloat(markers2[i].getAttribute("lng")));
var icon = coloredRideshareIcon(typeofkafao);
//below is the balloon of the marker.
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon
});
addMarker(typeofkafao, marker, map, infoWindow, ThisMarkers);
}
var mcOptions = {gridSize: 40, maxZoom: 15};
var markerCluster = new MarkerClusterer(map,gmarkers,mcOptions); // edo trexi
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);
}
大家有什么想法吗?
非常感谢
查看控制台会很有用:
ReferenceError: markerCluster 未定义
markerCluster
-变量在 Markers()
删除 var
-关键字:
varmarkerCluster = new MarkerClusterer(map,gmarkers,mcOptions);