การเริ่มต้นอย่างรวดเร็วเกี่ยวกับภูมิสารสนเทศสำหรับ iOS

การเริ่มต้นใช้ ARCore Geospatial API นี้อย่างรวดเร็วนี้จะแสดงวิธีเรียกใช้แอปตัวอย่างใน Xcode ที่สาธิต Geospatial API

ดูคำแนะนำในการพัฒนาแอปของคุณเองด้วย Geospatial API จากคู่มือนักพัฒนาซอฟต์แวร์ภูมิสารสนเทศสำหรับ iOS

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

หากคุณเพิ่งเริ่มใช้งานด้วย ARCore โปรดดูการเริ่มต้นใช้งาน

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

  • Xcode เวอร์ชัน 13.0 ขึ้นไป
  • CocoaPods 1.4.0 ขึ้นไปหากใช้ CocoaPods
  • อุปกรณ์ Apple ที่รองรับ ARKit ที่ใช้ iOS 12.0 ขึ้นไป (ต้องมีเป้าหมายการติดตั้งใช้งาน iOS 12.0 ขึ้นไป)

ตั้งค่าแอปตัวอย่าง

โปรเจ็กต์ GeospatialExample ที่รวมอยู่ใน ARCore SDK สำหรับ iOS อธิบายโค้ดที่เรียก Geospatial API

  1. โคลนหรือดาวน์โหลด ARCore SDK สำหรับ iOS จาก GitHub เพื่อรับโค้ดแอปตัวอย่าง

  2. เปิดหน้าต่างเทอร์มินัลหรือเครื่องมือค้นหา และไปยังโฟลเดอร์ที่คุณโคลนหรือดาวน์โหลด SDK

  3. ไปยังโฟลเดอร์ arcore-ios-sdk-master/Examples

  4. เปิดโฟลเดอร์ Example เลือกโฟลเดอร์ GeospatialExample และคลิก Open

ตั้งค่าโปรเจ็กต์ Google Cloud

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

คุณต้องเปิดใช้ ARCore API ในโปรเจ็กต์ Google Cloud หากต้องการสร้างโปรเจ็กต์ ให้ทำตามขั้นตอนต่อไปนี้

  1. ไปที่หัวข้อสร้างโปรเจ็กต์ใน Google Cloud Platform

  2. ป้อนชื่อโปรเจ็กต์ที่เหมาะสมและเลือกสถานที่ตั้ง

  3. คลิกสร้าง

  4. ในแถบด้านข้าง ให้เลือก API และบริการ แล้วเลือกไลบรารี

  5. ค้นหา ARCore API เลือกโปรแกรม แล้วคลิกเปิดใช้

ตั้งค่าการให้สิทธิ์

ในการเรียก Geospatial API ไปยัง VPS แอปตัวอย่างต้องได้รับการให้สิทธิ์และอาจใช้คีย์ API แบบไม่จำกัด หากใช้คีย์ API ที่ถูกจำกัด คุณต้องระบุรหัสชุดเพื่อเชื่อมโยงกับคีย์ API ด้วย

  1. ในโปรเจ็กต์ Google Cloud ให้รับคีย์ API ตามที่อธิบายไว้ในการสร้างคีย์ API

  2. คัดลอกคีย์ API เพื่อวางในขั้นตอนถัดไป

  3. ใน Xcode ในแอปตัวอย่าง GeospatialExample ให้เปิดไฟล์ ViewController.m แล้วค้นหา your-api-key

  4. เพิ่มคีย์ API ลงใน GARSession: วางคีย์ API ที่คัดลอกจากขั้นตอนก่อนหน้าเหนือข้อความ your-api-key (ปล่อยเครื่องหมายคำพูด) ดังที่แสดงด้านล่าง

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

ตั้งค่า ARCore SDK

แอป GeospatialExample มาพร้อม Podfile ซึ่งกำหนดค่าล่วงหน้าด้วย ARCore SDK และเวอร์ชัน iOS ที่คุณต้องการ หากต้องการติดตั้งการอ้างอิงเหล่านี้ ให้เปิดหน้าต่าง Terminal และเรียกใช้ pod install จากโฟลเดอร์ที่มีโปรเจ็กต์ Xcode อยู่

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

สร้างและเรียกใช้แอปตัวอย่าง

  1. ใน Xcode ให้เลือกไฟล์พื้นที่ทำงาน GeospatialExample แล้วคลิกการลงชื่อและความสามารถ

  2. ทำเครื่องหมายที่ช่องจัดการการลงชื่อโดยอัตโนมัติ

  3. ป้อนชื่อทีมในช่องทีม

    คุณอาจใช้ Bundle Identifier เริ่มต้นเพื่อเรียกใช้แอปจาก Xcode แต่ต้องเปลี่ยนการตั้งค่านี้หากคุณใช้ GeospatialExample เป็นสตับสำหรับแอปของคุณเองในเวอร์ชันที่ใช้งานจริง

  4. เชื่อมต่ออุปกรณ์เพื่อเรียกใช้แอปตัวอย่าง

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

    โปรดตรวจสอบว่าคุณสร้างจากไฟล์ .xcworkspace ไม่ใช่ไฟล์ .xcodeproj เพื่อหลีกเลี่ยงข้อผิดพลาดของรุ่น

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

เมื่อ ARCore มั่นใจตำแหน่งและการมุ่งหน้าไปของอุปกรณ์ คุณจะวาง Anchor ไว้ที่ตำแหน่งปัจจุบันได้โดยใช้ Geospatial Transform

ความแม่นยำของตำแหน่งอาจต่ำเกินไปในกรณีที่ไม่มีข้อมูล VPS แอปต้องเชื่อมต่ออินเทอร์เน็ตและ VPS ต้องทราบตำแหน่งดังกล่าว เพื่อผลลัพธ์ที่ดีที่สุด โปรดเรียกใช้แอปตัวอย่างนอกอาคาร (ไม่ใช่ในอาคาร) ในช่วงเวลากลางวัน

นอกจากนี้ หากคุณอยู่ในพื้นที่ที่ไม่รองรับ VPS หรือหากสัญญาณ GPS ไม่เพียงพอ คุณอาจต้องปรับเกณฑ์ความเชื่อมั่นในแอปเพื่อวาง Anchor

วิธีปรับเกณฑ์

  1. ใน Xcode ให้เปิดไฟล์ ViewController.m และเรียกดูส่วนต่อไปนี้

    // 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. ปรับค่าเหล่านี้ตามต้องการ ยิ่งค่าสูงเท่าใด ความแม่นยําจะยิ่งต่ำลงเท่านั้น

    การลดความแม่นยำช่วยให้แอปมีละติจูดมากขึ้นในการวาง Anchor ดูข้อมูลเพิ่มเติมได้ที่ปรับเปลี่ยนเพื่อความแม่นยำในการเปลี่ยนรูปแบบ

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

อ่าน คู่มือนักพัฒนาซอฟต์แวร์ด้านภูมิสารสนเทศสำหรับ iOS และเริ่มสร้างด้วย Geospatial API