我用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安卓系统是否支持第三方供应商?我有自己的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");
希望得到您的回答。谢谢你的回答。
EDIT:我用的是osmdroid-android-4.2.jarAndroid4.0.3。
当我更仔细地观察时,我可以看到地图瓦片很短的时间,然后另一个层覆盖在上面。我从地图中删除了除了基础层以外的其他图层,但是没有任何变化。
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);