2012-04-20 29 views

回答

2

沒有任何下降開箱,可以讓你做到這一點的,但實施它自己不應該是困難的。首先,您需要爲可用於導航到特定位置的頁面定義一些查詢字符串參數。要設置正確的位置和縮放級別,您將需要三個參數:緯度,經度和縮放,所以你的URL可能看起來像:

https://netfiles.uiuc.edu/alouchio/shared/ztest.shtml?lat=40.300842&lng=-86.864734&z=6 

然後,當你初始化你的地圖,你將需要檢查這些參數的存在,如果是這樣,定位適當的地圖:

將該查詢字符串,我們需要一個函數來處理這部分,這裏是一個簡單的:

// A function to get the qs params, borrowed from http://jquery-howto.blogspot.com/2009/09/get-url-parameters-values-with-jquery.html 
function getUrlVars() 
{ 
    var vars = [], hash; 
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
    for(var i = 0; i < hashes.length; i++) 
    { 
     hash = hashes[i].split('='); 
     vars.push(hash[0]); 
     vars[hash[0]] = hash[1]; 
    } 
    return vars; 
} 

然後你可以檢查是否存在正確的查詢字符串參數你初始化地圖後CH應該叫...

var params = getUrlVars(); 

if (params["lat"] && params["lng"] && params["z"])  
{   
    map.setCenter(new GLatLng(parseFloat(params["lat"]), 
     parseFloat(params["lng"]), parseInt(params["z"])); 
} 

最後,生產環節,你可以創建一個按鈕生成鏈接信息:

function showLink() 
{ 
    var ctr = map.getCenter(); 
    alert("https://netfiles.uiuc.edu/alouchio/shared/ztest.shtml?lat=" 
+ ctr.lat().toString() + "&lng=" + ctr.lng().toString() + "&z=" + map.getZoom().toString()); 
} 

而不是map.setCenter我用過:

var myOptions1 = { 
    zoom: parseInt(params["z"]), 
    center: new google.maps.LatLng(parseFloat(params["lat"]), parseFloat(params["lng"])), 
+0

非常感謝!我會看看這個並回復你。 – Andrew 2012-04-21 23:46:14

+0

嗨。當您最初查看主網址時,主網址是否必須包含緯度/經度縮放信息?我希望我可以有一個簡單的網頁名稱,例如... mine/viewer.shtml。然後當我通過電子郵件鏈接它可以將信息添加到網址... mine/viewer.shtml?lat = 40.300842&lng = -86.864734&z = 6謝謝! – Andrew 2012-04-23 13:40:22

+0

不,請注意解決方案中我檢查參數是否存在,然後嘗試將地圖導航到用戶定義的位置:if(params [「lat」] && params [「lng」] && params [「z」]] ) – javram 2012-04-23 14:09:05