我正在尝试在Android应用程序上加载OpenStreetMaps,但地图无法正确加载。它们无序显示。
我正在使用可在浏览器中正确加载的自托管地图服务器(演示使用了传单)。
代码如下,
public class MapActivity extends AppCompatActivity {
final private int MIN_ZOOM_LEVEL = 3;
final private int MAX_ZOOM_LEVEL = 18;
final private int TILE_SIZE = 256;
final private String IMAGE_EXTENSION = ".png";
MapView map = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//load/initialize the osmdroid configuration
Context ctx = getApplicationContext();
Configuration.getInstance().load(ctx, PreferenceManager.getDefaultSharedPreferences(ctx));
setContentView(R.layout.activity_map);
map = (MapView) findViewById(R.id.map);
map.setTilesScaledToDpi(true);
map.setMultiTouchControls(true);
map.setTileSource(new OnlineTileSourceBase("Tiles", 2, 18, 256, ".png",
new String[] { "http://maps.MY-DOMAIN.com/tile/" }) {
@Override
public String getTileURLString(long pMapTileIndex) {
String url = getBaseUrl()
+ MapTileIndex.getZoom(pMapTileIndex)
+ "/" + MapTileIndex.getX(pMapTileIndex)
+ "/" + MapTileIndex.getY(pMapTileIndex)
+ mImageFilenameEnding;
Log.e("MAP",url);
return url;
}
});
}
}
我最终得到的是,
如何解决此问题?我查看了文档,但对此没有提及。
答案 0 :(得分:2)
要么图块源是z / x / y与z / y / x,要么y坐标反转了,图块源更接近TMS规范与开放式街道地图使用的草皮地图格式。无论哪种情况,都可以解决问题,清除图块缓存,然后重试