如何解析标记位置的xml文件并在地图上绘图

时间:2012-03-23 11:34:50

标签: javascript google-maps google-maps-api-3

我正在尝试从xml文件而不是javascript中读取点,如下例所示。

https://google-developers.appspot.com/maps/documentation/javascript/examples/marker-animations-iteration

但它不适合我。我创建了一个包含以下内容的xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<companies>
    <company>
        <lat>52.511467</lat>
        <lng>13.447179</lng>
    </company>
    <company>
        <lat>52.549061</lat>
        <lng>13.422975</lng>
    </company>
    <company>
        <lat>52.497622</lat>
        <lng>13.396110</lng>
    </company>
    <company>
        <lat>52.517683</lat>
        <lng>13.394393</lng>
    </company>
</companies> 

但我无法在谷歌地图v3上显示点数。有没有人有一个解析xml文件的坐标然后在地图上显示它们的例子?

2 个答案:

答案 0 :(得分:1)

非常棒 - 非常感谢提示! 上面的代码仍然存在一个小错误:

替换

  

markers.setMap(地图);

通过

  

marker.setMap(地图);

......然后它会工作!

答案 1 :(得分:0)

我使用jQuery来获取XML文件,然后解析它。我已多次使用此方法,但没有时间对此进行测试,因此可能存在语法错误。

<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> 
...
var map;
function init() 
{
    map = new google.maps.Map("map_canvas");
    jQuery.get("companies.xml", {}, function(data) {
        jQuery(data).find("company").each(function() {
            var company = jQuery(this);
            var lat = jQuery(company).find("lat").text();
            var lon = jQuery(company).find("lng").text();
            var latlng = new google.maps.LatLng( parseFloat(lat), parseFloat(lon) );
            var marker = new google.maps.Marker( { position: latlng, }); 
            markers.setMap(map);
        }); 
    }); 
}