我正在使用谷歌地图的GMSIndoorDisplay类。我可以使用默认楼层设置视图。用户可以通过按下楼层列表中的任何楼层来更改楼层。有没有办法在现有的加载ViewController上以编程方式强制更改楼层?
答案 0 :(得分:1)
我找到了办法。通过保存当前构建对象,我们可以更改GMSIndoorDisplay的活动级别,然后强制调用委托:
- (void) didChangeActiveBuilding: (GMSIndoorBuilding *) building [optional]
这样,将自动触发以下代理: - (void)didChangeActiveBuilding :( GMSIndoorBuilding *)建筑[可选]
- (void) didChangeActiveLevel: (GMSIndoorLevel *) level [optional]
答案 1 :(得分:0)
不幸的是,看起来你不能这样做。每个建筑物都有一个默认楼层,将在首次显示选择器时选择。
答案 2 :(得分:0)
- (void)mapViewDidFinishTileRendering:(GMSMapView *)mapView {
if(!selectlevel)
selectlevel = mapView.indoorDisplay.activeBuilding.defaultLevelIndex;
allLevels = mapView.indoorDisplay.activeBuilding.levels;
}
- (void)down:(id)down {
if(selectlevel>0){
selectlevel = selectlevel -1;
mapView.indoorDisplay.activeLevel = allLevels[selectlevel];
}
}
- (void)up:(id)up {
if(selectlevel< [allLevels count] -1){
selectlevel = selectlevel +1;
mapView.indoorDisplay.activeLevel = allLevels[selectlevel];
}
}