将坐标字符串转换为lat long数组,用于google maps api v3,将经度返回为0

时间:2015-06-10 15:25:29

标签: javascript arrays google-maps google-maps-api-3

我已经看了所有其他问题,但基本上,我有一个很长的坐标列表,如下所示:“42.2723998,-81.23239 ... 42.84099,-81.3990398”我使用的是javascript 。分裂(” , ”); on它现在是一个名为coordinate []的数组,每个字符串都有一个坐标,然后使用下面的代码:

// create a coordinate Array
    var polygonCoords = [];
    // creates a new LatLng
    var j = 0;
    var z = j + 1;
while (z < coordinate.length) {
    if ((j%2) === 0) {
    var co1 = parseFloat(coordinate[z]);
    //document.write(coordinate[j]);
    var co2 = parseFloat(coordinate[j]);
    //document.write(co2);
    var newLatLng = new google.maps.LatLng(co1,co2);

    polygonCoords.push(newLatLng);
} else {
    var co2 = parseFloat(coordinate[z]);
    var co1 = parseFloat(coordinate[j]);
    var newLatLng = new google.maps.LatLng(co1,co2);
    polygonCoords.push(newLatLng);
}
    z++;
    j++;
    }

但是当我打印出polygonCoords数组时,它总是将经度返回为0,并且我也使用parseFloat()从字符串中解析它。此外,当我通过它自己显式返回经度时,它返回实际数字。我只需要它就可以工作,这样我就可以创建一个LatLng数组,以后我可以将它用作多边形的路径。

1 个答案:

答案 0 :(得分:1)

好的,我已修好它,不知何故,当我从kml文件中获取经度时,它将采用0 -81.290390的形式......所以每当我将其解析为浮点数时,它都会识别它为0而不是-81.293848。现在它已正确完成,并打印出正确的浮动。