Google Maps SDK iOS以编程方式更改楼层

时间:2015-07-02 11:44:04

标签: ios swift google-maps google-maps-sdk-ios

我在文档中找不到如何以编程方式更改楼层的方法。例如:

我为1个房间加载了一个特定的多边形,我想将楼层地图更改为特定的楼层(例如,缩放到2级,然后添加我的多边形)。

添加信息框的多边形不是问题,只是想知道是否可以以编程方式选择正确的楼层。

喜欢这里:

enter image description here

我仍然知道 GMSIndoorDisplayDelegate - 我可以设置活动的建筑物。应该有一个" activeLevel"方法,但我无法分配任何值。

1 个答案:

答案 0 :(得分:4)

我找到了如何强制特定建筑物改变楼层的解决方案。

  1. 将代理mapView.delegate = self mapView.indoorDisplay.delegate = self 添加到班级
  2. 设置代理:

    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")
    }
    
  3. 添加委托方法:

    var delimiter = @"\t";
    sb.Append(string.Join(delimiter, itemContent));
    sb.Append(Environment.NewLine);
    
  4. P.S。只是一个友好的提醒,最高级别是阵列中的第一项。它倒退了。