0

我能够将 JSON 文件加载到页面中(当前使用 jQuery),并将内容设置为页面中的变量。

JSON 包括对建筑轮廓的引用,如下所示;

[
    {
        "buildingNumber":"7",
        "buildingDescription":"Building Seven",
        "spatial":{
            "points":
                [
                    "-1.2345678,50.9876543",
                    "-1.2345677,50.9876544",
                    "-1.2345676,50.9876545",
                    "-1.2345675,50.9876546"
                ]
        }
    }
]

使用 jQuery $.each,我可以加载变量并遍历建筑物,此外,每栋建筑物,我可以非常简单地遍历这些点。

问题在于谷歌似乎只记录了以下描述多边形的方法;

var triangleCoords = [
    new google.maps.LatLng(25.774252, -80.190262),
    new google.maps.LatLng(18.466465, -66.118292),
    new google.maps.LatLng(32.321384, -64.75737)
];

这是有道理的,但我看不出如何从我目前拥有的数组中获取这种格式。我真的很感激任何关于从一个到另一个开始移动的指针,或者描述多边形的另一种方式。

我研究了这个array.push()函数,虽然它看起来像是一种本地化的方式,但我看不到如何根据数组中的迭代值动态创建变量。

谢谢

4

2 回答 2

2

目前你的观点是字符串。将它们转换为 google.maps.LatLng 对象:

var point = "-1.2345678,50.9876543";
var coords = point.split(",");
var pt = new google.maps.LatLng(parseFloat(coords[0]), 
                                parseFloat(coords[1]));

然后将生成的 google.maps.LatLng 对象推送到多边形的“路径”数组中。

于 2013-04-01T18:23:04.390 回答
0

你有一个表示纬度和经度的字符串数组,你需要一个google.maps.LatLng. 我会在这里使用array.map()函数 -文档

var polyCoords = spatial.points.map(function(point) {
    var pointCoords = point.split(',');
    return new google.maps.LatLng(
        parseFloat(pointCoords[0]),
        parseFloat(pointCoords[1]));
});
于 2013-04-01T18:27:54.737 回答