Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图上的JSON提要没有显示任何内容_Javascript_Jquery_Json_Google Maps - Fatal编程技术网

Javascript 谷歌地图上的JSON提要没有显示任何内容

Javascript 谷歌地图上的JSON提要没有显示任何内容,javascript,jquery,json,google-maps,Javascript,Jquery,Json,Google Maps,我想要带有JSON提要的Google地图显示标记。但它不起作用。我找不到真正的问题。这是我的代码: var映射; //JSON数据 var json=[{ “OpperationErrorMsg”:“, “IsSuccess”:正确, “结果”:1000, “时间戳”:“2016-10-12T18:00:07.0232702Z”, “Echo”:空, “疯狂盒子”:没错, “调试消息”:[ ], “丢失详细信息”:[ ], “响应数据”:[ { “CallTimeLocal”:“2016-

我想要带有JSON提要的Google地图显示标记。但它不起作用。我找不到真正的问题。这是我的代码:

var映射;
//JSON数据
var json=[{
“OpperationErrorMsg”:“,
“IsSuccess”:正确,
“结果”:1000,
“时间戳”:“2016-10-12T18:00:07.0232702Z”,
“Echo”:空,
“疯狂盒子”:没错,
“调试消息”:[
],
“丢失详细信息”:[
],
“响应数据”:[
{  
“CallTimeLocal”:“2016-10-10T06:28:48.7330000”,
“IncidentId”:3374,
“意外数字”:“HC2016004034”,
“通话时间”:“2016-10-10T10:28:48.7330000”,
“ElapsedSeconds”:0,
“位置”:“汉纳大道2712号E”,
“BuildingName”:空,
“BuildingNumber”:空,
“自然人”:6743,
“火力”:1,
“协调人”:-82.429500000000,
“协调人”:28.003389000000
},
{  
“CallTimeLocal”:“2016-10-10T11:28:36.7000000”,
“IncidentId”:3382,
“意外数字”:“HC2016004042”,
“通话时间”:“2016-10-10T15:28:36.7000000”,
“ElapsedSeconds”:0,
“位置”:“阿波罗海滩大道S 1220号”,
“BuildingName”:“阿波罗海滩码头”,
“BuildingNumber”:空,
“自然人”:8035,
“火力”:1,
“协调人”:-82.422369000000,
“协调人”:27.781254000000
},
{  
“CallTimeLocal”:“2016-10-10T14:29:59.8830000”,
“IncidentId”:3387,
“意外数字”:“HC2016004047”,
“通话时间”:“2016-10-10T18:29:59.8830000”,
“ElapsedSeconds”:0,
“位置”:“谢尔顿伍德路9600号”,
“BuildingName”:空,
“BuildingNumber”:空,
“自然人”:6420,
“火力”:12,
“协调人”:-82580530000000,
“协调人”:28.034779000000
},
{  
“CallTimeLocal”:“2016-10-10T15:27:37.7270000”,
“IncidentId”:3389,
“意外数字”:“HC2016004049”,
“通话时间”:“2016-10-10T19:27:37.7270000”,
“ElapsedSeconds”:0,
“地点”:“加拉赫路4691号”,
“建筑名称”:“草莓佳洁士高中”,
“BuildingNumber”:空,
“自然人”:7873,
“火力”:2,
“协调人”:-82.236450000000,
“协调人”:28.02123000000
}
],
“CurrentStatusData”:空
}];
函数初始化(){
//提供映射som选项
变量映射选项={
缩放:6,
中心:新google.maps.LatLng(25.0,-80.0)
};
//创建地图
map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);
//循环遍历JSON数据中的所有条目
for(var i=0;i
html,主体,#地图画布{
身高:100%;
保证金:0;
填充:0;
}

我在您的代码中发现了以下问题:

  • 在创建每个标记的循环中,在
    json
    数组上循环。但是,这不是您的标记数据数组
    json[0]
    是您的主要对象,
    json[0]。ResponseData
    是您需要循环的标记数组。所以我把这个值放在一个名为
    responses
    的变量中,然后循环使用它。我不知道JSON数据的最外层数组中是否有多个对象;如果是这样,您将需要一个外部循环来处理这些问题。目前,我假设只有一个外部对象使用
    json[0]
    寻址
  • 调用
    addClicker
    时,会传入不存在的
    obj.title
    。大概你的意思是
    obj.BuildingName
  • 单击处理程序引用名为
    infowindow
    的变量,但在第一次单击时,该变量不存在并导致错误。因此,我将
    infowindow
    声明为一个全局窗口
那么,我是如何发现这些问题的?使用JavaScript调试器。通常我会添加一个
调试器语句,并单步执行代码以查看发生了什么。这将揭示主循环设置
var obj=json[i]未获取预期值

这在普通网页上非常有效,但在这里的嵌入式代码段中似乎效果不佳。(调试器显示了错误的源代码行。)因此,我开始添加
console.log()看起来可能出错的语句,例如
console.log('obj:',obj)紧接
var obj=
赋值之后

此外,根据标记的位置自动缩放地图并使其居中也很好。我使用为每个标记扩展的
LatLngBounds
添加了一位代码,然后在创建所有标记后使用
map.fitBounds()
。如果这样做,在第一次创建地图时就不需要显式缩放地图并将其居中,因此我删除了这些。(否则,地图将显示在一个位置