Arcorelocation
A lightweight iOS framework for displaying AR content at real-world coordinates
Install / Use
/learn @EYDS-CA/ArcorelocationREADME
ARCoreLocation
ARCoreLocation is a lightweight and configurable iOS framework for displaying AR content at real-world coordinates.
Features:
• Easily create AR scenes that place AR objects in the real world
• Place AR objects at any geographic location without worrying about ARKit's implementation details
• Receive tap events on your AR content
• Receive events when AR content overlaps on-screen
Installation
CocoaPods
Enter this in your Podfile:
pod 'ARCoreLocation', '~> 0.1.10'
Then run pod install. Remember to import ARCoreLocation in any file where you want to use it!
Usage
Setup
Create the ARLandmarker and add its view:
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)
Add Landmarks to the scene:
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)
User Interaction
Get User Interaction events:
landmarker.delegate = self
...
extension ViewController: ARLandmarkerDelegate {
func landmarkDisplayer(_ landmarkDisplayer: ARLandmarker, didTap landmark: ARLandmark) {
...
}
func landmarkDisplayer(_ landmarkDisplayer: ARLandmarker, didFailWithError error: Error) -> Void {
...
}
}
Overlapping Landmarks
Use different strategies for overlapping landmarks:
landmarker.overlappingLandmarksStrategy = .showAll
landmarker.overlappingLandmarksStrategy = .showNearest
landmarker.overlappingLandmarksStrategy = .showFarthest
landmarker.overlappingLandmarksStrategy = .custom(callback: { (overlappingLandmarkGroups, notOverlappingLandmarks) in
// Check overlapping groups and react accordingly
})
Request the landmarker to check for overlapping landmarks at a given interval:
// Check for overlaps every second
landmarker.beginEvaluatingOverlappingLandmarks(atInterval: 1)
...
landmarker.stopEvaluatingOverlappingLandmarks()
Or check for overlapping landmarks immediately
// ... Or check immediately
landmarker.evaluateOverlappingLandmarks()
Related Skills
qqbot-channel
349.9kQQ 频道管理技能。查询频道列表、子频道、成员、发帖、公告、日程等操作。使用 qqbot_channel_api 工具代理 QQ 开放平台 HTTP 接口,自动处理 Token 鉴权。当用户需要查看频道、管理子频道、查询成员、发布帖子/公告/日程时使用。
docs-writer
100.4k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
model-usage
349.9kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
Design
Campus Second-Hand Trading Platform \- General Design Document (v5.0 \- React Architecture \- Complete Final Version)1\. System Overall Design 1.1. Project Overview This project aims t
