Uygulamanızın ayarlarını, Coğrafi API'yi kullanabileceği şekilde yapılandırın.
Ön koşullar
Devam etmeden önce temel AR kavramlarını ve ARCore oturumunu nasıl yapılandıracağınızı anladığınızdan emin olun.
Burada açıklanan işlevleri gösteren bir örnek uygulama çalıştırmak istiyorsanız iOS için ARCore Coğrafi Hızlı Başlangıç Kılavuzu'na bakın.
Geospatial API hakkında daha fazla bilgi için Geospatial API'ye Giriş başlıklı makaleyi inceleyin.
ARCore ile geliştirmeye yeni başladıysanız yazılım ve donanım gereksinimleri, ön koşullar ve kullandığınız platformlara özgü diğer bilgiler için Başlangıç bölümüne bakın.
ARCore API'yi etkinleştirme
Uygulamanızda Görsel Konumlandırma Sistemi'ni (VPS) kullanmadan önce yeni veya mevcut bir Google Cloud projesinde ARCore API'yi etkinleştirmeniz gerekir. Bu hizmet, coğrafi yer işaretlerini barındırmaktan, depolamaktan ve çözmekten sorumludur.
Anahtarsız yetkilendirme tercih edilir ancak API anahtarı yetkilendirmesi de desteklenir.
Uygulamanıza gerekli kitaplıkları ekleme
Uygulamanızı ARCore API'yi çağıracak şekilde yetkilendirdikten sonra, uygulamanızda Coğrafi Özellikler'i etkinleştirmek için kitaplıklar eklemeniz gerekir.
UygulamanızınPodfile
değerini, ARCore SDK'sını ve desteklenen iOS sürümlerini içerecek şekilde güncelleyin. Bunun için:
Projenizin
Podfile
dosyasına aşağıdakiplatform
vepod
değerlerini ekleyin:platform :ios, '11.0' pod 'ARCore/Geospatial', '~> 1.48.0'
iOS 10'u desteklemek istiyorsanız
platform :ios, '10.0'
değerini de belirtebilirsiniz. Ancak Geospatial API'nin yalnızca iOS 11 ve sonraki sürümlerde çalışma zamanında çalışacağını unutmayın.Bir Terminal penceresi açın ve Xcode projenizin bulunduğu klasörden
pod install
dosyasını çalıştırın.Bu işlem, uygulamayı derlemek ve çalıştırmak için kullanacağınız bir
.xcworkspace
dosyası oluşturur.
Geliştirme ortamınızın, Hızlı Başlangıç bölümünde açıklandığı gibi ARCore SDK koşullarını karşıladığından emin olun.
Oturum yapılandırmasında coğrafi özellikleri etkinleştirme
Cihaz uyumluluğunu kontrol etme
Hızlı başlangıç bölümünde açıklandığı gibi, ARCore'u destekleyen tüm cihazlar Geospatial API'yi de desteklemez.
Aşağıdaki gibi cihazı kontrol etmek için GARSession.isGeospatialModeSupported:
simgesini kullanın:
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;
}
Çalışma zamanında kullanıcıdan konum izinleri isteme
Uygulamanız, oturumu yapılandırmadan önce çalışma zamanında aşağıdaki konum izinlerini istemelidir:
kCLAuthorizationStatusAuthorizedWhenInUse
CLAccuracyAuthorizationFullAccuracy
(iOS >= 14 olduğunda geçerlidir)
Cihazın mevcut konumunda Coğrafi Veri Kullanımı'nın kullanılabilirliğini kontrol etme
Coğrafi API, coğrafi dönüşüm belirlemek için VPS ve GPS'ten alınan verileri birlikte kullandığından, cihaz konumunu belirleyebildiği sürece API kullanılabilir. Kapalı alanlar ve yoğun kentsel ortamlar gibi GPS doğruluğunun düşük olduğu yerlerde API, yüksek doğrulukta dönüştürme işlemleri oluşturmak için VPS kapsamına dayanır. Normal koşullarda VPS'nin yaklaşık 5 metrelik konumsal doğruluk ve 5 derecelik dönme doğruluğu sağlaması beklenebilir. Belirli bir konumun VPS kapsamına girip girmediğini belirlemek için GARSession.checkVPSAvailabilityAtCoordinate:completionHandler:
değerini kullanın.
Coğrafi API, VPS kapsamı olmayan alanlarda da kullanılabilir. Başınızın üzerinde çok az engel bulunan veya hiç engel bulunmayan dış mekan ortamlarında, yüksek doğrulukta bir dönüştürme işlemi oluşturmak için GPS yeterli olabilir.
Sırada ne var?
- Kullanıcının cihazının gerçek dünyadaki tam konumunu belirlemek için cihaz kamerasının Coğrafi Dönüşümünü alın.
- Bir cihazın belirli konumunda VPS'nin kullanılabilir olup olmadığını kontrol edin.