2016-06-26 6 views
0

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
더이 질문에 확장 : 처음에 우리는 잘 구글지도를 통해 정적 이미지를 중심으로. enter image description here

그러나 레이어를 함께 사용하면 어떤 변형을 사용할지 모릅니다. 간단히 말해서이 코드에서 변형 <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])) 
}); 
+0

꽤 큰 이미지입니다. 지도 위에 직접 오버레이하려고하는 대신지도 서버를 먼저 사용하는 것이 좋습니다 (예 : MapServer 또는 GeoServer). 그렇게하면 WMS 프로토콜을 사용하여 줌 수준에 따라 최적의 이미지를 렌더링 할 수 있습니다. OpenLayers는 WMS를 지원합니다. OL3-Google-Maps로도 관심이있을 수 있습니다. http://mapgears.github.io/ol3-google-maps/ –

+0

Thanks @Alexandre Dubé (귀하의 코멘트에 대해). 이미지 렌더링은 실제로 .jp2 파일 (또는 더 큰 위성 이미지)이므로 실제로는 문제 또는 문제가 아닙니다. 우리는 IIP 이미지 서버를 사용하여 효율적으로 렌더링합니다. 나는 ol3-google-maps을 조사했습니다. 현재로서는 범위가 제한되어 있고 ol.source.ImageStatic을 처리하는 방법에 대한 예제가없는 것처럼 보입니다. 문제는 OL3 변환 문제로 남아 있습니다. 우리는 성공적으로 Google지도 위에 이미지를 센터링하지만 (84d39'22.44 "W, 34d58 '7.49"N) 레이어를 이동하면 이미지가 해제됩니다. – Morey

+0

정적 이미지 소스를 지원하는 ol3-google-maps의 GitHub에서 문제를 만들 수 있습니다. 학생이 현재 해당 프로젝트에 대한 Google Summer of Code에 참여 중입니다. 시간이 있다면 그는이 일을 할 수 있습니다. 또는 풀 요청을 제공하여 직접 기여할 수도 있습니다. –

답변

1

하면 원본 이미지 NAD83의 UTM을 16N 또는 EPSG이다 : 26,916이 http://spatialreference.org/ref/epsg/nad83-utm-zone-16n/

UTM이 자극을 통해 축과 실린더 투영 세계 세로 6 개 정도 스트립 횡 토르 투영 발생한다. Google지도는 구형 Mercator (수평 원통형) 투영법 - EPSG : 3857을 사용합니다. 이 두 가지 속성은 완전히 다릅니다. 다시 투영하지 않고도 26916 이미지를 3857 맵에 정확하게 오버레이 할 수 없습니다.

http://openlayers.org/en/latest/examples/reprojection-image.html 보셨나요?

또는 GIS 프로그램을 사용하여 3857에 이미지를 다시 투영하여 3857 맵과 쉽게 합성 할 수 있습니다 (예 : GlobalMapper).

+0

팁 @billChadwick 주셔서 감사합니다. 제안 된대로 원래의 .jp2 파일 (EPSG : 26916)을Tiff 파일 (EPSG : 3857)을 gdal : gdalwarp-of GTiff -s_srs epsg : 26916 -t_srs epsg : 3857 으로 사용하고 새로운 위도/경도가 정확 해 보입니다. 새로 생성 된 .tiff 파일은 6631 x 7832입니다. 이제 Openlaters3을 사용하여 픽셀 [0,0,66,7,832]에서 ESPG : 3857로 투영해야합니다. 이 작업을 수행하는 방법에 대한 제안이 있으면 감사하게 생각합니다. – Morey

관련 문제