Javascript 从json在地图上绘制多段线

Javascript 从json在地图上绘制多段线,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我希望能够在地图上显示多段线。 如何从JSON提要中获取索引值,并将其拆分值放入其中,以便在Google地图上使用 多段线Lat/Lng通过JSON馈送提供,并拆分为阵列 像这样: {“Id”:13115604,“Rcvr”:1,“HasSig”:false,“Icao”:“C820D4”,“Bad”:false,“Reg”:“ZK-NZG”,“FSeen”:“日期”(1521839348845)/”,“TSecs”:560,“CMsgs”:4003,“Alt”:17850,“GAlt”:178

我希望能够在地图上显示多段线。 如何从JSON提要中获取索引值,并将其拆分值放入其中,以便在Google地图上使用

多段线Lat/Lng通过JSON馈送提供,并拆分为阵列

像这样:

{“Id”:13115604,“Rcvr”:1,“HasSig”:false,“Icao”:“C820D4”,“Bad”:false,“Reg”:“ZK-NZG”,“FSeen”:“日期”(1521839348845)/”,“TSecs”:560,“CMsgs”:4003,“Alt”:17850,“GAlt”:17838,“InHg”:29.9080849,“AltT”:0,“TAlt”:34016,“呼叫”:“ANZ99”,“Lat”:-36.35348,“长”:174.387856,“PosTime”:1521839878181,“Mlat”:false”,Tisb:false,“TSB”:17838,“TRK”:426,“TRK”:TRK:“TRK”:323”428“TRK”42K”42K“TRK”42K”和“TRK”:302.34375,“型号”:“B789”,“Mdl”:“波音” 787 9,“Man”:“波音”,“CNum”:“37963”,“发件人”:“新西兰新西兰奥克兰” 新西兰“,”至“:”日本东京成田RJAA“,”Op“:”新航 新西兰,“OpIcao”:“ANZ”,“Sqk”:“0222”,“帮助”:假,“Vsi”:1792,“VsiT”:0,“WTC”:3,“种类”:1,“引擎”:“2”,“英语类型”:3,“英语安装”:0,“Mil”:假,“Cou”:“新西兰” 新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰、新西兰

这是poly线的lat/lng值:

[-36.993294174.851651,70.0,-36.946243174.894922,70.0,-36.934499174.884431325.0,-36.35348174.38785325.0]

这是接收到的数组中值的索引:

[0]最早坐标的纬度[1]最早坐标的经度 坐标[2]最早坐标的时间。。。[n-3]纬度 最新坐标[n-2]最新坐标的经度[n-1]时间 最新坐标

这是我尝试过的,但我不断得到一个“无法读取未定义的属性'length'的”错误

var-poly;
var多选项={
strokeColor:“#ff0000”,
笔划不透明度:1.0,
冲程重量:3
}
poly=新的google.maps.Polyline(多选项);
poly.setMap(Map);

对于(var i=0;i我没有一个完整的工作来测试您的路径从推送中接收到了什么。但是请继续尝试这行代码,它在
处拆分,并从拆分中生成两个数组,我认为您缺少这两个数组,因为它试图为不存在的数组插入一个值,因此“无法读取未定义的属性'length'"。除非您的
plane.Cot.length
超出了使用范围,否则这是我唯一可以在没有a的情况下解决的错误。而且,这并不完全重要,但是如果您在将位置拆分为两个数组之前调用路径,一些JS代码测试人员会给您一个错误。当然,如果您为路径设置了占位符数组,则在这个函数的末尾调用
poly.getPath()
时,您可以存储您的
路径
,这只是为了将来的参考

试试这个:

 var poly;
 var path = [];

        var polyOptions = {
          strokeColor: '#ff0000',    
          strokeOpacity: 1.0,   
          strokeWeight: 3    
        }
        poly = new google.maps.Polyline(polyOptions);
        poly.setMap(Map);   

        for(var i=0; i<plane.Cot.length; i++){
            var loc = plane.Cot[i].split(',', 2);  
            path.push(new google.maps.LatLng(loc[0], loc[1])); 
            poly.getPath();      
        }
var-poly;
var路径=[];
var多选项={
strokeColor:“#ff0000”,
笔划不透明度:1.0,
冲程重量:3
}
poly=新的google.maps.Polyline(多选项);
poly.setMap(Map);

对于(var i=0;i)“onclick”(在标题中)与您的问题有什么关系?您的第一个问题应该是为什么它根本不显示。如果您使用的是JSON对象,“split(,”)没有做任何有用的事情。你在哪一行得到错误?请提供一个例子来说明问题。谢谢我在这里的代码中添加了它:,我现在将致力于添加一个JSBIN,尽管我从未能够让它们工作。试试这个,@kdawg..让我知道它是如何工作的!别忘了提供一个JSBIN或类似Co的东西dePen或StackBlitz,以便其他人可以从中受益并了解此函数的上下文及其作用域。谢谢!谢谢@Omar这是其他人需要的json实例:radar1.ddns.net:8080/VirtualRadar/AircraftList.json?trFmt=f和jsfiddle:
str.split([separator[,limit]])
基于此..我们应该将代码更改为
var loc=plane.Cot[i].split([,[,2]]);
感谢您尝试@Omar,但它返回了一个plane.Cot[i]。split不是一个函数错误,我会玩一玩,看看我能做些什么。
 var poly;
 var path = [];

        var polyOptions = {
          strokeColor: '#ff0000',    
          strokeOpacity: 1.0,   
          strokeWeight: 3    
        }
        poly = new google.maps.Polyline(polyOptions);
        poly.setMap(Map);   

        for(var i=0; i<plane.Cot.length; i++){
            var loc = plane.Cot[i].split(',', 2);  
            path.push(new google.maps.LatLng(loc[0], loc[1])); 
            poly.getPath();      
        }