La soluzione migliore che ho trovato a questo problema (che ho avuto io stesso prima di oggi), è quello di cambiare la scala nella fonte di piastrelle (sto usando la mia versione di OpenStreetMap):
final float scale = getBaseContext().getResources().getDisplayMetrics().density;
final int newScale = (int) (256 * scale);
String[] OSMSource = new String[2];
OSMSource[0] = "http://a.tile.openstreetmap.org/";
OSMSource[1] = "http://b.tile.openstreetmap.org/";
XYTileSource MapSource = new XYTileSource(
"OSM",
null,
1,
18,
newScale,
".png",
OSMSource
);
map.setTileSource(MapSource);
variando la scala in accordo con la densità dello schermo è una relativamente buona soluzione. Durante il mio test alcune delle immagini sono leggermente sfocate, ma se riduci il ridimensionamento per quella contingenza ottieni un ottimo risultato.
Questa non è la mia soluzione BTW, l'ho trovato tra i problemi OSMDROID su Github. Grazie a stefangab95.
fonte
2014-09-10 08:38:09
Questo si tradurrebbe in replicando sostanzialmente le piastrelle al successivo livello di zoom più elevato. –
In un certo senso, ma raggiunge comunque il risultato desiderato. – CjS