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
나는 데 문제가 데이터를 해석하고 (나는 지리학자 아니에요) 투사 사용할지 파악하는 것입니다. 900,913 및 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과 같이 Proj4j 정의가있는 것은 아닙니다. 제공된 모서리 & 중심 위도/경도 좌표는 매우 정확합니다.
내 질문은 : 거기에 기존 proj4.defs입니까? 그렇지 않다면 어떻게 만들 수 있습니까? 이것에 대한 도움은 크게 감사하겠습니다.
UPDATE
더이 질문에 확장 : 처음에 우리는 잘 구글지도를 통해 정적 이미지를 중심으로.
그러나 레이어를 함께 사용하면 어떤 변형을 사용할지 모릅니다. 간단히 말해서이 코드에서 변형 <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/ –
Thanks @Alexandre Dubé (귀하의 코멘트에 대해). 이미지 렌더링은 실제로 .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에 참여 중입니다. 시간이 있다면 그는이 일을 할 수 있습니다. 또는 풀 요청을 제공하여 직접 기여할 수도 있습니다. –