2011-06-13 175 views
0

在這個環節,你可以得到一個代碼:http://jquery-ui-map.googlecode.com/svn/trunk/demos/advanced-example.html下面是如何使用jQuery窗口(很漂亮),更改信息窗口,但我需要實現這個代碼在我的代碼:http://gmaps-samples-v3.googlecode.com/svn/trunk/articles/phpsqlajax/phpsqlajax_map_v3.html谷歌地圖,jQuery和XML

如何去做? (對不起英文)

+0

http://code.google.com/apis/maps/articles/phpsqlsearch.html你不使用PHP喜歡它需要輸出的XML例如,如果你只是有一個靜態的xml文件,它仍然是一個教程,你可以看看。 – 2011-06-13 18:50:04

回答

0

要打開一個對話框,而不是一個信息窗口,在代碼中註釋掉該行:

bindInfoWindow(marker, map, infoWindow, html);

,並用此替代它:

$('<div>').html(html).dialog();


爲了實現MarkerClusterer,更新了代碼:

var mc = new MarkerClusterer(map); 
mc.addMarker(marker); 

完全load()功能:

function load() { 
    var dialog = $('<div>').dialog({autoOpen:false}); 
    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; 
    var mc = new MarkerClusterer(map); 

    // Change this depending on the name of your PHP file 
    downloadUrl("phpsqlajax_genxml.php", 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 
     }); 
     mc.addMarker(marker); 
     //bindInfoWindow(marker, map, infoWindow, html); 
     google.maps.event.addListener(marker, 'click', function() { 
     dialog.html(html).dialog('open'); 
     }); 
    } 
    }); 
} 
+0

謝謝你幫助我......但我沒有看到標記。這是代碼:http://kuponik.adriamart.com/davidimo.html我錯在哪裏?錯誤在哪裏? – Andrew 2011-06-13 20:04:40

+0

您需要鏈接到'head'中的'MarkerClusterer'的源代碼。谷歌在哪裏下載它。 – js1568 2011-06-13 20:11:39

+0

酷,但窗口是自動打開的......你可以看到什麼問題:http://kuponik.adriamart.com/davidimo.html對不起,我讓你無聊,但jquery窗口是自動打開,不顯示當我點擊標記。 :( – Andrew 2011-06-13 20:18:09

1

您將需要load()使用AJAX的XML文件。然後,您可以使用JQuery選擇器解析文件,並使用該數據創建一個數組Markers。將標記傳遞給MarkerClusterer,其餘代碼將成爲標準映射初始化。讓我知道是否需要更多細節,但如果不知道XML的結構,我不能再提供更多幫助。

+0

我會用這個文件創建一個xml:http://gmaps-samples.googlecode.com/svn/trunk/articles-phpsqlajax/phpsqlajax_genxml.php,看起來像這樣: – Andrew 2011-06-13 19:20:50

+0

Andrew 2011-06-13 19:22:29

+0

請修改您的問題。 – js1568 2011-06-13 19:27:58