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