Place API-如何获取特定(不同)位置的NearestList

时间:2019-06-24 13:16:36

标签: android google-maps google-places-api google-maps-android-api-2

我集成了新的地点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正在自动收集当前位置,并发送最近地点的列表。有人有解决方案,请更新?

1 个答案:

答案 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

希望这会有所帮助!