【问题标题】:XML to JavaScript Array [Google Maps]XML 到 JavaScript 数组 [谷歌地图]
【发布时间】:2013-01-05 19:49:34
【问题描述】:

我需要从 xml 创建 Javascript 数组 ..

我使用 ajax 从 poly php 获取 xml 数据。一切都好。

我必须像这样创建数组:

  point = [
                 new google.maps.LatLng(40.9921196514,47.8604733650 ),
                 new google.maps.LatLng(40.9922511293,47.8606186245 ),

        ];

代码

 downloadUrl("poly.php", function(data) {
        var xml = data.responseXML;
        var polys = xml.documentElement.getElementsByTagName("poly");
        for (var i = 0; i < polys.length; i++) {

             var pid  = polys[i].getAttribute("pid");


   point = [
          new google.maps.LatLng(parseFloat(polys[i].getAttribute("plat")), parseFloat(polys[i].getAttribute("plng")) );
        ];

我已经这样做了,但它不起作用..((

附:我从 MySQL 获取数据。

...

XML:

    <polys>
<poly pid="1" pstatus="status1" plat="40.992638" plng="47.860474"/>
<poly pid="2" pstatus="status2" plat="40.992252" plng="47.860619"/>
</polys>

【问题讨论】:

  • 请解释“不起作用”。你看到错误了吗?奇怪的行为?它到底在做什么与您的预期不同?
  • 我使用 Alert(point);不要给我看任何东西。但是当使用点= [新google.maps.LatLng(40.9921196514,47.8604733650),新google.maps.LatLng(40.9922511293,47.8606186245),];就像它一样工作
  • 请给我们看一个例子-&lt;poly/&gt;-element
  • 好的。我编辑问题。最后添加了 XML 多边形元素
  • Example that parses XML to polylines(XML 格式与您的略有不同)。

标签: javascript google-maps


【解决方案1】:

我可以假设您使用来自谷歌util.js 的函数downloadUrl 吗?

如果是:data已经是一个文档,不需要访问data.responseXML

每次尝试访问xml 的属性都会导致错误,因为xmlundefined

替换这个:

    var xml = data.responseXML;
    var polys = xml.documentElement.getElementsByTagName("poly");

与:

    var polys = data.documentElement.getElementsByTagName("poly");

有一个语法错误:

point = [
          new google.maps.LatLng(parseFloat(polys[i].getAttribute("plat")), parseFloat(polys[i].getAttribute("plng")) );
        ];

去掉分号:

("plng")) );
//---------^

但要获得所需的结果,您必须在循环外创建点数组:

var point=[];

并添加 LatLng 指向循环内:

point.push(new google.maps.LatLng(parseFloat(polys[i].getAttribute("plat")),  
                                  parseFloat(polys[i].getAttribute("plng"))));

【讨论】:

  • 感谢您的回答。但是没用 :(( .. Myjs 页面就像 jsfiddle.net/JFR3n ... [我会在主页中包含 util.js]
  • 非常感谢。我用 xml point.push .. 它工作))但有趣的问题:(40.992638, 47.86047400000007),(40.992252, 47.86061900000004)它告诉我这个纬度长..但我的纬度长这样:(40.992638 47.860474) (40.992252 47.860619).....什么是:00000007 & 00000004?这个数字在哪里?:((
  • 不是一个解决方案,但可能很有趣:stackoverflow.com/questions/13307066/…
  • 没有它的解决方案..我不明白.,这个数字是多少?:))
  • 必须是 maps-API 内部计算的结果
猜你喜欢
  • 2013-07-20
  • 1970-01-01
  • 1970-01-01
  • 2012-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-23
相关资源
最近更新 更多