2011-10-12 112 views
1

我正在更新我的谷歌地图代码到版本3的过程中,我遇到了一个问题。谷歌地图api v3中心地图阅读xml文件后

在版本2中,我正在阅读xml文件以创建标记,并且我基于坐标将地图居中,但在版本3中,在读取xml文件之前已在地图变量中定义了中心。

这个很容易解决吗?从http://code.google.com/apis/maps/articles/phpsqlajax_v3.html

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("results.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("event"); 
     var address = markers[i].getAttribute("location"); 
     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); 
    } 
    }); 
} 
+0

您正在循环使用一组标记。在你的旧代码中,你是如何决定将哪些标记放在地图上的? – duncan

+0

我得到那个工作正常。只是这个需要改变 – AdRock

回答

3

也许你的意思map.setCenter(latlng:LatLng)采取

第3版的代码?分析XML,创建标记,然后中心,在那里你想要的地图。