OSMDroid 中 Bing 卫星视图的 initMetaData(this) 错误

initMetaData(this) Error with Bing Satellite View in OSMDroid

我想在 OSMDroid 中显示来自 Bing 的 Satellite Tiles 并安装了 'osmdroid-third-party-4.3.jar'。

以下代码发布在网上以显示卫星图块,但我总是得到错误:

'The method initMetaData() in the type BingMapTileSource is not applicable for the arguments' !

/* BING SATELLITE VIEW */
        try{
            BingMapTileSource.initMetaData(this);
          String m_locale =   Locale.getDefault().getDisplayName();
          BingMapTileSource bing = new BingMapTileSource(m_locale);
          bing.setStyle(BingMapTileSource.IMAGERYSET_AERIAL);
          mapView.setTileSource(bing);
        }
        catch(Exception e){
          e.printStackTrace();
        }

没有参数 'this' 我得到错误:

'The method initMetaData() from the type BingMapTileSource is not visible'

有什么想法吗?

我通过包含正确的 'BingMapTileSource.java' !

解决了这个问题

Here 你可以找到一个带有 public 方法 initMetaData()

的版本

第一个回答错误。

2015 年 7 月 22 日更新

如何添加Bing地图到osmdroid

这里有分步说​​明。也许有人这样做会节省很多时间。

1.Add 依赖于 gradle

compile 'org.slf4j:slf4j-android:1.6.1-RC1'
compile 'org.osmdroid:osmdroid-android:4.3'

2.add 库 osmdroid-third-party from here

在我们的项目中添加三个类(BingMapTileSource.java、ImageryMetaData.java、ImageryMetaDataResource.java)。 from here

3.Getting 一个 Bing 地图键。 Instructions here

4.Add 清单的 Bing 映射键。

<meta-data android:name="BING_KEY" android:value="ApEqyap8rTa4WTNCNv-3pAGQc7XUsHS6595tuDI3MHR59QlahJ5bqYGYhMYJq6Ae" />

5.The 最后一步。添加地图代码

        ResourceProxyImpl mResourceProxy = new ResourceProxyImpl(getContext().getApplicationContext());
        MapView mMapView = new MapView(getContext(), 256, mResourceProxy);
        mMapView.setBuiltInZoomControls(true);
        mMapView.setMultiTouchControls(true);

        try{
            BingMapTileSource.retrieveBingKey(getContext());
            String m_locale =   Locale.getDefault().getDisplayName();
            BingMapTileSource bing = new BingMapTileSource(m_locale);
            bing.setStyle(BingMapTileSource.IMAGERYSET_AERIAL);
            mMapView.setTileSource(bing);
        }
        catch(Exception e){
            e.printStackTrace();
        }
        mapContent.addView(mMapView);