Hướng dẫn nhanh về không gian địa lý cho iOS

Hướng dẫn nhanh về API Không gian địa lý ARCore này 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ý.

Để được 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 cho nhà phát triển 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 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
  • CocoaPs 1.4.0 trở lên nếu sử dụng CocoaPods
  • Thiết bị Apple tương thích với ARKit chạy iOS 12.0 trở lên (cần 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 cho iOS mô tả mã gọi API Không gian địa lý.

  1. Nhân bản hoặc tải SDK ARCore dành cho iOS dành cho iOS từ GitHub xuống để lấy mã ứng dụng mẫu.

  2. 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.

  3. Chuyển đến thư mục arcore-ios-sdk-master/Examples.

  4. Mở thư mục Example (Ví dụ), chọn thư mục GeospatialExample rồi nhấp vào Open (Mở).

Thiết lập một dự án trên Google Cloud

Để sử dụng Hệ thống định vị trực quan (VPS), bạn cần liên kết ứng dụng của mình với một dự án trên Google Cloud đã bật API ARCore.

Bạn phải bật API ARCore trong dự án Google Cloud của mình. Nếu bạn cần tạo dự án, hãy làm như sau:

  1. Hãy xem bài viết Tạo dự án trong Google Cloud Platform.

  2. Nhập Tên dự án phù hợp rồi chọn vị trí cho dự án đó.

  3. Nhấp vào Tạo.

  4. Trong thanh bên, hãy chọn APIs & Services (API và Dịch vụ), rồi chọn Library (Thư viện).

  5. Tìm ARCore API, chọn API đó rồi nhấp vào Enable (Bật).

Thiết lập lệnh 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ã nhận dạng gói để liên kết với khoá API.

  1. Trong dự án Google Cloud của bạn, hãy lấy khoá API như mô tả trong phần Tạo khoá API.

  2. Sao chép khoá API theo cách bạn sẽ dán ở bước sau.

  3. Trong Xcode, trong ứng dụng mẫu GeospatialExample, hãy mở tệp ViewController.m và tìm kiếm your-api-key.

  4. Thêm khoá API vào GARSession: dán khoá API mà bạn đã sao chép từ bước trước lên văn bản, your-api-key (để lại dấu ngoặc kép), như minh hoạ bên dưới.

    self.garSession = [GARSession sessionWithAPIKey:@"your-api-key"
                                   bundleIdentifier:nil
                                              error:&error];
    

Thiết lập SDK ARCore

Ứng dụng GeospatialExample xuất hiện với Podfile được định cấu hình sẵn 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 rồi chạy pod install từ thư mục có dự án Xcode.

Thao tác này sẽ tạo một tệp .xcworkspace mà sau này bạn sẽ sử dụng để tạo và chạy ứng dụng.

Xây dựng và chạy ứng dụng mẫu

  1. Trong Xcode, hãy chọn tệp không gian làm việc GeospatialExample rồi nhấp vào Ký và khả năng.

  2. Đánh dấu vào hộp Tự động quản lý tính năng ký.

  3. 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 giá trị này nếu sử dụng Ví dụ về không gian địa lý làm mã giả lập cho ứng dụng của riêng bạn trong phiên bản chính thức.

  4. Kết nối thiết bị của bạn để chạy ứng dụng mẫu.

  5. Tạo và chạy ứng dụng GeospatialExample từ tệp .xcworkspace để chạy ứng dụng này trên thiết bị của bạn.

    Để 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ừ tệp .xcodeproj.

Bạn sẽ thấy chế độ xem camera, cùng với thông tin gỡ lỗi mô tả việc 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 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 bản địa hoá VPS hỗ trợ.

Khi ARCore đã chắc chắn về vị trí và hướng của thiết bị, bạn có thể đặt một Neo tại vị trí hiện tại bằng cách sử dụng tính năng 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 VPS. Ứng dụng phải kết nối với Internet và VPS phải xác định vị trí. Để có kết quả tốt nhất, hãy chạy ứng dụng mẫu bên ngoài (không phải trong nhà) vào ban ngày.

Ngoài ra, nếu đang ở một khu vực không hỗ trợ VPS hoặc nếu tín hiệu GPS không có đủ, thì bạn có thể phải đ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:

  1. Trong Xcode, hãy mở tệp ViewController.m rồi duyệt qua 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;
    
  2. Bạn có thể đ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ó vĩ độ lớn hơn trong việc đặt neo. Xem bài viết Điều chỉnh để đạt độ 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 cho nhà phát triển về Không gian địa lý dành cho iOS và bắt đầu xây dựng bằng API Không gian địa lý.