2012-01-24 5 views
10

私はこのトピックを検索すべきヒントを見つけようとしていますが、何も見つかりませんでした。マップの現在のビューポートをジオメトリ、バウンディングボックスまたはwktとしてOpenLayersから取得する方法は?

また、現在のビューポートの現在の座標をOpenLayersマップから取得して、現在のビューポートの現在の境界ボックスにあるこれらのベクトルだけを追加しようとしています。 OpenLayersを2用

+0

ol3についてhttp://stackoverflow.com/questions/22206570/how-do-bounds-work-in-openlayers-3 –

答えて

18

Map.getExtent() 

...あなたは、任意の数の方法で緯度/経度の座標を取得するために使用できる境界、戻ります:理想的http://dev.openlayers.org/apidocs/files/OpenLayers/BaseTypes/Bounds-js.html#OpenLayers.Bounds

を、あなた」 dベクトルをジオメトリオブジェクトに変換し、Bounds.intersectBounds()を使用してMap.getExtent()をチェックして、それらが現在のビューポートにあるかどうかを確認します。 OpenLayersを3について

ol.Map.getView().calculateExtent(map.getSize()) 

は...程度のバウンディングボックスを表す座標の配列を返します。

+3

ありがとうございました!それは素晴らしい作品です。 'POLYGON(( - 8852235.9398912 -2760000,11337764.060109 -2760000,11337764.060109 11370000、-8852235.9398912 11370000、-8852235.9398912のようなものを返す' this.map.getExtent()。toGeometry()。toString() ') -2760000)) ' –

+0

私は少しGISに慣れていませんが、数字-8852235 -2760000、...緯度/経度のようには見えませんか?私は地図の範囲を取得すると、私は同様の結果を得る。緯度/経度の値は、-90/90と-180/180の範囲で表示されますか? –

+0

この回答は、私がその問題を解決するのを助けました:http://stackoverflow.com/a/2607145/1359765 –

関連する問題