从XML Feed中解析坐标

时间:2013-04-30 06:57:38

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

您好我希望我能正确解释一下。我正在尝试使用XML Feed中的坐标在Google地图中制作多边形。问题是XML Feed中的坐标未显示为Lat Lon,它们在Feed中显示如下。

<cap:polygon>
29.66,-97.19 29.40,-97.24 29.11,-97.61 29.35,-97.85 29.57,-97.66 29.68,-97.36 29.66,-97.19
</cap:polygon>

所以我需要解析XML feed中的坐标,将它们转换为google.maps.LatLng对象,这样我就可以将它们推入一个数组,所以我可以将该数组作为google.maps中的paths属性提供.Polygon构造函数。

现在这就是我被困住的地方,因为我不知道如何解析那个feed元素,所以它们按照我需要的方式正确格式化,所以我可以构造多边形,除非有一种方法我可以构造多边形现在格式化的方式。

任何建议或建议都会很棒!

-Thanks!

1 个答案:

答案 0 :(得分:2)

  1. 将该XML元素的内容转换为字符串。请注意,使用“cap”命名空间,您必须编写与浏览器无关的代码(不同的浏览器会以不同的方式处理)。

  2. 将字符串拆分为空格(“”):

    var coordinates = polygonElemStr.split(" ");
    
  3. 将逗号(“,”)上的每组坐标分开,从两个数字创建一个google.maps.LatLng并将其推送到数组:

    var path = [];
    for (var i=0; i<coordinates.length; i++) {
      var coord = coordinates[i].split(",");
      path.push(new google.maps.LatLng(parseFloat(coord[0]),
                                       parseFloat(coord[1])));
    }
    
  4. 使用该坐标数组创建多边形。

  5. example