2013-06-05 87 views
3

我在使用xml文件在Google地图上显示标记时遇到问题!!!在谷歌地图中添加标记从xml文件API V3

这里是我的xml文件 “exemple.xml”

<?xml version="1.0" encoding="UTF-8"?> 
<markers> 
<marker name="Pan Africa Market" address="1521 1st Ave, Seattle, WA" lat="47.608940" lng="-122.340141" type="restaurant"/> 
<marker name="Buddha Thai & Bar" address="2222 2nd Ave, Seattle, WA" lat="47.613590" lng="-122.344391" type="bar"/> 
<marker name="The Melting Pot" address="14 Mercer St, Seattle, WA" lat="47.624561" lng="-122.356445" type="restaurant"/> 
<marker name="Ipanema Grill" address="1225 1st Ave, Seattle, WA" lat="47.606365" lng="-122.337654" type="restaurant"/> 
<marker name="Sake House" address="2230 1st Ave, Seattle, WA" lat="47.612823" lng="-122.345673" type="bar"/> 

<marker name="Crab Pot" address="1301 Alaskan Way, Seattle, WA" lat="47.605961" lng="-122.340363" type="restaurant"/> 
<marker name="Mama's Mexican Kitchen" address="2234 2nd Ave, Seattle, WA" lat="47.613976" lng="-122.345467" type="bar"/> 
<marker name="Wingdome" address="1416 E Olive Way, Seattle, WA" lat="47.617214" lng="-122.326584" type="bar"/> 
<marker name="Piroshky Piroshky" address="1908 Pike pl, Seattle, WA" lat="47.610126" lng="-122.342834" type="restaurant"/> 
</markers> 

和HTML代码是:

<!DOCTYPE html > 
<head> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
<title>PHP/MySQL & Google Maps Example</title> 
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js sensor=false"></script> 
<script type="text/javascript"> 
//<![CDATA[ 

var customIcons = { 
restaurant: { 
icon: 'http://labs.google.com/ridefinder/images/mm_20_blue.png', 
shadow: 'http://labs.google.com/ridefinder/images/mm_20_shadow.png' 
}, 
bar: { 
icon: 'http://labs.google.com/ridefinder/images/mm_20_red.png', 
shadow: 'http://labs.google.com/ridefinder/images/mm_20_shadow.png' 
} 
}; 

function load() { 
var map = new google.maps.Map(document.getElementById("map"), { 
center: new google.maps.LatLng(47.6145, -122.3418), 
zoom: 13, 
mapTypeId: 'roadmap' 
}); 
var infoWindow = new google.maps.InfoWindow; 

// Change this depending on the name of your PHP file 
downloadUrl("exemple.xml", function(data) { 
var xml = data.responseXML; 
var markers = xml.documentElement.getElementsByTagName("marker"); 
for (var i = 0; i < markers.length; i++) { 
var name = markers[i].getAttribute("name"); 
var address = markers[i].getAttribute("address"); 
var type = markers[i].getAttribute("type"); 
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")), 
parseFloat(markers[i].getAttribute("lng"))); 
var html = "<b>" + name + "</b> <br/>" + address; 
var icon = customIcons[type] || {}; 
var marker = new google.maps.Marker({ 
map: map, 
position: point, 
icon: icon.icon, 
shadow: icon.shadow 
}); 
bindInfoWindow(marker, map, infoWindow, html); 
} 
}); 
} 

function bindInfoWindow(marker, map, infoWindow, html) { 
google.maps.event.addListener(marker, 'click', function() { 
infoWindow.setContent(html); 
infoWindow.open(map, marker); 
}); 
} 

function downloadUrl(url, callback) { 
var request = window.ActiveXObject ? 
new ActiveXObject('Microsoft.XMLHTTP') : 
new XMLHttpRequest; 

request.onreadystatechange = function() { 
if (request.readyState == 4) { 
request.onreadystatechange = doNothing; 
callback(request, request.status); 
} 
}; 

request.open('GET', url, true); 
request.send(null); 
} 

function doNothing() {} 

//]]> 

</script> 

</head> 

<body onload="load()"> 
<div id="map" style="width: 500px; height: 300px"></div> 
</body> 

</html> 

地图是创造良好但没有标志...谢谢你提前你所有的帮助。

+0

如果添加控制台日志,你可以找出贵'markers'阵列是什么样子? – duncan

回答

1

改革的XML以下示例

<?xml version="1.0"?> 
<markers> 
    <marker> 
    <name>Pan Africa Market</name> 
    <address>1521 1st Ave, Seattle, WA</address> 
    <lat>47.608940</lat> 
    <lng>-122.340141</lng> 
    <type>"restaurant"<type/> 
    </marker> 
    <marker> 
    <...>Next marker info</...> 
    </marker> 
</markers> 

谷歌地图API使用XPost XML格式

相关问题