映射.地图视图不能投射到映射.支持地图片段



我只是在这里将 sdk 实现到我的项目中进行第一次测试,但我无法到达任何地方,在这里网站上没有 Kotlin 支持

try{
            mapfragment!!.init { error ->
                if (error == OnEngineInitListener.Error.NONE) {
                    // retrieve a reference of the map from the map fragment
                    var fragmentMap = mapfragment.map
                    map = mapfragment.map
                    // Set the map center to the Vancouver region (no animation)
                    map!!.setCenter(GeoCoordinate(49.196261, -123.004773, 0.0), Map.Animation.NONE)
                    // Set the zoom level to the average between min and max
                    map!!.zoomLevel = (map!!.maxZoomLevel + map!!.minZoomLevel) / 2
                } else {
                    println("ERROR: Cannot initialize Map Fragment")
                }
            }
        }
        catch
            (e: Exception)
        {
            Log.e("exception","map",e)
        }catch
            (ej: java.lang.Exception)
        {
            Log.e("exception","map",ej)
        }

这部分mapfragment!!.init给了我例外

java.lang.ClassCastException: com.here.android.mpa.mapping.MapView 不能强制转换为 com.here.android.mpa.mapping.SupportMapFragment

这是我的布局

 <fragment
        class="com.here.android.mpa.mapping.SupportMapFragment"
        android:id="@+id/mapfragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

我认为你缺少SupportMapFragment对象,正如@David提到的。基本上,您需要链接它。

看看我的,我让我在 Kotlin 工作是用这个:

var map: Map? = null
var mapRoute: MapRoute? = null
//get mapfragment
fun getSupportMapFragment(): SupportMapFragment {
    return getSupportFragmentManager().findFragmentById(R.id.mapfragment) as SupportMapFragment
}
//initializing the map view with default values
fun initializeMap() {
    val mapFragment = getSupportMapFragment()
    mapFragment.init { error ->
        if (error == OnEngineInitListener.Error.NONE) {
            // retrieve a reference of the map from the map fragment
            map = mapFragment.getMap()
            // Set the map center coordinate (no animation) - just to initialize map
            map!!.setCenter(GeoCoordinate(0.0, 0.0, 0.0), Map.Animation.NONE)
            // Set the map zoom level to the average between min and max (no animation)
            map!!.setZoomLevel((map!!.getMaxZoomLevel() + map!!.getMinZoomLevel()))
        } else {
            println("ERROR: Cannot initialize Map Fragment")
            //Log.e(LOG_TAG, "Cannot initialize SupportMapFragment ($error)")
        }
    }
}

你是如何得到变量地图片段的?在您的视图布局中,mapfragment似乎属于MapView类型,而不是SupportMapFrgment。

最新更新