为什么 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));