私は OpenLayers を初めて使用し、GeoData を使用しています。そのため、OpenLayers を使用してマップ境界を構成することについて、かなり初歩的な質問があると思います。まず、これが私が作成したマップコードです...
function createMap(containerId){
return new OpenLayers.Map(containerId, {
projection: new OpenLayers.Projection("EPSG:900913"),
displayProjection: new OpenLayers.Projection("EPSG:4326"),
units: "m",
maxResolution:156543.0339,
numZoomLevels:4,
controls: [],
maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34),
restrictExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34)
});
}
私は自分の地図を持っていて、その上にベクトルの国形状の GeoJSON レイヤーをロードしました。ここまでは順調ですね。ただし、マップ上で呼び出すzoomToMaxExtent
と、マップがズームアウトして、フレームを埋めるのではなく、ビューポートの中央に小さなサムネイル サイズのグラフィックが表示されます。次に、マップを拡大すると、マップ シェイプの端に制限されるのではなく、任意の方向に無制限にマップを (一見) パンできます。
maxExtent
そのため、設定に何か問題があると思いrestrictExtent
ますが、それが何であるかはわかりません。正直なところ、これらの巨大な境界数が何であるかはわかりません (サンプル コードで見つけました)。基本的に、経度/緯度座標によって、境界を -180、-90、180、90 に制限しようとしているだけだと思います。これにより、マップの地理の周りにタイトなフレームが提供されるはずですよね? 残念ながら、これらの経度/緯度を境界パラメーターに設定しても、何も起こらないようです。どんな洞察も大歓迎です!