我有一個MySQL數據庫,我存儲了一些標記位置(以及一些其他信息),我加載到谷歌地圖。我跟着例子 -如何動態加載MySQL數據庫中的標記?
http://code.google.com/apis/maps/articles/phpsqlajax.html
,它爲我工作得很好。
現在我想要做的是,假設用戶可以選擇一個特定標記的ID並點擊一個按鈕將它加載到地圖上。不確定如何動態加載地圖上的特定標記。
任何形式的幫助將不勝感激。
我有一個MySQL數據庫,我存儲了一些標記位置(以及一些其他信息),我加載到谷歌地圖。我跟着例子 -如何動態加載MySQL數據庫中的標記?
http://code.google.com/apis/maps/articles/phpsqlajax.html
,它爲我工作得很好。
現在我想要做的是,假設用戶可以選擇一個特定標記的ID並點擊一個按鈕將它加載到地圖上。不確定如何動態加載地圖上的特定標記。
任何形式的幫助將不勝感激。
我已經設置了一個示例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;
}
首先,我在你的鏈接中看到你使用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返回給客戶端,並創建標記。
您好我發現這是很大的幫助 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
});
}
}