2013-10-01 3 views
2

Nutiteq SDK를 사용하여 오프라인으로 작업하고 작은 도시의지도를 표시해야하는 Android지도 앱을 개발 중이므로 .mbtiles 파일을 사용하고 있습니다. 지금까지 TileMill을 사용하여 다운로드 한 .mbtile 파일은 데모 프로젝트 중 하나였습니다. 인터넷 액세스가 때로는 큰 문제이기도합니다. 그 이유는 내 친구가 내게 말한 정확한 .mbtiles 형식으로 타일 .png 폴더에서 .mbtiles 파일을 만드는 Python 스크립트. 나는 파일이이 방법으로 얻은 사용하여 시도 및 파일을로드 할 때 나는 다음과 같은 오류가 발생합니다 : 나는 스크립트에 문제를 추측하고있어맞춤 .mbtiles 파일을로드하는 중 "데이터 없음"오류가 발생했습니다.

10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer: Start loading zoom=10 x=277 y=444 
10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer: Start loading zoom=10 x=278 y=444 
10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer: Start loading zoom=10 x=277 y=443 
10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer: Start loading zoom=10 x=278 y=443 
10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer: Start loading zoom=10 x=277 y=445 
10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer: Start loading zoom=10 x=278 y=445 
10-02 00:11:41.976: DEBUG/hellomap(404): DbMapLayer task: Start loading zoom=10 x=277  y=444 
10-02 00:11:42.340: DEBUG/TileDatabaseHelper(404): not found z=10 x=277 y=579 
10-02 00:11:42.340: ERROR/hellomap(404):  com.nutiteq.layers.raster.MBTilesMapLayer$DbFetchTileTask: No data. 
10-02 00:11:42.536: DEBUG/hellomap(404): DbMapLayer task: Start loading zoom=10 x=278 y=444 
10-02 00:11:42.636: DEBUG/TileDatabaseHelper(404): not found z=10 x=278 y=579 
10-02 00:11:42.636: ERROR/hellomap(404):  com.nutiteq.layers.raster.MBTilesMapLayer$DbFetchTileTask: No data. 
10-02 00:11:42.746: DEBUG/hellomap(404): DbMapLayer task: Start loading zoom=10 x=277 y=443 
10-02 00:11:42.746: DEBUG/TileDatabaseHelper(404): not found z=10 x=277 y=580 
10-02 00:11:42.746: ERROR/hellomap(404): com.nutiteq.layers.raster.MBTilesMapLayer$DbFetchTileTask: No data. 
10-02 00:11:42.947: DEBUG/hellomap(404): DbMapLayer task: Start loading zoom=10 x=278 y=443 
10-02 00:11:43.186: DEBUG/hellomap(404): onDrawFrame: Last frame time 325ms 
10-02 00:11:43.346: DEBUG/TileDatabaseHelper(404): not found z=10 x=278 y=580 
10-02 00:11:43.360: ERROR/hellomap(404): com.nutiteq.layers.raster.MBTilesMapLayer$DbFetchTileTask: No data. 
10-02 00:11:43.360: DEBUG/hellomap(404): DbMapLayer task: Start loading zoom=10 x=277 y=445 
10-02 00:11:43.596: DEBUG/hellomap(404): onDrawFrame: Last frame time 230ms 
10-02 00:11:43.706: DEBUG/TileDatabaseHelper(404): not found z=10 x=277 y=578 
10-02 00:11:43.706: ERROR/hellomap(404): com.nutiteq.layers.raster.MBTilesMapLayer$DbFetchTileTask: No data. 
10-02 00:11:43.706: DEBUG/hellomap(404): DbMapLayer task: Start loading zoom=10 x=278 y=445 
10-02 00:11:43.706: DEBUG/TileDatabaseHelper(404): not found z=10 x=278 y=578 
10-02 00:11:43.706: ERROR/hellomap(404): com.nutiteq.layers.raster.MBTilesMapLayer$DbFetchTileTask: No data. 
10-02 00:11:43.966: DEBUG/hellomap(404): onDrawFrame: Last frame time 249ms 

을하지만, 사실은 그 같은 .mbtiles가 MapBox와 파일을 사용하고 있습니다 문제없이 iOS SDK.

지도를 가지고 작업 한 사람, MBTiles 및/또는 Nutiteq과 같은 사람들이 약간의 통찰력을 줄 수 있기를 바랬습니다.

감사합니다.

답변

3

로그에서 요청한 맵 타일이 데이터베이스에서 누락 된 것 같습니다. 확인할 수 있습니다

sqlite3 <file>.mbtiles 
sqlite> select * from tiles where zoom_level=10 and tile_column=277 and tile_row=579; 

이렇게하면 빈 데이터가 반환되면 데이터가 없습니다. 행이 반환되면 파일이 제대로 열 었는지 확인하십시오.

TMS는 일반적인 웹지도 타일 (OSM과 유사 함)의 출처가 다르므로 y가 뒤집어 질 수도 있습니다. MBTilesLayer는 setTmsY()를 사용하여 응용 프로그램에서이 값을 변경할 수 있습니다.

+0

안녕하세요 @JaakL, 실은 누락 된 타일을 가져 오려고했지만 실제로 뭔가를 묻고 싶습니다. TileMill의 .mbtiles를 사용하여 에뮬레이터에서 실행되는 nutiteq 데모 응용 프로그램을 얻었지만 동일한 프로젝트가 충돌합니다. 내 HTC 한 V에서 그것을 시도하면서, 어떤 생각? – maxandonuts

+0

크래시 중 스택 추적은 무엇입니까? – JaakL