当前,我正在使用iOS版Google Places SDK并阅读this example code from Google。我尝试阅读它,并弄清楚如何根据GMSPlace对地点类型进行分类,并且有一个名为types
的组件可供我分类。经过进一步的研究,我发现Google在此list中支持这些场所类型,但是我只能通过解析https://maps.googleapis.com/maps/api/place/findplacefromtext/output?parameters
的请求结果(尝试打印出{{ 1}}至GMSPlace.types
place.types
他们在选择位置override func viewDidLoad() {
super.viewDidLoad()
// Configure the table
tableDataSource =
PlaceDetailTableViewDataSource(place: place,
extensionConstraint: headerHeightExtensionConstraint,
tableView: tableView)
tableView.backgroundView = tableBackgroundView
tableView.dataSource = tableDataSource
tableView.delegate = tableDataSource
// Configure the UI elements
lookupPhoto()
configureMap()
configureBars()
print(place.types)
}
时返回此数组,这意味着我可以按地点类型对它进行排序,但到目前为止,对于该示例项目,我仍然不知道如何对结果进行排序并将其显示在地图视图中。有想法吗?
更新1:This是该存储库中的简化项目,仍然包含与我相同的问题。特别是["cafe", "store", "restaurant", "food", "point_of_interest", "establishment"]
在该项目中仍然是likelyPlaces
。
更新2:到目前为止,对于GMSPlace
,我可以使用{1>
likelyPlaces
但是当我将其转换为删除在possiblePlaces数组中不包含types
的任何元素时,我得到了var likelyPlaces: [GMSPlace] = []
var lengthOfArray: Int = 0
for i in 0..<lengthOfArray {
if (likelyPlaces[i].types.contains("store")) {
print(likelyPlaces[i])
}
}
store
The result我注意到结果在崩溃前重复了4次。
这两个都是关于GMSPlace的主题,所以我认为我可以将其保留在同一问题中。
更新3:刚刚找到了第二个更新的解决方案。创建一个数组以放置排序的位置。就我而言,我创建了Thread 1: Fatal error: Index out of range
,然后为for i in 0..<lengthOfArray {
if !(likelyPlaces[i].types.contains("store")) {
print(likelyPlaces[i])
likelyPlaces.remove(at: i)
}
}
创建了一个var restaurant: [GMSPlace] = []
条件,以便对其进行排序。
if else
然后清除likelyPlaces
并使用我们刚刚创建的数组填充
for i in 0..<likelyPlaces.count {
if (likelyPlaces[i].types.contains("restaurant") && !restaurant.contains(likelyPlaces[i])) {
restaurant.append(likelyPlaces[i])
}
}
那。仍在计算第一个。