เปิดใช้ Geospatial API สำหรับแอป iOS ของคุณ

กำหนดการตั้งค่าของแอปเพื่อให้แอปใช้ Geospatial API ได้

ข้อกำหนดเบื้องต้น

ตรวจสอบว่าคุณเข้าใจแนวคิด AR พื้นฐาน และวิธีกำหนดค่าเซสชัน ARCore ก่อนดำเนินการต่อ

หากต้องการเรียกใช้แอปตัวอย่างที่แสดงฟังก์ชันการทำงานตามที่อธิบายไว้ที่นี่ โปรดดู คู่มือเริ่มใช้งานฉบับย่อของ ARCore Geospatial สำหรับ iOS

ดูข้อมูลเบื้องต้นเกี่ยวกับ Geospatial API สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Geospatial API

หากคุณยังไม่คุ้นเคยกับการพัฒนาด้วย ARCore โปรดดูการเริ่มต้นใช้งานสำหรับข้อมูลเกี่ยวกับข้อกำหนดของซอฟต์แวร์และฮาร์ดแวร์ ข้อกำหนดเบื้องต้น และข้อมูลอื่นๆ เฉพาะสำหรับแพลตฟอร์มที่คุณใช้อยู่

เปิดใช้ ARCore API

ก่อนที่จะใช้ Visual Positioning System (VPS) ในแอป คุณต้องเปิดใช้ ARCore API ในโปรเจ็กต์ Google Cloud ใหม่หรือที่มีอยู่ก่อน บริการนี้ทำหน้าที่โฮสต์ จัดเก็บ และแก้ไขจุดอ้างอิงทางภูมิศาสตร์

ทั้งนี้ขอแนะนำให้ให้สิทธิ์แบบไม่ใช้คีย์ แต่ก็รองรับการให้สิทธิ์คีย์ API ด้วย

เพิ่มไลบรารีที่จำเป็นลงในแอป

หลังจากที่ให้สิทธิ์แอปเรียกใช้ ARCore API แล้ว คุณต้องเพิ่มไลบรารีเพื่อเปิดใช้ฟีเจอร์ภูมิสารสนเทศในแอป

อัปเดต Podfile สำหรับแอปให้รวม ARCore SDK และการอัปเดตเป็น iOS เวอร์ชันที่รองรับ โดยทำดังนี้

  1. เพิ่ม platform และ pod ต่อไปนี้ลงใน Podfile ของโปรเจ็กต์

    platform :ios, '11.0'
    pod 'ARCore/Geospatial', '~> 1.41.0'
    

    คุณยังอาจระบุ platform :ios, '10.0' ได้ด้วยหากต้องการรองรับ iOS 10 แต่โปรดทราบว่า Geospatial API จะทำงานเฉพาะขณะรันไทม์บน iOS >= 11

  2. เปิดหน้าต่างเทอร์มินัลและเรียกใช้ pod install จากโฟลเดอร์ที่มีโปรเจ็กต์ Xcode อยู่

    การดำเนินการนี้จะสร้างไฟล์ .xcworkspace ที่คุณใช้สร้างและเรียกใช้แอป

ตรวจสอบว่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์เป็นไปตามข้อกำหนดของ ARCore SDK ตามที่อธิบายไว้ใน Quickstart

เปิดใช้ความสามารถด้านภูมิสารสนเทศในการกำหนดค่าเซสชัน

ตรวจสอบความเข้ากันได้ของอุปกรณ์

อุปกรณ์บางรุ่นที่รองรับ ARCore ไม่ได้รองรับ Geospatial API ตามที่อธิบายไว้ในquickstart

ใช้ GARSession.isGeospatialModeSupported: เพื่อตรวจสอบอุปกรณ์ ดังนี้

if (![self.garSession isGeospatialModeSupported:GARGeospatialModeEnabled]) {
  [self setErrorStatus:@"GARGeospatialModeEnabled is not supported on this device."];
  return;
}

GARSessionConfiguration *configuration = [[GARSessionConfiguration alloc] init];
configuration.geospatialMode = GARGeospatialModeEnabled;
[self.garSession setConfiguration:configuration error:&error];
if (error) {
  [self setErrorStatus:[NSString stringWithFormat:@"Failed to configure GARSession: %d",
                                                  (int)error.code]];
  return;
}

ขอสิทธิ์เข้าถึงตำแหน่งจากผู้ใช้ในระหว่างรันไทม์

แอปของคุณต้องขอสิทธิ์เข้าถึงตำแหน่งต่อไปนี้ระหว่างรันไทม์ก่อนที่จะกำหนดค่าเซสชัน

ตรวจสอบความพร้อมใช้งานทางภูมิศาสตร์ที่ตำแหน่งปัจจุบันของอุปกรณ์

เนื่องจาก Geospatial API ใช้ VPS และ GPS ในการระบุการแปลงภูมิสารสนเทศ ดังนั้นจึงสามารถใช้ API ได้ตราบเท่าที่อุปกรณ์สามารถระบุตำแหน่งได้ ในพื้นที่ที่ GPS มีความแม่นยำต่ำ เช่น พื้นที่ในอาคารและสภาพแวดล้อมในเมืองที่มีผู้คนหนาแน่น API จะอาศัยการครอบคลุมของ VPS เพื่อสร้างการแปลงที่มีความแม่นยำสูง ภายใต้เงื่อนไขทั่วไป VPS จะต้องมีความแม่นยำประมาณ 5 เมตร และความแม่นยำในการหมุน 5 องศา ใช้ GARSession.checkVPSAvailabilityAtCoordinate:completionHandler: เพื่อดูว่าสถานที่นั้นๆ มีความครอบคลุม VPS หรือไม่

นอกจากนี้ Geospatial API สามารถใช้ในพื้นที่ที่ไม่มี VPS ครอบคลุม ในสภาพแวดล้อมกลางแจ้งที่มีสิ่งกีดขวางเหนือศีรษะน้อยมากหรือไม่มีสิ่งกีดขวาง GPS อาจเพียงพอต่อการสร้างการแปลงด้วยความแม่นยำสูง

ขั้นตอนถัดไป