2

こんにちは、Google Maps API バージョン 3 を使用する次の Web ページがあります。ボタンを作成するか、地図を右クリックして、Google マップの「リンク」ボタンと同様のリンクを誰かに送信して、「リンクを貼り付ける」ことができますか?電子メールまたは IM で"ズームイン レベルと、見ているものの範囲を教えてください。これを検索しましたが、何も見つかりませんでした。ありがとうございました!

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

4

1 に答える 1

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;
} 

次に、正しいクエリ文字列パラメータが存在するかどうかを確認できます。これは、マップを初期化した後に呼び出す必要があります...

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"])),
于 2012-04-20T21:06:09.040 に答える