Esri ArcGIS SDK v100.x.x Android 简单的代码 sn-p 以使用实时导航启用当前位置(使用 Java/Kotlin)。
这在使用 Build-Tool 29.0.2、kotlin_version 1.3.70、Java 8 和 Gradle 3.6.1 的 Android Studio 3.6.1 上成功运行。
启用 ArcGIS MapView 自动显示实时当前位置的 Kotlin 代码:
mapView.locationDisplay.startAsync()
mapView.locationDisplay.autoPanMode = LocationDisplay.AutoPanMode.NAVIGATION
等效的 Java 代码:
mapView.getLocationDisplay().startAsync();
mapView.getLocationDisplay().setAutoPanMode(LocationDisplay.AutoPanMode.NAVIGATION);
添加清单权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
获取当前位置坐标(Lat-Lng)并放大:
// Check if location provider enabled.
val locationServiceManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager
val isEnabled = locationServiceManager.isProviderEnabled(LocationManager.GPS_PROVIDER)
if (!isEnabled) {
// Location provide not enabled.
Toast.makeText(this, "Enable Location Setting", Toast.LENGTH_SHORT).show()
startActivity(Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS))
} else {
// Fetch valid current location provided from provider.
if (mapView.locationDisplay != null)
if (mapView.locationDisplay.location != null)
if (mapView.locationDisplay.location.position != null) {
val point = mapView.locationDisplay.location.position
// Zoom to current location with magnification 1000.
mapView.setViewpointCenterAsync(point, 1000.0)
Log.d("Latitude", "${point.x}")
Log.d("Longitude", "${point.y}")
}
}
重要提示:
这里我们在 Android Studio 上使用 Java/Kotlin 使用 Android Esri ArcGIS v100.7.x。
应用应该已经授予了上述两个权限。
设备应启用GPS_PROVIDER。除了GPS_PROVIDER,您还可以使用NETWORK_PROVIDER。
请尝试使用其他选项而不是 LocationDisplay.AutoPanMode.NAVIGATION,以最好地满足您的用例。
希望这会有所帮助。