我只是在这里将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"/>
答案 0 :(得分:1)
您如何获得可变的mapfragment?在您的视图布局中,mapfragment似乎是MapView类型,而不是SupportMapFrgment。
答案 1 :(得分:1)
我认为您正在缺少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)")
}
}
}