ARCoreLocation 0.1.10

ARCoreLocation 0.1.10

Skyler Smith维护。



  • 作者:
  • Skyler Smith

ARCoreLocation

ARCoreLocation是一个轻量且可配置的iOS框架,能够在实际世界的坐标中显示AR内容。

特性

• 简单创建AR场景,将AR对象放置在真实世界中

• 在任何地理位置放置AR对象,无需担心ARKit的实现细节

• 接收AR内容的点击事件

• 当AR内容在屏幕上重叠时接收事件

安装

CocoaPods

在Podfile中输入以下内容:

pod 'ARCoreLocation', '~> 0.1.10'

然后运行pod install。记住在任何您想使用ARCoreLocation的地方导入import ARCoreLocation

使用说明

设置

创建ARLandmarker并添加其视图

let landmarker = ARLandmarker(view: ARSKView(), scene: InteractiveScene(), locationManager: CLLocationManager())
landmarker.view.frame = self.view.bounds
landmarker.scene.size = self.view.bounds.size
self.view.addSubview(landmarker.view)

将地标添加到场景中

let landmarkLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 75, height: 20))
landmarkLabel.text = "Statue of Liberty"
let location = CLLocation(coordinate: CLLocationCoordinate2D(latitude: 40.689234, longitude: -74.044524), altitude: 30, horizontalAccuracy: 5, verticalAccuracy: 5, timestamp: Date())
landmarker.addLandmark(view: landmarkLabel, at: location, completion: nil)

用户交互

获取用户交互事件

landmarker.delegate = self

...

extension ViewController: ARLandmarkerDelegate {
    func landmarkDisplayer(_ landmarkDisplayer: ARLandmarker, didTap landmark: ARLandmark) {
        ...
    }
    
    func landmarkDisplayer(_ landmarkDisplayer: ARLandmarker, didFailWithError error: Error) -> Void {
        ...
    }
}

重叠的地标

对不同重叠地标采用不同的策略

landmarker.overlappingLandmarksStrategy = .showAll
landmarker.overlappingLandmarksStrategy = .showNearest
landmarker.overlappingLandmarksStrategy = .showFarthest
landmarker.overlappingLandmarksStrategy = .custom(callback: { (overlappingLandmarkGroups, notOverlappingLandmarks) in
    // Check overlapping groups and react accordingly
})

请求在给定间隔内检查重叠地标

// Check for overlaps every second
landmarker.beginEvaluatingOverlappingLandmarks(atInterval: 1)
...
landmarker.stopEvaluatingOverlappingLandmarks()

或立即检查重叠地标

// ... Or check immediately
landmarker.evaluateOverlappingLandmarks()