所以我一直致力于一个允许用户将JSON文件导入Google Map的项目。我创建了一个“loaded()”函数来解析导入的文件,以便循环它。它在我的笔记本电脑上100%工作,但每当我在同一个网页浏览器(chrome)上运行相同的程序时,它无法解析导致程序崩溃的导入字符串,而不会在地图上绘制任何内容。
function importJSON(){
var file = document.getElementById('file').files[0];
var reader = new FileReader();
reader.readAsText(file, "UTF-8");
reader.onload = loaded;
}
function loaded(evt) {
alert("File Loaded Successfully");
var fileString = evt.target.result;
$("#feed").text(fileString);
var locationData = JSON.parse(fileString);
//Test alert**
//alert(locationData.locations[4].name);
for(var i=0; i<=locationData.locations.length; i++){
var data = locationData.locations[i];
if(data.type=="marker"){
var locationLatLng = new google.maps.LatLng(data.lat, data.lng);
//Creates marker and sets it on the map
var marker = new google.maps.Marker({
position: locationLatLng,
map: map,
editable: true,
draggable: true
});
marker.setMap(map);
}
else if(data.type=="rec"){
alert("rectangle");
}
}
}
如果有人知道可能出现什么问题,我将非常感谢您的帮助。
**编辑:**我已经验证我的JSON文件格式正确,但我会在下面发布。我在Google Chrome调试器中遇到的错误是“未捕获的语法错误意外编号”。据我所知,造成问题的那一行是“var locationData = JSON.parse(fileString);”
{
"locations": [
{
"id": "ce",
"type": "marker",
"name": "Centennial East (CE)",
"lat": 40.50705,
"lng": -88.98982
},
{
"id": "sfhb",
"type": "rec",
"name": "State Farm Hall of Business (SFHB)",
"lat": 40.50715,
"lng": -88.99214
}
]
}