เปิดใช้ 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 ใหม่หรือที่มีอยู่ บริการนี้มีหน้าที่ การโฮสต์ การจัดเก็บ และการแปล Anchor ภูมิสารสนเทศ

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

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

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

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

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

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

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

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

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

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

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

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

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

ใช้ 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 อาจเพียงพอที่จะสร้างการแปลงที่มีความแม่นยำสูง

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