osmdroid入门,mapview只显示网格

问题描述 投票:0回答:2

我计划在我的 Android 应用程序中使用 OSM,我决定尝试一下 osmdroid。这是我到目前为止所做的。

1:我下载了 slf4j-android-1.5.8.jar 和 osmdroid-android-3.0.8.jar 并将它们复制到我的 libs 文件夹中并将它们添加到构建路径。

2:我的 Xml 布局文件代码如下所示。

<org.osmdroid.views.MapView
        android:id="@+id/mapview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        />

3:我已将所有权限添加到清单中

<uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

4:我的创建方法看起来像这样

protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mapify);
        mapView = (MapView) findViewById(R.id.mapview);
        mapView.setTileSource(TileSourceFactory.MAPNIK);
        mapView.setBuiltInZoomControls(true);
        mapView.setClickable(true);
        mapController = mapView.getController();
        mapController.setZoom(15);
    }

我的问题是,尽管代码运行良好,但当我在模拟器上运行时,我无法看到地图。我已连接到互联网,并且能够在使用谷歌地图视图时查看地图。 我浏览了互联网以及 stackoverflow 中关于同一问题的一些问题。他们中的大多数人似乎忘记添加权限或添加 slf4j 来构建路径。我已经做了这两件事,所以我对我做错了什么感到不知所措。如果您提供一些见解,我将非常感激。

已解决:

我不知道是什么原因,但重新启动几次后地图就会显示。之后一切似乎都工作正常。当我尝试新的虚拟设备时,这种情况再次发生。当我关闭并重新启动应用程序几次后,它开始正常工作。

android maps osmdroid openstreetmap
2个回答
0
投票

这是一个老问题,但以防万一有人需要答案。如果模拟器没有外部存储来缓存地图切片,则可能会导致这种情况。我用SD卡创建了一个模拟器,解决了这个问题 打开街道地图(osmdroid)显示灰色瓷砖,而不是 PC 中的地图


0
投票

正如文档中所述,您必须致电

`Configuration.getInstance().load(ctx, PreferenceManager.getDefaultSharedPreferences(ctx))`

因为这现在可能已被废弃,但它解决了问题

© www.soinside.com 2019 - 2024. All rights reserved.