如何在没有可见地图的情况下查询Mapbox MGLMapView功能?

时间:2018-04-12 21:30:56

标签: ios swift mapbox augmented-reality

对于我正在进行的AR体验,我希望有一个"相机视图"它显示了基于用户位置的注释。如果用户位于某个区域,则显示注释。

我可以使用下面的

做这样的事情
extension ViewController: AnnotationManagerDelegate {

func session(_ session: ARSession, cameraDidChangeTrackingState camera: ARCamera) {
    print("camera did change tracking state: \(camera.trackingState)")

    let annotationLocation = CLLocation()
    let point = CGPoint(x: annotationLocation.coordinate.longitude, y: annotationLocation.coordinate.latitude)
    let features = mapView.visibleFeatures(at: point);

    if let score = features.first(where: { $0.attributes["score"] as! Int >= 5 }) {
        // ...

但在我的AR视图中,我想要隐藏地图 - 不要显示它。当我尝试设置mapView.isHidden = true时 - 查询总是失败。

这是有道理的,因为查询是针对可见功能的。如何隐藏地图,但仍然查询要素的图块?

1 个答案:

答案 0 :(得分:0)

进入Mapbox Studio https://www.mapbox.com/studio/并创建新的地图样式并删除所有图层。您可以将Mapbox地图设置为单一纯色(土地,水,道路等),这是您需要的。如果您需要在地图和空白地图之间切换,只需在样式之间切换即可。

let basicMap = URL(string: "mapbox://styles/mapbox/outdoors-v9")
let blankMap = URL(string: "yourCustomURLFromMapboxStudio")
let mapView = MGLMapView(frame: view.bounds, styleURL: blankMap)