我使用Open Street Map实现了一个应用程序,我使用OSM android作为库。之前我工作得很好,但最近我运行了应用程序,它根本没有显示地图图块。我多次更换了瓷砖提供商,但它没有用。
这是我的代码:
public class OsmMapActivity extends SherlockActivity {
protected MapView mapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutId());
initialiseMap();
}
protected void initialiseMap(){
mapView = (MapView)findViewById(R.id.mapView);
mapView.setTileSource(TileSourceFactory.MAPQUESTOSM); //Mapink and other providers do not work
mapView.setMultiTouchControls(true);
}
}
另外,OSM android是否支持第三方提供商?我有自己的OSM磁贴服务器,当我使用Javascript显示地图时效果很好,但它在Android代码中不起作用。
OnlineTileSourceBase tileSource = new XYTileSource("MyOSM", null, 1, 19, 256, ".png", new String[]{"http://tactile.myserver.com/osm_tiles"});
TileSourceFactory.addTileSource(tileSource);
mapView.setTileSource("MyOSM");
您的回答将不胜感激。感谢。
编辑: 我正在使用 osmdroid-Android的4.2.jar Android 4.0.3
当我更仔细地看到它时,我可以看到地图拼贴很短的时间,然后另一层覆盖它。我从地图中删除了除基础图层以外的其他图层,但没有任何更改。
答案 0 :(得分:0)
MapController mapController;
MapView map = (MapView) root.findViewById(R.id.map);
map.setTileSource(TileSourceFactory.MAPQUESTOSM);
map.setBuiltInZoomControls(true);
map.setMultiTouchControls(true);
mapController = map.getController();
myLocationoverlay = new MyLocationNewOverlay(map);
myLocationoverlay.setEnabled(true);
map.getOverlays().add(myLocationoverlay);
mapController.setZoom(9.5);
GeoPoint startPoint = new GeoPoint(35.744198, 51.4285752);
mapController.setCenter(startPoint);