1

Google マップ API v3 では、呼び出して独自のカスタム マップ タイプを作成しています。

map.mapTypes.set('my map', new google.maps.ImageMapType({
    getTileUrl: ...
    minZoom: 12,
    maxZoom: 20,
    ...
}));

もちろん、レイヤーのズーム範囲は限られています (この例では 12 ~ 20)。問題は、Google マップのデフォルトの動作です。たとえば、縮尺 7 の地図を表示して自分の地図に切り替えると、地図は自動的にズームインしてズーム 12 になります。

代わりに、ズーム 7 でマップに切り替えると、「この縮尺ではマップ データがありません。拡大してください」というテキストが表示されたタイルが表示されます。

  • API v3 内でこれを行う標準的なオプション/方法はありますか?
  • この問題に対して一般的に使用される解決策はありますか?
  • そうでない場合、それを行う最も簡単な方法は何ですか?

前もって感謝します。

4

1 に答える 1

5

minZoomとオプションを避けて、maxZoom次のようなことを試してください。

map.mapTypes.set('my map', new google.maps.ImageMapType({
    getTileUrl: function( position, zoom ){
        if( zoom >= 12 && zoom <= 20 ){
            return "http://example.com/tileservice?x="+position.x+"&y="+position.y+"&zoom="+zoom;
        }else{
            return "http://example.com/no_map_data_in_this_scale_please_zoom_in.png";
        }
    },
    ...
}));
于 2012-04-07T11:03:46.383 に答える