400x400 キロメートルの領域を表すフラットな 400x400 ピクセルの画像があります。この画像を OpenLayers マッピング システムのオーバーレイとして描画する必要があります。OpenStreetMap/Google マップをベース レイヤーとして使用します。イメージ レイヤーを使用してオーバーレイ イメージを描画し、オーバーレイ イメージを特定の緯度/経度ポイントに配置したいと考えています。ベース レイヤーの投影法は EPSG:900913 です。これは実際、OpenStreetMap と Google マップで使用される投影法です。
私が理解していること(間違っている場合は修正してください)は、フラットな「投影されていない」画像を画像レイヤーとして使用することはできませんが、画像を調整するために一種の「再投影」を行う必要があるということですEPSG:900913 である地図の投影法に準拠する必要があります。こことネットを検索すると、これを行うにはGDALというライブラリ/ツールを使用する必要があるようですが、私はこれにまったく慣れていませんが、お願いします:
- 誰かがそれを使用する方法について私に連絡できますか?
- 私が今言ったことは正しく、ここで説明した方法が有効かどうか教えていただけますか?
- gdal を使用して、投影されていないフラットな 400x400 ピクセルの画像を EPSG:900913 で投影された画像に変換し、オーバーレイとして画像レイヤーとして配置するのに適している方法を教えてください。
ありがとう。
ご要望に応じて画像を追加しました。
@capdragon から提供された回答は役に立ち、さらに一歩進めることができました。とにかく、私はまだいくつかの問題を抱えています。これは私がしました:
- gdal_translate を使用して、次のように GCP を画像の四隅と中央に設定しました。
gdal_translate -of "GTIFF" -gcp 0 0 8.6923 45.5427 -gcp 400 0 13.8149 45.5427 -gcp 200 200 11.2536 43.771702 -gcp 0 400 8.8413 41.9460 -gcp 400 400 13.6659 41.9460 quadrprod.png quadrprod_gpc.tif
このようにして quadrprod_gcp.tif 出力を取得します。それで。
- gdalwarp を使用して、上記の点で設定された GCP を適用し、次のように EPSG:4326 である正しい投影を設定します。
gdalwarp -t_srs EPSG:4326 quadrprod_gcp.tif quadrprod_gcp_warped.tif
このようにして、最終的な quadrprod_gcp_warped.tif を取得します。結果の画像は 400x400 ピクセルではなく、458x331 ピクセルになります。次に、gdalinfo を使用してそれを確認すると、次のことがわかりました。
gdalinfo quadrprod_gcp_warped.tif
Driver: GTiff/GeoTIFF
Files: quadrprod_gcp_warped.tif
Size is 458, 331
Coordinate System is:
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433],
AUTHORITY["EPSG","4326"]]
Origin = (8.768046497499189,45.547291862003739)
Pixel Size = (0.010877474938832,-0.010877474938832)
Metadata:
AREA_OR_POINT=Area
Image Structure Metadata:
INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left ( 8.7680465, 45.5472919) ( 8d46'4.97"E, 45d32'50.25"N)
Lower Left ( 8.7680465, 41.9468477) ( 8d46'4.97"E, 41d56'48.65"N)
Upper Right ( 13.7499300, 45.5472919) ( 13d44'59.75"E, 45d32'50.25"N)
Lower Right ( 13.7499300, 41.9468477) ( 13d44'59.75"E, 41d56'48.65"N)
Center ( 11.2589883, 43.7470698) ( 11d15'32.36"E, 43d44'49.45"N)
Band 1 Block=458x4 Type=Byte, ColorInterp=Red
Mask Flags: PER_DATASET ALPHA
Band 2 Block=458x4 Type=Byte, ColorInterp=Green
Mask Flags: PER_DATASET ALPHA
Band 3 Block=458x4 Type=Byte, ColorInterp=Blue
Mask Flags: PER_DATASET ALPHA
Band 4 Block=458x4 Type=Byte, ColorInterp=Alpha
ご覧のとおり、4 つのコーナーと中央の緯度/経度は、-gcp 値を使用して設定した値とは異なります。私の質問:
- gdalinfo によって返される緯度/経度の値が、ステップ 1 で -gpc を使用して設定した値と異なるのはなぜですか?
- それは正常ですか、それとも何か間違ったことをしていますか?
- 次のステップは何ですか?画像を EPSG:4326 から EPSG:900913 に再度変換する必要がありますか?
- 画像を openlayers にオーバーレイとして配置するとき、境界オブジェクトを作成するとき、-gcp で使用した値または gdalinfo で表示される最終値を南西および北東の角として使用する必要がありますか?