为什么 place.latLng return 为空?
Why does place.latLng return null?
调用 place.latLng
,它在幕后调用 getLatLng()
,Place 的对象 returns 为 null 而不是坐标。
autocompleteFragment.setOnPlaceSelectedListener(object :
PlaceSelectionListener {
override fun onPlaceSelected(place: Place) {
Toast.makeText(this@MainActivity, "" + place.latLng.toString(), Toast.LENGTH_LONG)
.show()
}
override fun onError(status: Status) {
Toast.makeText(this@MainActivity, "" + status.statusMessage, Toast.LENGTH_SHORT)
.show()
}
})
确保您的 GPS 已开启并且已授予位置运行时权限。
我忘记将 Place.Field.LAT_LNG
添加到地点字段数组。
Before:
var placeFields = listOf(
Place.Field.ID,
Place.Field.NAME,
Place.Field.ADDRESS,
)
After:
var placeFields = listOf(
Place.Field.ID,
Place.Field.NAME,
Place.Field.ADDRESS,
Place.Field.LAT_LNG
)
指定数组时:
autocompleteFragment.setPlaceFields(placeFields)
确保在 setPlaceFields 中允许 want.for 例如我想要 latlang,所以我添加了 LAT_LNG。见下文。
autocompleteFragment.setPlaceFields(Arrays.asList(Place.Field.ID, Place.Field.NAME,Place.Field.LAT_LNG));
调用 place.latLng
,它在幕后调用 getLatLng()
,Place 的对象 returns 为 null 而不是坐标。
autocompleteFragment.setOnPlaceSelectedListener(object :
PlaceSelectionListener {
override fun onPlaceSelected(place: Place) {
Toast.makeText(this@MainActivity, "" + place.latLng.toString(), Toast.LENGTH_LONG)
.show()
}
override fun onError(status: Status) {
Toast.makeText(this@MainActivity, "" + status.statusMessage, Toast.LENGTH_SHORT)
.show()
}
})
确保您的 GPS 已开启并且已授予位置运行时权限。
我忘记将 Place.Field.LAT_LNG
添加到地点字段数组。
Before:
var placeFields = listOf(
Place.Field.ID,
Place.Field.NAME,
Place.Field.ADDRESS,
)
After:
var placeFields = listOf(
Place.Field.ID,
Place.Field.NAME,
Place.Field.ADDRESS,
Place.Field.LAT_LNG
)
指定数组时:
autocompleteFragment.setPlaceFields(placeFields)
确保在 setPlaceFields 中允许 want.for 例如我想要 latlang,所以我添加了 LAT_LNG。见下文。
autocompleteFragment.setPlaceFields(Arrays.asList(Place.Field.ID, Place.Field.NAME,Place.Field.LAT_LNG));