OL3を使用してGoogleマップに衛星画像(6471x7669 jpgファイル)をオーバーレイしようとしています。画像ファイルのメタデータと投影情報として提供されていますOpenLayersを使用してGoogleマップに画像を投影する3
Driver: JP2ECW/ERDAS JPEG2000 (SDK 3.x)
Files: /mnt/NAIP/TN/2012/34084/m_3408403_ne_16_1_20120527_20120911.jp2
Size is 6471, 7669
Coordinate System is:
PROJCS["NAD83/UTM zone 16N",
GEOGCS["NAD83",
DATUM["North_American_Datum_1983",
SPHEROID["GRS 1980",6378137,298.2572221010002,
AUTHORITY["EPSG","7019"]],
AUTHORITY["EPSG","6269"]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433],
AUTHORITY["EPSG","4269"]],
PROJECTION["Transverse_Mercator"],
PARAMETER["latitude_of_origin",0],
PARAMETER["central_meridian",-87],
PARAMETER["scale_factor",0.9996],
PARAMETER["false_easting",500000],
PARAMETER["false_northing",0],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]],
AUTHORITY["EPSG","26916"]]
Origin = (710739.000000000000000,3875921.000000000000000)
Pixel Size = (1.000000000000000,-1.000000000000000)
Metadata:
COLORSPACE=MULTIBAND
COMPRESSION_RATE_TARGET=9
VERSION=1
Corner Coordinates:
Upper Left ( 710739.000, 3875921.000) (84d41'26.44"W, 35d 0'14.31"N)
Lower Left ( 710739.000, 3868252.000) (84d41'33.42"W, 34d56' 5.56"N)
Upper Right ( 717210.000, 3875921.000) (84d37'11.35"W, 35d 0' 9.39"N)
Lower Right ( 717210.000, 3868252.000) (84d37'18.55"W, 34d56' 0.64"N)
Center ( 713974.500, 3872086.500) (84d39'22.44"W, 34d58' 7.49"N)
Band 1 Block=256x256 Type=Byte, ColorInterp=Undefined
Description = Band #1
Overviews: 3235x3834, 1617x1917, 808x958, 404x479, 202x239
Band 2 Block=256x256 Type=Byte, ColorInterp=Undefined
Description = Band #2
Overviews: 3235x3834, 1617x1917, 808x958, 404x479, 202x239
Band 3 Block=256x256 Type=Byte, ColorInterp=Undefined
Description = Band #3
Overviews: 3235x3834, 1617x1917, 808x958, 404x479, 202x239
Band 4 Block=256x256 Type=Byte, ColorInterp=Undefined
Description = Band #4
Overviews: 3235x3834, 1617x1917, 808x958, 404x479, 202x239
私がいる問題は、データを解釈し、(私は地理学者ではないよ)の投影を使用するかを把握することです。 900913とEPSG::私はすでに両方EPSGをテストした3857は、EPSGに変換する:4326、動作していないよう:4269:7019、EPSG:6269、EPSG
var lonlat = ol.proj.transform(evt.coordinate, 'EPSG:3857', 'EPSG:4326');
提供されたデータは、EPSG言及、EPSG:9001、EPSG:26916のいずれもProj4jsの定義を持っていないようです。提供されたコーナー&の中心緯度/経度座標はかなり正確です。
私の質問です:これには既存のproj4.defsがありますか?そうでない場合は、どうすれば作成できますか?これに関する助けがあれば大歓迎です。さらに、この質問を拡張し
UPDATE
:最初は、私たちは、Googleマップだけで罰金以上の静止画像を中央に配置します。
しかし、レイヤーが一緒に移動するときにどのような変換を使用するかはわかりません。一言で言えば、このコードの変換<transform>
は何ですか?
view.on('change:center', function() {
var center = ol.proj.transform(view.getCenter(), <transform>, 'EPSG:4326');
gmap.setCenter(new google.maps.LatLng(center[1], center[0]))
});
これはかなり大きなイメージです。マップの上に直接オーバーレイするのではなく、MapServerやGeoServerなどのマップサーバーを最初に使用することをお勧めします。これにより、WMSプロトコルを使用してズームレベルに基づいて最適な画像をレンダリングすることができます。 OpenLayersはWMSをサポートしています。 OL3-Google-Mapsに興味があるかもしれません。http://mapgears.github.io/ol3-google-maps/ –
ご意見のありがとうございます@AlexandreDubé。画像のレンダリングは、実際には.jp2ファイル(またはより大きな衛星画像)であるため、実際には問題または問題ではありません。私たちはIIPイメージサーバを使ってこれらを効率的にレンダリングします。私はol3-google-mapsを調べました。現時点では範囲が限定されており、ol.source.ImageStaticの処理方法の例はありません。問題はOL3変換の問題として残っています。私たちは正常にGoogleマップ上にイメージを配置します(84d39'22.44 "W、34d58 '7.49" N)。しかし、レイヤーを移動すると、それらはオフになります。 – Morey
静的画像ソースをサポートするためのol3-google-mapsのGitHubで問題を作成できます。学生が現在そのプロジェクトのGoogle Summer of Codeに参加しています。彼に時間があれば、彼はこれに取り組むことができます。また、プルリクエストを提供することで、自分で投稿することもできます。 –