我集成了新的地点API,并且正在使用以下方法来获取最近的地点列表。
private fun getNearestPlaceList(placesClient: PlacesClient) {
val placeFields = listOf(Place.Field.NAME, Place.Field.ID, Place.Field.LAT_LNG)
val request = FindCurrentPlaceRequest.builder(placeFields).build()
placesClient.findCurrentPlace(request).addOnSuccessListener { response ->
placeList.clear()
response.placeLikelihoods.map { placeLikelihood -> placeLikelihood.place }
.filter { place -> !place.id.isNullOrEmpty() && !place.name.isNullOrEmpty() }
.forEach { place ->
val placeModel = PlaceModel(place.name!!, place.id!!)
placeList.add(placeModel)
}
setAdapter(placeList)
}.addOnFailureListener { exception ->
if (exception is ApiException) {
Log.e(TAG, "Place not found: " + exception.statusCode)
}
}
}
当前API仅收集我设备当前位置的最近位置。但是我的要求是获取特定(不同)位置的最近位置。那么是否可以将位置信息(不同的Lat Long)输入到API并获取该位置的最近列表?目前,API正在自动收集当前位置,并发送最近地点的列表。有人有解决方案,请更新?
答案 0 :(得分:1)
Places SDK当前无法从特定位置(不是设备的当前位置)获取最近的位置。需要说明的是,request.multipart()
中的PlaceLikelihood
是设备可能所在的地方。
FindCurrentPlaceResponse包含一个PlaceLikelihood列表 表示设备可能位于的位置的对象。 对于每个地方,结果都包括可能性的指示 那个地方是对的。如果没有,该列表可能为空 给定设备位置对应的已知位置。
据我所知,您可以通过 Places API-Nearby Search 获取特定位置附近地点的列表。
附近搜索功能可让您搜索指定区域内的地点。 您可以通过提供关键字或指定来优化搜索请求 您要搜索的地点的类型。
样品申请
FindCurrentPlaceResponse
还有一些可用的开源客户端库,可用于Google Maps Web Services。更多信息here。
最后,Google的“公共发行跟踪器”中还存在与此相关的功能请求。我建议您“加注星标”以接收更新。 https://issuetracker.google.com/issues/133276015
希望这会有所帮助!