Google Maps initialize()和新的JSON mapOptions赢得了';行不通
这是标准的谷歌代码,它可以很好地加载地图Google Maps initialize()和新的JSON mapOptions赢得了';行不通,json,google-maps,initialization,maps,Json,Google Maps,Initialization,Maps,这是标准的谷歌代码,它可以很好地加载地图 var mapOptions = { center: { lat: -34.397, lng: 150.644 }, zoom: 8 }; function initialize() { var map = new google.maps.Map(document.getElementById('map-canvas'),
var mapOptions = {
center: { lat: -34.397, lng: 150.644 },
zoom: 8
};
function initialize() {
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
但是,在我搜索XML文件中的值并将它们设置为mapOptions之后,它就不会初始化了。我什么都试过了
$(xml).find("location").each(function(){
var lat = $(this).find("lat").text();
var lng = $(this).find("lng").text();
mapOptions.center.lat = lat;
mapOptions.center.lng = lng;
initialize();
});
我甚至在initialize()中添加了警报,它们可以处理XML中的新坐标。为什么地图装载不是我能理解的
function initialize() {
alert(mapOptions.center.lat);
alert(mapOptions.center.lng);
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
解决方案:正如用户geocodezip所建议的,解决方案是在设置变量时使用parseFloat()
var lat = parseFloat($(this).find("lat").text());
我在属性lat:非数字中得到错误
Uncaught InvalidValueError:setCenter:非LatLng或LatLngLiteral:
。请注意,zoom
也是必需的。这对我很有用:
$(xml).find("location").each(function () {
var lat = parseFloat($(this).find("lat").text());
var lng = parseFloat($(this).find("lng").text());
mapOptions.center.lat = lat;
mapOptions.center.lng = lng;
initialize();
});
代码段:
var地理编码器;
var映射;
变量映射选项={
中心:{},
缩放:5
};
函数初始化(){
var map=new google.maps.map(document.getElementById('map-canvas'),
地图选项);
}
函数parseXml(str){
if(window.ActiveXObject){
var doc=新的ActiveXObject('MicrosoftXMLDOM');
doc.loadXML(str);
退货单;
}else if(window.DOMParser){
return(newdomparser()).parseFromString(str,'text/xml');
}
}
var xmlData=“45-72”;
var xml=parseXml(xmlData);
$(xml).find(“location”).each(函数(){
var lat=parseFloat($(this.find(“lat”).text());
var lng=parseFloat($(this.find(“lng”).text());
mapOptions.center.lat=lat;
mapOptions.center.lng=lng;
初始化();
});代码>
html,
身体,
#地图画布{
高度:500px;
宽度:500px;
边际:0px;
填充:0px
}