0

私はGoogleMapsAPIに比較的慣れていません。

私の状況:フルスクリーンのGoogleマップを背景にしたウェブサイト。

最初の問題:ユーザーが下にスクロールしたり、ズームアウトしすぎたりすると、背景が灰色になります。最大ズームアウトを制限して、彼がスクロールアウトできないようにすることは可能ですか?または、マップを垂直に繰り返します(マーカーを使用)。最大ズームアウトを設定してマップ内でロックできる場合、画面解像度に関連する最大ズームアウトを動的に計算するにはどうすればよいですか?

2番目の問題:カスタムJavaScriptをマーカーに追加することは可能ですか?例:5つのマーカーを作成します。各マーカーは、カスタム値(データベースからのID)を保持する必要があります。クリックすると、カスタム値をパラメーターとして使用して独自の関数を呼び出し、いくつかの処理を実行する必要があります。

編集:これは私が灰色で意味するものです:(グーグルマップの垂直の「終わり」) グーグルマップからの垂直端

4

2 に答える 2

2
  1. マップオブジェクトにはプロパティmaxZoomがあり、マップの作成時に設定します

  2. はい、可能です。クリックイベントを追加したり、ポップアップを開いたりすることができます。また、JavaScriptであるため、次のように簡単にデータを追加できます。markr.MyData = 'something interesting'

灰色の部分が何を意味するのかわかりませんか?グーグルマップで最大ズームと最小ズームの灰色の部分が見えない

ここに画像の説明を入力してください

ここに画像の説明を入力してください

于 2012-11-28T22:20:11.757 に答える
1

わかった。ついに動作しました!:)

灰色の領域の修正(ズームも処理します):

function setBounds() {
    google_allowedBounds = new google.maps.LatLngBounds(
    new google.maps.LatLng(-85.000, -122.591),
    new google.maps.LatLng(85.000, -122.333));
    google_lastCenter = google_map.getCenter();
    google_lastZoom = google_map.getZoom();
    google.maps.event.addListener(google_map, "bounds_changed", function () {
        checkBounds();
    });

    google.maps.event.addListener(google_map, 'center_changed', function () {
        checkBounds();
    });
}

function checkBounds() {
    if (google_allowedBounds.getNorthEast().lat() > google_map.getBounds().getNorthEast().lat()) {
        if(google_allowedBounds.getSouthWest().lat() < google_map.getBounds().getSouthWest().lat()) {
            google_lastCenter = google_map.getCenter();
            google_lastZoom = google_map.getZoom();
            return true;
        }
    }
    google_map.panTo(google_lastCenter);
    google_map.setZoom(google_lastZoom);
    return false;
}

マーカークリックハンドラー:

google_listener = google.maps.event.addListener(marker, 'click', markerHandler);

function markerHandler(event) {
    window.console.log(this);
}
于 2012-11-29T01:57:07.557 に答える