7

Google マップ上で (Google マップ API v3 を使用して) GIS アプリケーションを開発していますが、一部のマップ オブジェクトは小さく (約 1 メートルまで)、グラフィック編集が必要なため、ユーザーはズームインする必要があります。 .

おそらくズームレベル30まで、Google Map APIでズーム範囲を拡張する最良の方法は何ですか? Google の tileserver が制限に達したときに "引き継ぐ" タイル サーバーを実装できますか? それとも、Google Map API で、データの範囲を超えたズーム レベルでグラフィックの拡大を使用するようにしますか? 他の可能なアプローチはありますか?

この問題は、ハイブリット マップまたはサテライト マップを使用する場合に特に厄介です。これらのマップのズーム レベルはより浅いためです (私たちの場所では 18 前後のようです)。

下の図は、最も深いズームと、十分ではないことを示しています。 ここに画像の説明を入力

/マグナス

4

3 に答える 3

0

これが私が最終的にそれを解決した方法です。完璧な解決策ではありませんが、私の目的には十分です:

  • 空白のタイルだけで、最大ズームが高いカスタム マップタイプを作成して追加します。
  • Google が取得する前にマウスホイール イベントにフックします (こちらを参照してください: Google Map API でのマウスホイール イベントへのフック)
  • マウスホイールでズームインするときは、maxZoom かどうかを確認し、そうであれば空白のマップに切り替えます (ズームアウトするときに元に戻すためのマークを付けます)。マウスホイール フックは Google が取得する前にあるため、マップ タイプが変更されてもズームは中断されません。

最大の問題は、マップが最大ズームであるかどうかを判断することでした (MaxZoomService は衛星画像に対してのみ機能します)。私は非常に醜い解決策になりました:ズームコントロールのズームハンドルの位置をチェックします:-)

于 2013-09-21T17:19:10.760 に答える
0

ズーム範囲を拡張する方法は、カスタム を作成することですMapTypeminZoom次に、とを指定できますmaxZoom。マップ タイルが通常の画像である場合は、 を使用しImageMapTypeて簿記の一部を行うことができます。または、必要に応じて本格的なカスタムを行うこともできますMapType

カスタム ズーム レベルと画像タイルを持つの例を次に示します。ImageMapType

于 2013-09-13T04:00:02.270 に答える
0

小さな画面では異なる場合があるため、これはスクロール バーを表示するために使用するコードよりも優れている場合があります。

ズームが変わらない場合は、Google が最大ズームであることを意味します。

var wheelEvent = function() {
    console.log('zoom before', map.getZoom());
    setTimeout(function() {
      return console.log('zoom after', map.getZoom());
    }, 0);
  };
})(this);

$('#map-canvas')[0].addEventListener('mousewheel', wheelEvent, true);
$('#map-canvas')[0].addEventListener('DOMMouseScroll', wheelEvent, true);
于 2015-02-09T20:58:59.513 に答える