2012-04-20 4 views
2

にGoogleマップAPI v3のリンクを貼り付けることは、それは、ボタンを作成するか、右の地図をクリックしてGoogleマップに似た誰かへのリンクを送信することが可能ですズームインレベルとあなたが見ている範囲の「リンクをメールやIMに貼り付ける」ボタンがあります。私はこれを検索しましたが、何も見つかりませんでした。ありがとうございました!こんにちは、私はGoogleマップAPIバージョン3を使用して、次のWebページを持っている電子メール

https://netfiles.uiuc.edu/alouchio/shared/ztest.shtml

答えて

2

があり、あなたがこれを行うことができますボックスの外に落下するものではありませんが、あなた自身でそれを実装することは困難にすべきではありません。まず、特定の場所に移動するために使用できるページのクエリ文字列パラメータを定義する必要があります。正しい位置とズームレベルを設定するには、次の3つのパラメータが必要になります:緯度、経度、ズームをので、あなたの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

+0

こんにちは。あなたが最初にそれを見るとき、メインのURLに緯度/経度情報が含まれていなければなりませんか?私は... mine/viewer.shtmlのような簡単なWebページ名を持つことができると期待していました。そして、私はリンクにメールを送ると、URLに情報を追加することができます... mine/viewer.shtml?lat = 40.300842&lng = -86.864734&z = 6ありがとう! – Andrew

+0

いいえ、ソリューションでは、ユーザーが定義した場所にマップを移動する前にパラメータが存在するかどうかを確認します:if(params ["lat"] && params ["lng"] && params ["z"] ) – javram

関連する問題