谷歌地图Api v3和XML提要

谷歌地图Api v3和XML提要,xml,google-maps-api-3,Xml,Google Maps Api 3,我有这样一个XML文件: <datas> <title>AAA</title> <lat>111</lat> <lng>5454</lng> </datas> <datas> <title>BBB</title> <lat>112121</lat> <lng>544254</lng> </datas>

我有这样一个XML文件:

<datas>
<title>AAA</title>
<lat>111</lat>
<lng>5454</lng>
</datas>
<datas>
<title>BBB</title>
<lat>112121</lat>
<lng>544254</lng>
</datas>

AAA
111
5454
BBB
112121
544254

例如: 下面是一个“真实”的例子:

<productFeed>
<Deal>
<Deal_ID>201090531</Deal_ID>
<Price>9.50</Price>
<Destination_Name>Green River</Destination_Name>
<Latitude>38.989869999999996</Latitude>
<Longitude>-110.13261</Longitude>
<Country_Name>United States of America</Country_Name>
</Deal>
</productFeed>

201090531
9.50
绿河
38.989869999999996
-110.13261
美利坚合众国
初始化函数:

function initialize() {
  var myOptions = {
    zoom: 7,
    center: new google.maps.LatLng(35.82672127366604,-118.916015625),
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

  downloadUrl("test.xml", function(doc) {
      var xmlDoc = xmlParse(doc);
      var markers = xmlDoc.documentElement.getElementsByTagName("Deal");
      for (var i = 0; i < markers.length; i++) {
        var lat = parseFloat(markers[i].getAttribute("Latitude"));
        var lng = parseFloat(markers[i].getAttribute("Longitude"));
        var latlng = new google.maps.LatLng(lat,lng);
        var html = markers[i].getAttribute("Deal_ID");
        var label = markers[i].getAttribute("Price");
        var marker = createMarker(latlng,label,html);
        }
      });
    }
函数初始化(){
变量myOptions={
缩放:7,
中心:新google.maps.LatLng(35.82672127366604,-118.916015625),
mapTypeId:google.maps.mapTypeId.ROADMAP
}
map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
下载URL(“test.xml”,函数(doc){
var xmlDoc=xmlParse(doc);
var markers=xmlDoc.documentElement.getElementsByTagName(“交易”);
对于(var i=0;i
谷歌地图API能够读取并在地图上显示它吗? 如果是,怎么做

我试着适应这个,但不起作用

谢谢你的帮助。
Dominique

谷歌地图Javascript API v3不包含任何XML解析。但您可以使用javascript解析XML,并在Google Maps javascript API v3地图上显示结果

您的代码当前解析此格式的XML:

 <Deal Latitude="38.989869999999996" Longitude="-110.13261" Deal_ID="201090531" Price="9.50" />

函数,该函数返回元素的文本内容(如
):

//nodeValue:提取DOM节点的文本值,并修剪前导和尾随空格
geoXML3.nodeValue=函数(节点,定义){
var retStr=“”;
如果(!节点){
return(typeof deffal=='undefined'| | deffal===null)?“”:deffal;
}
if(node.nodeType==3 | | node.nodeType==4 | | node.nodeType==2){
retStr+=node.nodeValue;
}else if(node.nodeType==1 | | node.nodeType==9 | | node.nodeType==11){

对于(var i=0;i什么是“rad”?是否应该“读取”?这些数字不是有效的纬度和经度(至少在谷歌地图标准坐标系中),它们只是随机数还是需要转换为?是的,read.Lat和lng是示例,不是真实的数据。只是为了解释xml文件的结构。有什么原因不能将xml放入代码所期望的格式吗?好的。有没有像我这样的xml文件中显示标记的地图示例?我知道我见过它们,不是吗轻松查找。您的格式类似于(但不完全相同)一些RSS/atom提要。第三方KML解析器包含解析答案中添加的XML元素内容的代码。如果您发布的XML对解析有意义,我可能会这样做。如果遇到问题,为什么不试一试并问一些更具体的问题。下面是一个“真实”的示例(我无法回答,请发表评论):201090531 9.50格林河38.989869999996-110.13261美利坚合众国请将其添加到您的问题中。您的代码是如何解析的?
//nodeValue: Extract the text value of a DOM node, with leading and trailing whitespace trimmed
geoXML3.nodeValue = function(node, defVal) {
  var retStr="";
  if (!node) {
    return (typeof defVal === 'undefined' || defVal === null) ? '' : defVal;
  }
   if(node.nodeType==3||node.nodeType==4||node.nodeType==2){
      retStr+=node.nodeValue;
   }else if(node.nodeType==1||node.nodeType==9||node.nodeType==11){
      for(var i=0;i<node.childNodes.length;++i){
         retStr+=arguments.callee(node.childNodes[i]);
      }
   }
   return retStr;
};