我有一个这样的XML文件:
<datas>
<title>AAA</title>
<lat>111</lat>
<lng>5454</lng>
</datas>
<datas>
<title>BBB</title>
<lat>112121</lat>
<lng>544254</lng>
</datas>……
示例:下面是一个“真实”的示例:
<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>初始化函数:
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);
}
});
}Google Map API能够读取它并在地图上显示它吗?如果是这样的话,是怎么做的?
我试着改编这个https://developers.google.com/maps/documentation/javascript/layers?hl=en,但不起作用。
谢谢你的帮助。Dominique
发布于 2013-07-30 21:08:07
Google Maps Javascript API不包含任何v3解析。但是您可以使用javascript解析XML,并在Google Maps Javascript API v3地图上显示结果。
您的代码当前解析以下格式的XML:
<Deal Latitude="38.989869999999996" Longitude="-110.13261" Deal_ID="201090531" Price="9.50" />返回元素(如<lat>)文本内容的geoxml3中的函数:
//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;
};relevant discussion from the Google Maps Javascript API v2 group (但v3没有GXml功能)。
https://stackoverflow.com/questions/17947015
复制相似问题