我正在尝试在 Android Studio 中使用 Kotlin 开发 Android 应用程序。我想在 Google 地图的应用程序中为药房做标记。我的问题在我的代码中:
private fun searchNearbyPharmacies(location: LatLng) {
val placeFields = listOf(Place.Field.DISPLAY_NAME, Place.Field.LOCATION, Place.Field.TYPES)
val request = FindCurrentPlaceRequest.newInstance(placeFields)
placesClient.findCurrentPlace(request)
.addOnSuccessListener { response ->
for (placeLikelihood in response.placeLikelihoods) {
val place = placeLikelihood.place
val placeTypes = placeLikelihood.place.placeTypes
placeTypes?.forEach { placeType ->
Log.i("PlaceType", "Place type: $placeType")
}
if (placeTypes?.contains(PlaceTypes.PHARMACY) == true) {
val latLng = place.location
latLng?.let {
addMarkerForPharmacy(latLng, place.displayName ?: "Pharmacy")
}
}
}
}.addOnFailureListener { exception ->
exception.printStackTrace()
}
}
在 placeTypes 中没有 Pharmacy 这样的东西,为什么呢?我该如何修复它?
该代码的工作原理就像我在以下代码中将其从 PlaceTypes.PHARMACY 更改为 PlaceTypes.MUSEUM
if (placeTypes?.contains(PlaceTypes.MUSEUM) == true)
我可以为其他类型的地方(例如本例中的博物馆)制作标记。
提前致谢。
代码很好,因为我可以制作诸如设施、兴趣点、博物馆等标记。但是那里没有药房。但如果我放大地图,我可以看到药房。我在模拟器和真实设备上都尝试过。
我在日志中写了placeTypes,只有这些类型:
placeTypes?.forEach { placeType ->Log.i("PlaceType", "Place type: $placeType")}
I Place type: tourist_attraction
I Place type: point_of_interest
I Place type: establishment
I Place type: street_address
I Place type: transit_station
I Place type: cafe
I Place type: bar
I Place type: restaurant
I Place type: food
I Place type: store
I Place type: museum
在 Google Places 4.0.0 版本中,有一个 Pharmacy 类型,您可能需要更新您的图书馆版本。
public static final String PHARMACY = "pharmacy";