Phần hướng dẫn nhanh này về API không gian địa lý ARCore sẽ hướng dẫn bạn cách chạy một ứng dụng mẫu trong Xcode minh hoạ API không gian địa lý.
Để biết hướng dẫn phát triển ứng dụng của riêng bạn bằng API không gian địa lý, hãy xem Hướng dẫn dành cho nhà phát triển về API không gian địa lý cho iOS.
Hãy xem bài viết Giới thiệu về API không gian địa lý ARCore để biết thêm thông tin về API không gian địa lý.
Nếu bạn mới bắt đầu phát triển bằng ARCore, hãy xem phần Bắt đầu.
Điều kiện tiên quyết
- Xcode phiên bản 13.0 trở lên
- Cocoapods 1.4.0 trở lên nếu bạn sử dụng Cocoapods
- Thiết bị Apple tương thích với ARKit chạy iOS 12.0 trở lên (bắt buộc phải có mục tiêu triển khai iOS 12.0 trở lên)
Thiết lập ứng dụng mẫu
Dự án GeospatialExample đi kèm với SDK ARCore dành cho iOS mô tả mã gọi API không gian địa lý.
Sao chép hoặc tải SDK ARCore dành cho iOS từ GitHub xuống để lấy mã ứng dụng mẫu.
Mở cửa sổ Terminal hoặc Finder rồi chuyển đến thư mục mà bạn đã sao chép hoặc tải SDK xuống.
Chuyển đến thư mục arcore-ios-sdk-master/Examples.
Mở thư mục Examples (Ví dụ), chọn thư mục GeospatialExample (Ví dụ về không gian địa lý) rồi nhấp vào Open (Mở).
Thiết lập dự án trên Google Cloud
Trước khi sử dụng Hệ thống định vị bằng hình ảnh (VPS) trong ứng dụng, trước tiên, bạn phải bật ARCore API trong một dự án Google Cloud mới hoặc hiện có. Mặc dù API không gian địa lý hoạt động với cả phương thức uỷ quyền Khoá không tiếp xúc và Khoá API, nhưng đối với hướng dẫn nhanh này, hãy sử dụng phương thức Khoá API.
Thiết lập quyền uỷ quyền
Để thực hiện lệnh gọi API không gian địa lý đến VPS, ứng dụng mẫu cần được uỷ quyền và có thể sử dụng khoá API không bị hạn chế. Nếu sử dụng khoá API bị hạn chế, bạn cũng phải cung cấp mã gói để liên kết với khoá API đó.
Trong XCode, trong ứng dụng mẫu GeospatialExample, hãy mở tệp ViewController.m và tìm your-api-key.
Thêm khoá API vào
GARSession
: dán khoá API bạn đã sao chép từ bước trước lên văn bản your-api-key (để nguyên dấu ngoặc kép), như minh hoạ:self.garSession = [GARSession sessionWithAPIKey:@"your-api-key" bundleIdentifier:nil error:&error];
Thiết lập SDK ARCore
Ứng dụng GeospatialExample đi kèm với Podfile
được định cấu hình trước bằng SDK ARCore và các phiên bản iOS mà bạn cần. Để cài đặt các phần phụ thuộc này, hãy mở cửa sổ dòng lệnh và chạy pod install
từ thư mục chứa dự án Xcode.
Thao tác này sẽ tạo một tệp .xcworkspace
mà bạn sẽ sử dụng sau để tạo và chạy ứng dụng.
Xây dựng và chạy ứng dụng mẫu
Trong Xcode, hãy chọn tệp không gian làm việc GeospatialExample rồi nhấp vào Signing & Capabilities (Ký và chức năng).
Đánh dấu vào hộp Tự động quản lý việc ký.
Trong trường Nhóm, hãy nhập tên nhóm.
Bạn có thể sử dụng Mã nhận dạng gói mặc định để chạy ứng dụng từ Xcode, nhưng bạn phải thay đổi mã nhận dạng gói nếu sử dụng GeospatialExample làm mã giả lập cho ứng dụng của riêng mình trong quá trình phát hành chính thức.
Kết nối thiết bị để chạy ứng dụng mẫu.
Tạo bản dựng và chạy ứng dụng GeospatialExample từ tệp
.xcworkspace
để chạy ứng dụng trên thiết bị.Để tránh lỗi bản dựng, hãy đảm bảo bạn đang tạo bản dựng từ tệp
.xcworkspace
chứ không phải tệp.xcodeproj
.
Bạn sẽ thấy chế độ xem máy ảnh, cùng với thông tin gỡ lỗi mô tả phép biến đổi không gian địa lý hiện tại của thiết bị. Khi bạn quét môi trường xung quanh, hãy lưu ý rằng các giá trị độ tin cậy về độ chính xác của vị trí có thể thay đổi khi bạn di chuyển, nếu bạn đang ở khu vực được hỗ trợ bởi tính năng định vị VPS.
Khi ARCore tự tin về vị trí và hướng của thiết bị, bạn có thể đặt một Điểm neo tại vị trí hiện tại bằng cách sử dụng phép biến đổi không gian địa lý.
Độ chính xác của vị trí có thể quá thấp nếu không có thông tin về VPS. Ứng dụng phải được kết nối với Internet và VPS phải biết vị trí. Để có kết quả tốt nhất, hãy chạy ứng dụng mẫu ở ngoài trời (không phải trong nhà) vào ban ngày.
Ngoài ra, nếu bạn đang ở khu vực không hỗ trợ VPS hoặc nếu tín hiệu GPS không đủ, bạn có thể cần điều chỉnh ngưỡng độ tin cậy trong ứng dụng để đặt điểm neo.
Cách điều chỉnh ngưỡng:
Trong Xcode, hãy mở tệp ViewController.m rồi chuyển đến phần sau:
// Thresholds for 'good enough' accuracy. These can be tuned for the // application. We use both 'low' // and 'high' values here to avoid flickering state changes. static const CLLocationAccuracy kHorizontalAccuracyLowThreshold = 10; static const CLLocationAccuracy kHorizontalAccuracyHighThreshold = 20; static const CLLocationDirectionAccuracy kHeadingAccuracyLowThreshold = 15; static const CLLocationDirectionAccuracy kHeadingAccuracyHighThreshold = 25;
Điều chỉnh các giá trị này nếu cần. Giá trị càng cao thì độ chính xác càng thấp.
Việc giảm độ chính xác cho phép ứng dụng có nhiều tự do hơn trong việc đặt neo. Hãy xem phần Điều chỉnh cho độ chính xác của phép biến đổi để biết thêm thông tin.
Các bước tiếp theo
Xem lại Hướng dẫn dành cho nhà phát triển về không gian địa lý cho iOS và bắt đầu xây dựng bằng API không gian địa lý.