我正在使用 omdroid 3.0.8 测试一个非常简单的 OSM 应用程序(并在实际的 HTC Desire 设备上进行测试)。这就是我想要做的:
final org.osmdroid.views.MapView mapView = new org.osmdroid.views.MapView(this, 256);
setContentView(mapView);
mMapView = mapView;
final org.osmdroid.views.overlay.MyLocationOverlay mlo = new org.osmdroid.views.overlay.MyLocationOverlay(this, mapView);
mapView.getOverlays().add(mlo);
mMyLocationOverlay = mlo;
mMapView.getController().setZoom(14);
mMapView.getController().setCenter(new GeoPoint(52370816, 9735936));
mMyLocationOverlay.disableMyLocation();
尝试获取 OSM MapView 我在 LogCat 中只得到一个网格和“IO Exception download MapTile”:
03-06 14:22:43.444: D/dalvikvm(901): GC_FOR_MALLOC freed 1896 objects / 766304 bytes in 61ms
03-06 14:23:09.194: W/System.err(901): 310899 [downloader] WARN org.osmdroid.tileprovider.modules.MapTileDownloader - IOException downloading MapTile: /14/8636/5384 : java.net.SocketException: The operation timed out
03-06 14:23:11.664: D/dalvikvm(901): GC_FOR_MALLOC freed 3009 objects / 1169544 bytes in 66ms
03-06 14:23:19.974: W/System.err(901): 321679 [downloader] WARN org.osmdroid.tileprovider.modules.MapTileDownloader - IOException downloading MapTile: /14/8636/5385 : java.net.SocketException: The operation timed out
03-06 14:23:34.084: W/System.err(901): 335789 [downloader] WARN org.osmdroid.tileprovider.modules.MapTileDownloader - IOException downloading MapTile: /14/8636/5384 : java.net.SocketException: The operation timed out
03-06 14:23:40.984: W/System.err(901): 342689 [downloader] WARN org.osmdroid.tileprovider.modules.MapTileDownloader - IOException downloading MapTile: /14/8635/5385 : java.net.SocketException: The operation timed out
03-06 14:23:55.094: W/System.err(901): 356798 [downloader] WARN org.osmdroid.tileprovider.modules.MapTileDownloader - IOException downloading MapTile: /14/8633/5381 : java.net.SocketException: The operation timed out
...等等。设备上的网络连接正常,而且使用相同地图的 OsmAnd 应用程序可以正常工作。我需要在线获取地图,这就是重点。如何从我的应用程序中获取 OSM 地图?