2013-08-03 1 views
4

나는지도 타일에 osmdroid를 사용하여 레이더 날씨 앱을 작성하고 수동으로 NOAA 융기 레이더 데이터를 덮어 씁니다. 모든 것은 레이더 이미지가 투영되지 않는 것을 제외하고는 훌륭하게 작동합니다. 반면 openstreetmap 타일은 가로 메르카토르 투영법에 있습니다. 날씨는 경계 내에 있지만 데이터는 왜곡되어 있습니다.투영되지 않은 레이다 이미지를 osmdroid에 투영합니다.

나는 (우선 순위에 따라)이 문제를 해결하는 세 가지 방법을 볼 수 있지만 세 가지 모두에 문제가 오전 :

1)가 이미 메르카토르 투영 레이더 데이터의 소스 찾기 - 나중에 인터넷 검색 시간을, 나는했습니다를 아무것도 찾지 못했습니다 2) 이미지를 다운로드 한 직후에 프로그래밍 방식으로 재 투영합니다. 누구든지이 좋은 API를 알고 있습니까? 3) 아마도 openlayers.im을 사용하여 openlayers 재개발을 할 수 있지만, osmdroid mapview 위에 사용할 수 있습니까?

아이디어가 있으십니까? 어떤 도움을 주셔서 감사합니다 마이크

+0

@ 2 : [gdalwarp] (http://www.gdal.org/gdalwarp.html)는 래스터 이미지 재 투영을위한 매우 강력한 도구입니다. 그러나 이미 타일링 된 데이터에 대해 이야기 할 때이 접근법은 추가 작업이 필요할 수 있습니다. – tyr

+0

감사합니다 tyr, 아프다 봐 – Raptrflite

+0

gdal이가는 길처럼 보이지만 안드로이드에서 좋은 구현을 찾을 수없는 것 같습니다. 다른 사람들은 무엇을 사용합니까? 감사! – Raptrflite

답변

0

GDAL은 갈 길입니다. 내가 아는 공식 Android 빌드가 없지만 일부 사람들은 Android에서 실행되도록 성공했습니다. 예를 들어, Nutiteq은 AdvancedMap3D 샘플 프로젝트의 libs 폴더에 빌드를 가지고 있습니다. 두 armeabi 폴더의 내용을 프로젝트의 lib 폴더에 넣으면 GDAL 패키지에 액세스 할 수 있어야합니다.

그런 다음 GDAL in Java 페이지를 살펴보십시오. gdalinfo.java 샘플을보고 GDAL 데이터 세트의 부분을로드하고 조사하는 방법에 대한 느낌을 얻으십시오. 데이터 집합을 재 투영하려면의 라인을 따라 뭔가 할 것입니다 : 당신은 몇 가지 조정을해야 할 수도 있습니다

SpatialReference sr = new SpatialReference(); 
sr.ImportFromProj4("+proj=merc +datum=WGS84"); 
String result[] = new String[1]; 
sr.ExportToPrettyWkt(result, 1); 
String oldProjection = mDataset.getProjection(); 
String newProjection = result[0]; 
Dataset newDataset = gdal.AutoCreateWarpedVRT(mDataset, oldProjection, newProjection, gdalconst.GRA_NearestNeighbour, 0.0); 
Dataset savedDataset = mDriver.CreateCopy(outpath, newDataset, 0, new String[] { "COMPRESS=LZW", "PREDICTOR=2" }, null, null); 
newDataset.delete(); 
savedDataset.delete(); 

을,하지만이 당신에게 길을 최대한 활용해야한다.

+0

감사합니다, kurtzmarc .. 이것은 올바른 길로 나를 인도합니다. – Raptrflite

+0

수입을 인정받을 수없는 것 같습니다 : "import org.gdal.gdal.Band;" 예를 들면. 나는 저녁 시간의 더 좋은 부분을 libs와 .jar가 모듈 설정 (의존성/라이브러리)에 제대로 추가되도록 노력했다. 'GDAL in java'페이지에는 바인딩 API가 나와 있습니다. 내가 잃어버린거야? 많은 도움을 주셔서 감사합니다. – Raptrflite

+0

[org 폴더] (https://github.com/nutiteq/hellomap3d/tree/master/AdvancedMap3D/src/main/java/org)의 내용을 프로젝트에 추가해야하는 것처럼 보입니다. 여기에는 모든 SWIG 바인딩이 포함됩니다. GDAL 라이브러리는 사전에 구축되어있을 수 있습니다. – kurtzmarc

관련 문제