XML到JavaScript数组[谷歌地图]

XML到JavaScript数组[谷歌地图],javascript,google-maps,Javascript,Google Maps,我需要从xml创建Javascript数组 我用ajax从poly-php获取xml数据。一切都好 我必须创建这样的数组: point = [ new google.maps.LatLng(40.9921196514,47.8604733650 ), new google.maps.LatLng(40.9922511293,47.8606186245 ), ]; 代码 下载URL(“poly.php”,函

我需要从xml创建Javascript数组

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

我必须创建这样的数组:

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

        ];
代码

下载URL(“poly.php”,函数(数据){ var xml=data.responseXML; var polys=xml.documentElement.getElementsByTagName(“poly”); 对于(变量i=0;i 我已经这么做了,但没用((

另外,我从MySQL获取数据

Xml:


我可以假设您使用谷歌的
下载URL
功能吗

如果是:
数据
已经是文档,则无需访问
数据。responseXML

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

替换此项:

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


出现语法错误:

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

("plng")) );
//---------^
但要获得所需的结果,必须在循环外部创建点阵列:

var point=[];
point.push(new google.maps.LatLng(parseFloat(polys[i].getAttribute("plat")),  
                                  parseFloat(polys[i].getAttribute("plng"))));
并将板条添加到回路内的点:

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

请解释“不起作用”。你看到错误了吗?奇怪的行为?它到底在做什么,这与你预期的不同?我使用警报(点);不显示任何内容。但是当使用点=[new google.maps.LatLng(40.9921196514,47.8604733650),new google.maps.LatLng(40.9922511293,47.8606186245),];像这样工作请给我们看一个例子-
-elementok.I`v编辑问题。最后添加了XML多边形元素(XML的格式与您的略有不同)。谢谢您的回答。但是没有工作:(…Myjs页面那样…[我会在主页中包括util.js]所以谢谢。我用xml point.push来做。它可以工作。)但有趣的问题是:(40.992638,47.86047400000007),(40.992252,47.8606190000004)它显示了这个lat long。,但我的lat long是这样的:(40.992638 47.860474)(40.992252 47.860619)…什么是:0000000 7&0000000 4?这些数字在哪里((不是一个解决方案,但可能很有趣:不是它的解决方案..我不明白,这个数字是什么?:)它一定是maps API内部计算的结果
point.push(new google.maps.LatLng(parseFloat(polys[i].getAttribute("plat")),  
                                  parseFloat(polys[i].getAttribute("plng"))));