2010-11-26 70 views
0

我有一個MySQL數據庫,我存儲了一些標記位置(以及一些其他信息),我加載到谷歌地圖。我跟着例子 -如何動態加載MySQL數據庫中的標記?

http://code.google.com/apis/maps/articles/phpsqlajax.html

,它爲我工作得很好。

現在我想要做的是,假設用戶可以選擇一個特定標記的ID並點擊一個按鈕將它加載到地圖上。不確定如何動態加載地圖上的特定標記。

任何形式的幫助將不勝感激。

回答

3

我已經設置了一個示例here。我使用的是谷歌地理編碼API來接收用戶和創建使用谷歌API V3的標記輸入的地址的座標如下圖所示
Ajax請求,以獲得座標

$.getJSON("getjson.php?address="+address, 
    function(data){ 
    lat=data.results[0].geometry.location.lat; 
    lng=data.results[0].geometry.location.lng; 
    point= new google.maps.LatLng(lat,lng); 
    map.setCenter(point); 
    zoom = 14; 
    marker = createMarker(point,"<h3>Marker"+(markersArray.length+1)+" "+point+"</h3>",zoom); 
}); 

PHP代碼返回座標

<?php 

$address = $_GET['address']; 
$address=str_replace(" ","+",$address); 
if ($address) { 
$json = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address='.$address. 
'&sensor=true'); 
echo $json; 
} 

?> 

創建標記

function createMarker(latlng, html,zoom) { 
    var contentString = html; 
    var marker = new google.maps.Marker({ 
    position: latlng, 
    map: map, 
    zIndex: Math.round(latlng.lat()*-100000)<<5 
}); 

google.maps.event.addListener(marker, 'click', function() { 
    infowindow.setContent(contentString); 
    infowindow.open(map,marker); 
}); 
marker.MyZoom = zoom; 
return marker; 
} 
1

首先,我在你的鏈接中看到你使用v2.Try來使用v3,至少現在你已經開始了,因爲v2已經被棄用了。

至於你的問題,我只能告訴你的過程,然後你可以做到這一點。


1.用戶交互
用戶與用戶界面和選擇即價格範圍(0-100)相互作用。

2. Ajax請求
客戶端發送一個Ajax請求服務器,以獲得JSON與jquery getJson()或任何其他方式。

3.響應服務器
一個PHP頁面響應您的Ajax調用,並在MySQL查詢得到的位置標記,converts it in json一個結果,並將其發送回去。

4.解析響應
Parse the json返回給客戶端,並創建標記。

0

您好我發現這是很大的幫助 http://www.svennerberg.com/2012/03/adding-multiple-markers-to-google-maps-from-json/

創建一個JSON對象給出的鏈接,並將其傳遞給JavaScript。

功能createMarker(JSON){

for (var i = 0, length = json.length; i < length; i++) { 
    var data = json[i], 
    latLng = new google.maps.LatLng(data.lat, data.lng);   
    // Creating a marker and putting it on the map 
    var marker = new google.maps.Marker({ 
    position: latLng, 
    map: map, 
    title: data.title 
    }); 
} 

}

相關問題