Google Maps SDK iOS 以编程方式更改楼层
Google Maps SDK iOS change floor level programmatically
我没有在文档中找到任何如何以编程方式更改楼层的方法。例如:
我为 1 个房间加载了一个特定的多边形,我想将楼层地图更改为特定的楼层(例如缩放到 2 层,然后添加我的多边形)。
使用信息框添加多边形不是问题,我只是想知道是否可以通过编程方式 select 正确的楼层。
点赞:
我仍然知道有 GMSIndoorDisplayDelegate - 我可以设置活动建筑。应该有一个 "activeLevel" 方法,但我无法分配任何值。
我找到了关于如何强制更改特定建筑物楼层的解决方案。
- 将代表
GMSIndoorDisplayDelegate
添加到 class,
设置代表:
mapView.delegate = self
mapView.indoorDisplay.delegate = self
添加委托方法:
func didChangeActiveBuilding(building: GMSIndoorBuilding!) {
if let currentBuilding = building {
var levels = currentBuilding.levels as! [GMSIndoorLevel]
mapView.indoorDisplay.activeLevel = levels[2] // set the level (key)
}
}
func didChangeActiveLevel(level: GMSIndoorLevel!) {
println("will be called after activeBuilding")
}
P.S。友情提醒,最上层是数组中的第一项。反了。
我没有在文档中找到任何如何以编程方式更改楼层的方法。例如:
我为 1 个房间加载了一个特定的多边形,我想将楼层地图更改为特定的楼层(例如缩放到 2 层,然后添加我的多边形)。
使用信息框添加多边形不是问题,我只是想知道是否可以通过编程方式 select 正确的楼层。
点赞:
我仍然知道有 GMSIndoorDisplayDelegate - 我可以设置活动建筑。应该有一个 "activeLevel" 方法,但我无法分配任何值。
我找到了关于如何强制更改特定建筑物楼层的解决方案。
- 将代表
GMSIndoorDisplayDelegate
添加到 class, 设置代表:
mapView.delegate = self mapView.indoorDisplay.delegate = self
添加委托方法:
func didChangeActiveBuilding(building: GMSIndoorBuilding!) { if let currentBuilding = building { var levels = currentBuilding.levels as! [GMSIndoorLevel] mapView.indoorDisplay.activeLevel = levels[2] // set the level (key) } } func didChangeActiveLevel(level: GMSIndoorLevel!) { println("will be called after activeBuilding") }
P.S。友情提醒,最上层是数组中的第一项。反了。