1

openlayer Web アプリケーションのベクター レイヤーでオーバーレイとして使用する画像があります。アイデアは、この例で示したものと同じです

私が理解していないのは、ユーザーがマップのズームを変更するたびに画像の幅と高さが実際の地理的領域をカバーするように調整されるように、画像に有効な解像度を設定する方法です。

上記の例では、いくつかの画像が使用され、ハードコードされた特定の解像度係数を使用して特定の場所に配置されています。

400x400 キロメートルの領域を表す 400x400 ピクセルの画像があるとします。ズーム倍率が変わるたびに、次のような式を使用して画像の幅と高さを再計算する必要があります。

imageWidth = imageWidthInPixel * theResolution / map.getResolution(); 
imageHeight = imageHeightInPixel * theResolution / map.getResolution();

ここで、「theResolution」は、私が知らない方法で計算する必要がある値です。これは、画像が何キロメートルまたはメートル単位で表示されているかによって決まる値だと思いますが、意味のある関係を見つけることができません。上記で説明したように、私が報告した例では、これらの値はハードコーディングされており、画像に依存しますが、これらの値がどのように計算されるかを理解する方法はありません。

これを理解するのを手伝ってください。

4

1 に答える 1

0

画像の投影がわかっている場合は、適切な投影を使用して OpenLayers で定義されたレイヤーとして画像を定義するのが最も簡単です。その時点で、OpenLayers がズームとパンを処理します。

于 2013-10-03T15:31:35.333 に答える