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، باید کتابخانه‌هایی را اضافه کنید تا ویژگی‌های Geospatial را در برنامه خود فعال کنید.

Podfile را برای برنامه خود به‌روزرسانی کنید تا شامل ARCore SDK و نسخه iOS پشتیبانی‌شده باشد. برای انجام این کار:

  1. platform و pod زیر را به Podfile پروژه خود اضافه کنید:

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

    اگر می‌خواهید از iOS 10 پشتیبانی کنید، می‌توانید platform :ios, '10.0' نیز مشخص کنید، اما توجه داشته باشید که Geospatial API فقط در زمان اجرا در iOS >= 11 کار می‌کند.

  2. یک پنجره ترمینال را باز کنید و pod install از پوشه ای که پروژه Xcode شما وجود دارد اجرا کنید.

    این یک فایل .xcworkspace ایجاد می کند که از آن برای ساخت و اجرای برنامه استفاده می کنید.

مطمئن شوید که محیط توسعه شما مطابق با نیازهای ARCore SDK، همانطور که در Quickstart توضیح داده شده است.

قابلیت های Geospatial را در پیکربندی جلسه فعال کنید

سازگاری دستگاه را بررسی کنید

همه دستگاه‌هایی که از 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 را در مکان فعلی دستگاه بررسی کنید

از آنجایی که Geospatial API از ترکیبی از VPS و GPS برای تعیین تبدیل Geospatial استفاده می کند، تا زمانی که دستگاه قادر به تعیین مکان آن باشد، API می تواند مورد استفاده قرار گیرد. در مناطقی با دقت GPS پایین، مانند فضاهای داخلی و محیط‌های شهری متراکم، API برای ایجاد دگرگونی‌هایی با دقت بالا به پوشش VPS متکی است. در شرایط معمولی می توان انتظار داشت که VPS دقت موقعیتی تقریباً 5 متر و دقت چرخشی 5 درجه را ارائه دهد. از GARSession.checkVPSAvailabilityAtCoordinate:completionHandler: برای تعیین اینکه آیا یک مکان مشخص دارای پوشش VPS است استفاده کنید.

Geospatial API همچنین در مناطقی که پوشش VPS ندارند قابل استفاده است. در محیط‌های بیرونی با تعداد کم یا بدون موانع بالای سر، GPS ممکن است برای ایجاد یک تبدیل با دقت بالا کافی باشد.

بعدش چی