4

私は 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 に制限しようとしているだけだと思います。これにより、マップの地理の周りにタイトなフレームが提供されるはずですよね? 残念ながら、これらの経度/緯度を境界パラメーターに設定しても、何も起こらないようです。どんな洞察も大歓迎です!

4

0 に答える 0