2013-08-01 3 views
4

Google지도 API를 사용하는지도가 포함 된 Android 앱을 작성 중입니다.Android의 Google지도 API에서 기기의 픽셀 밀도에 맞춰진 맞춤 타일을 사용하려면 어떻게해야하나요?

내 확장 com.google.android.gms.maps.model.UrlTileProvider을 사용하여 맞춤형지도 타일을로드합니다.

두 세트의 맵 타일이 있습니다. 하나는 고밀도 스크린 용으로 설계된 것이고 다른 하나는 저밀도 스크린 용으로 설계된 것입니다. 고밀도 맵 타일 세트는 큰 텍스트 등을 특징으로합니다. 두 세트 모두 256x256 픽셀의지도 타일 크기를 사용합니다.

DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); 
Float density = displayMetrics.xdpi/DisplayMetrics.DENSITY_DEFAULT; 
지금까지

너무 좋은 :에서 얻은

나는 화면 밀도에 따라 두 가지 사이를 전환 할 수 있습니다.

밀도에 따라 적절한지도 타일 세트가 표시됩니다. (다수의 화소가 하나의 논리 밀도 독립적 픽셀 (DIP/DP)로 처리되는 경우)

그러나, 고밀도 장치에 각 맵 타일 픽셀은 하나 개의 장치 딥/DP에 맞게 스케일링한다. 즉, 장치 밀도가 높을수록 렌더링 할 때지도 타일이 더 나빠집니다.

은 내가 UrlTileProvider 생성자 너비/높이 잠시 동안 연주되었지만, 그들은 어떤 영향을 미칠 것 같지 않습니다.

그리고 나는 내 문제를 해결하는 데 도움이되는 Google지도 API에서 설정을 찾을 수 없습니다.

나는 유래 또는 다른 사이트에 어떤 해결책을 발견하지 않았습니다.

누구든지 내 문제를 해결하는 방법을 알고 있습니까?

+1

DPI마다 다른 이미지 크기를 사용해 보셨습니까? HDPI 384, XHDPI 512 등 –

+0

@ MaciejGórski : 답변 해 주셔서 감사합니다! 지도 타일은 내가 소유하지 않은 외부 서비스에서로드되기 때문에 내 제안에 대한 해결책이 될 수 없습니다. 그러나지도 타일 서비스를 제어하는지 여부를 알아 보는 것이 좋습니다. –

+0

솔루션 Steinar를 찾았습니까? – aez

답변

0

당신은 drawable 폴더를 해당하는 대신 수동 분류를 해결하기 위해 노력에서 Drawable의 같은 타일을 검색 할 수 있습니다.

+0

불행히도 타일은 내 드로어 블 폴더에 있지 않지만 외부 서비스에서로드됩니다. 타일이 너무 많아서 그렇게해야합니다. 또한 Android 용 Google지도 API는 TileProvider ([link] (http://developer.android.com/reference/com/google/android/gms/maps/model/TileProvider.html)의 구현에서 맞춤지도 타일을로드하는 기능 만 지원합니다.). 안드로이드 용 Google Maps API는 항상 1 타일 픽셀을 1 딥으로 표시합니다. –

0

당신이 서버를 제어하지 않는 경우, 당신의 품질을 제어 할 수 없습니다.

xvdpi 장치에서 사용할 수있는 확대/축소 수준의 이미지를 1 개 더로드하고 512 x 512 크기의 비트 맵으로 병합 할 수 있습니다. TileProvider가 더 큰 이미지를 올바르게 처리하는지 확인합니다.