Javascript 谷歌地图V3-我无法协调关闭
我知道这是一个常见的问题,但我已经盯着看了,看了谷歌,又盯着看了一些,但我看不出哪里出了问题 我从一个MySql表中填充我的地图,对英国邮政编码进行反向地理编码,在结果周围画一个圆圈,但我无法理解为什么我的闭包函数不起作用 据我所知,闭包原则是关于从循环范围之外访问变量,我正试图用函数来完成这个循环,但就我的一生而言,我无法让它工作 我相信有人会对我的明显错误有答案,我将感谢任何人能提供的任何帮助Javascript 谷歌地图V3-我无法协调关闭,javascript,google-maps,Javascript,Google Maps,我知道这是一个常见的问题,但我已经盯着看了,看了谷歌,又盯着看了一些,但我看不出哪里出了问题 我从一个MySql表中填充我的地图,对英国邮政编码进行反向地理编码,在结果周围画一个圆圈,但我无法理解为什么我的闭包函数不起作用 据我所知,闭包原则是关于从循环范围之外访问变量,我正试图用函数来完成这个循环,但就我的一生而言,我无法让它工作 我相信有人会对我的明显错误有答案,我将感谢任何人能提供的任何帮助 var mapOptions = { zoom : 8, center : new
var mapOptions = {
zoom : 8,
center : new google.maps.LatLng(37.09024, -95.712891),
mapTypeId : google.maps.MapTypeId.ROADMAP
};
var infowindow = new google.maps.InfoWindow({
content : contentString
});
var geocoder = new google.maps.Geocoder();
var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
var contentString;
var i
downloadUrl("getXML.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("name");
contentString =(name);
var postcode = markers[i].getAttribute("postcode");
var dateadded = markers[i].getAttribute("dateadded");
var extra = markers[i].getAttribute("extra");
geocoder.geocode({
'address' : postcode
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map : map,
clickable : true,
position : results[0].geometry.location
})
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(name );
infowindow.open(map, marker);
}
})(marker, i));
var circle = new google.maps.Circle({
map : map,
radius : 12070.99, // 15 miles in metres
fillColor : '#AA0000'
});
circle.bindTo('center', marker, 'position');
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
}
});
var映射选项={
缩放:8,
中心:新google.maps.LatLng(37.09024,-95.712891),
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var infowindow=new google.maps.infowindow({
内容:contentString
});
var geocoder=new google.maps.geocoder();
var map=new google.maps.map(document.getElementById('map_canvas'),mapOptions);
var-contentString;
变量i
下载URL(“getXML.php”,函数(数据){
var xml=data.responseXML;
var markers=xml.documentElement.getElementsByTagName(“标记”);
对于(i=0;i
我将函数闭包与标记(createMarker)和地理编码器(geocodeMarker)的函数一起使用
var映射选项={
缩放:8,
中心:新google.maps.LatLng(37.09024,-95.712891),
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var infowindow=new google.maps.infowindow({
内容:contentString
});
var geocoder=new google.maps.geocoder();
var map=new google.maps.map(document.getElementById('map_canvas'),mapOptions);
var-contentString;
var i;
函数createMarker(latlng、name、html)
{
var marker=new google.maps.marker({
地图:地图,
可点击:正确,
职位:latlng
})
google.maps.event.addListener(标记'click',函数(){
infowindow.setContent(名称);
信息窗口。打开(地图、标记);
});
var circle=new google.maps.circle({
地图:地图,
半径:12070.99,//15英里(米)
填充颜色:“#AA0000”
});
圆圈.bindTo('中心',标记,'位置');
}
功能geocodeMarker(邮政编码、名称、html)
{
地理编码({
“地址”:邮政编码
},功能(结果、状态){
if(status==google.maps.GeocoderStatus.OK){
map.setCenter(结果[0].geometry.location);
createMarker(结果[0].geometry.location,html);
}否则{
警报('地理编码因以下原因未成功:'+状态);
}
});
}
下载URL(“getXML.php”,函数(数据){
var xml=xmlParse(数据);
var markers=xml.documentElement.getElementsByTagName(“标记”);
对于(i=0;i
我将函数闭包与标记(createMarker)和地理编码器(geocodeMarker)的函数一起使用
var映射选项={
缩放:8,
中心:新google.maps.LatLng(37.09024,-95.712891),
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var infowindow=new google.maps.infowindow({
内容:contentString
});
var geocoder=new google.maps.geocoder();
var map=new google.maps.map(document.getElementById('map_canvas'),mapOptions);
var-contentString;
var i;
函数createMarker(latlng、name、html)
{
var marker=new google.maps.marker({
地图:地图,
可点击:正确,
职位:latlng
})
google.maps.event.addListener(标记'click',函数(){
infowindow.setContent(名称);
信息窗口。打开(地图、标记);
});
var circle=new google.maps.circle({
地图:地图,
半径:12070.99,//15英里(米)
填充颜色:“#AA0000”
});
圆圈.bindTo('中心',标记,'位置');
}
功能geocodeMarker(邮政编码、名称、html)
{
地理编码({
“地址”:邮政编码
},功能(结果、状态){
if(status==google.maps.GeocoderStatus.OK){
map.setCenter(结果[0].geometry.location);
createMarker(结果[0].geometry.location,html);
}否则{
警报('地理编码因以下原因未成功:'+状态);
}
});
}
下载网址(“ge
var mapOptions = {
zoom : 8,
center : new google.maps.LatLng(37.09024, -95.712891),
mapTypeId : google.maps.MapTypeId.ROADMAP
};
var infowindow = new google.maps.InfoWindow({
content : contentString
});
var geocoder = new google.maps.Geocoder();
var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
var contentString;
var i;
function createMarker(latlng, name, html)
{
var marker = new google.maps.Marker({
map : map,
clickable : true,
position : latlng
})
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(name );
infowindow.open(map, marker);
});
var circle = new google.maps.Circle({
map : map,
radius : 12070.99, // 15 miles in metres
fillColor : '#AA0000'
});
circle.bindTo('center', marker, 'position');
}
function geocodeMarker(postcode, name, html)
{
geocoder.geocode({
'address' : postcode
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
createMarker(results[0].geometry.location, html);
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
}
downloadUrl("getXML.php", function(data) {
var xml = xmlParse(data);
var markers = xml.documentElement.getElementsByTagName("marker");
for (i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("name");
contentString =(name);
var postcode = markers[i].getAttribute("postcode");
var dateadded = markers[i].getAttribute("dateadded");
var extra = markers[i].getAttribute("extra");
geocodeMarker(postcode, name, contentString);
}
});