Sık Sorulan Sorular

Ürün bilgileri

Sorunlar

Ağ

Veriler

Kullanıcı arayüzü özelleştirme

Güzergah Oluşturma/Planlama

Simülatör

İş akışları

Mobilite Hizmetleri

Ürün bilgileri

Uygulamanızda, her sürücünün kabul etmesi gereken Navigasyon SDK'sı Hizmet Şartları bildirimini içeren bir iletişim kutusu bulunmalıdır. Bu iletişim kutusu, sürücüye Hizmet Şartları'nı kabul etme fırsatı verir. Şartların metin dosyası, Navigasyon SDK'sı ile birlikte sağlanır.
Android'de, şartları içeren iletişim kutusunu görüntülemek için NavigationApi.showTermsAndConditionsDialog yöntemini kullanın.
iOS'te GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName yöntemini çağırın.
Google Haritalar Mobil tarafından desteklenen tüm diller, Navigasyon SDK'sında otomatik olarak kullanılabilir. Cihazın varsayılan bir sistem dili vardır ve uygulama bu ayarı değiştiremez. Ancak uygulama 70'ten fazla dile erişebilir.

Evet. Android'de, başlatılan LocationListener arka planda çalışmaya devam eder. Uygulamanız, konumu yola tutturmaya ve yönü korumaya devam eder.

iOS'te, arka planda konum ve yön bilgisi güncellemelerini almaya devam etmek için yola tutturma özelliğini uygulayın ve allowsBackgroundLocationUpdates değerini YES olarak ayarlayın.

Evet. Bir rota oluşturulduğunda veya değiştirildiğinde RouteChangeListener, çoklu çizgiler sağlar.

Hayır, Navigasyon SDK'sının kullanılabilmesi için cihazda Google Haritalar mobil uygulamasının yüklü olması gerekmez.
Hayır, Navigation SDK şu anda bu işlevi sunmuyor.
Evet. Trafik yönü kullanılabilir ve varsayılan olarak gösterilir.

Sorunlar

Xcode 12'de uygulamalar simülatör için doğru şekilde derlenmiyor. Bu sorunu nasıl düzeltebilirim?

Bu sorunu düzeltmek için Xcode projenizin derleme ayarlarını açın ve yalnızca "iOS Simulator" derlemeleri için Excluded Architectures özelliğine arm64 değerini ekleyin.

Daha fazla bilgi için şu StackOverflow ileti dizisine bakın.

GMSMapView yüklenmiyor.

GMSMapView yüklenmiyorsa:

  • Cloud Console'da NavSDK'nın etkinleştirildiğinden emin olun.
  • Navigasyon SDK'sı yüklüyse ancak projeniz Navigasyon SDK'sı API'lerini kullanmıyorsa SDK'yı ikili programınızdan kaldırın.

Ağ

Navigation SDK, zayıf bağlantıyı nasıl yönetir?
Navigasyon SDK'sı, her yolculuk için rotayı önceden önbelleğe alır. Önbelleğe alınan bilgiler, 15-20 dakikalık rota bilgilerini ve sürücünün rotadan sapması durumunda alternatif rotaları içerir. Navigation SDK, cihazın GPS'ini ve sensörlerini kullanarak konumu tahmin eder.
Çevrimdışı mod var mı?
Hayır, Navigasyon SDK'sı şu anda çevrimdışı mod sunmuyor ancak SDK, bir yolculuk için önceden önbelleğe alınmış bilgiler sağlar.

Veriler

Rotayı başlatmadan önce bir yolculuktaki tüm durakları/varış noktalarını alabilir miyim?

Evet. Android'de bir rotanın yol tarifini almak için Navigator.getRouteSegments() yöntemini çağırın.

iOS'te GMSNavigator.routeLegs(read) yöntemini çağırın.

Rotanın başında adım adım rota rehberliği kullanılabilir mi?
Evet. Navigation SDK, rota segmentlerinin bir listesini sağlar. Ayrıca sürücü, her manevrayı görmek için başlıktaki yol tarifi kartını kaydırabilir.
TVS, uygulama kullanıcılarına nasıl iletilir?

Android'de, uygulama kullanıcılarına TVS bilgisi vermek için aşağıdaki adımları uygulayın:

  1. Navigator.getTimeAndDistanceList() kullanarak tüm ara noktaların süresini ve mesafesini alma
  2. Bu bilgileri, sürücünün TVS'si için yaptığınız gibi istemci uygulamasına iletin.

iOS'te, uygulama kullanıcılarına TVS bilgisi vermek için aşağıdaki adımları uygulayın:

  1. Navigator.getRouteSegments() kullanarak yolculuktaki ayakları alın.
  2. Yolculuğun her ayağı için GMSNavigator.timeToNextDestination yöntemini çağırın.
  3. Sürücünün TVS'si için yaptığınız gibi zaman bilgisini istemci uygulamaya iletin.
Navigasyon ön planda değilse sürücünün mevcut konumunu almak için RoadSnappedLocationProvider kullanılabilir mi?

Evet. Android'de RoadSnappedLocationProvider varsayılan olarak arka planda çalışır.

iOS'te, navigasyonun arka planda çalışmaya devam etmesi için GMSRoadSnappedLocationProviderListener dinleyicisini uygulayın ve allowsBackgroundLocationUpdates özelliğini TRUE olarak ayarlayın.

Navigation SDK, coğrafi sınır çizmeyi destekliyor mu?

Hayır. Navigasyon bağlamında remainingTimeOrdistanceChangeListener, coğrafi sınıra göre daha avantajlıdır. Coğrafi sınır, yol geometrisini hesaba katmayabilir ve sürücünün gittiği tam noktayı merkeze almayabilir.

remainingTimeOrdistanceChangeListener kullanarak bu işlevi yaklaşık olarak elde edebilirsiniz.

  1. Geri çağırmaların sıklığını belirlemek için eşiği ayarlayın.
  2. Hedefe kalan mesafeyi kontrol edin.

Örneğin, eşiği 100 m olarak ayarlarsanız hedefe olan mesafe 100 m değiştiğinde geri çağırma alırsınız. Mesafe azaldıkça bu eşiği daha küçük bir değere güncelleyebilir ve daha sık geri çağırma alabilirsiniz. Ardından, teslim alma/bırakma konumuna yeterince yakın olup olmadığınızı belirlemek için kalan mesafeyi inceleyin.

iOS'te, bildirimler arasındaki mesafeyi yönetmek için GMSNavigatorListener.didUpdateRemainingDistance dinleyicisini uygulayın.

Navigasyon uygulaması arka plandayken bildirimleri devre dışı bırakabilir miyim?

Evet. Android'de bildirimleri kontrol etmek için Navigator.setHeadsUpNotificationEnabled kullanın. Bu yöntemin bir boole bağımsız değişkeni vardır. FALSE bildirimleri devre dışı bırakır; TRUE bildirimleri etkinleştirir.

iOS'te, GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates değerini NO olarak ayarlayarak yola sabitlenmiş konumlar için arka plan bildirimini devre dışı bırakın.

Diğer konum bildirimleri için arka planda işlemeyi devre dışı bırakmak istiyorsanız GMSNavigator.sendsBackgroundNotifications(NO) işlevini çağırın.

Kullanıcı arayüzü özelleştirme

En iyi rota seçeneğini renklerle kodlayabilir miyim?
Hayır. Belirli bir rota seçeneğini renk kodlaması şu anda desteklenmemektedir.
Navigasyon SDK'sı, son varış noktası için TVS'yi gösterebilir mi?

Evet. Android'de aşağıdaki yöntemleri kullanın:

  1. Navigator.getTimeAndDistanceList() kullanarak tüm ara noktaların süresini ve mesafesini alma
  2. NavigationFragment.setEtaCardEnabled(false) kullanarak mevcut yol noktasının TVS'sini gizleyin.
  3. Son varış noktasının TVS'sini oluşturun.

iOS'te aşağıdakileri kullanın:

  1. GMSNavigator.routeLegs(read) Hizmetleri İçin Arayın.
  2. Son aşamada GMSNavigator.timeToNextDestination numaralı telefonu arayın.
  3. MSMapView.settings.navigationFooterEnabled=NO değerini FALSE olarak ayarlayarak mevcut ara noktanın TVS'sini gizleyin.
  4. Son varış noktasının TVS'sini oluşturun.
TVS güncellemelerini nasıl gizleyebilirim?

TVS kartlarını aşağıdaki yöntemlerle devre dışı bırakabilirsiniz:

  • Android'de navigationView.setEtaCardEnabled(false) kullanın.
  • iOS'te GMSMapView.settings.navigationFooterEnabled=NO kullanın.
Üstbilgi ve altbilgi kartları için hangi kullanıcı arayüzü özelleştirmeleri kullanılabilir?

Android'de arka plan rengi stilini ayarlamak için StylingOptions kullanılır. Üstbilgi ve altbilgiyi gizlemek veya göstermek için NavigationFragment öğesinin setHeaderEnabled ve setFooterEnabled üye işlevlerini kullanın.

iOS'te arka plan rengi stilini ayarlamak için GMSMapView.settings.navigationHeaderPrimaryBackgroundColor kullanın. Üstbilgi ve altbilgiyi gizlemek veya göstermek için GMSUISettings öğesinin navigationFooterEnabled ve navigationHeaderEnabled özelliklerini kullanın.

Güzergah Oluşturma/Planlama

Sürücüye belirli bir rota verebilir miyim veya alternatif rotaları kaldırabilir miyim?
Hayır. Varsayılan olarak birden fazla rota sunulur ve en hızlı rotaya öncelik verilir. İsteğinize "otoyollardan ve ücretli yollardan kaçın" gibi tercihler ekleyerek varsayılan rotayı etkileyebilirsiniz. Ara nokta eklemek rotayı da etkiler.
Uygulama kullanıcısına, varsayılan varış konumundan farklı bir varış etiketi gösterebilir miyim?

Evet. Android'de, hedef için özel bir başlık ve enlem/boylam içeren bir Marker oluşturun. Navigation SDK, özel başlığı ve koordinatları NavigationMap üzerinde gösterir.

iOS'te, hedef için bir GMSMarker oluşturup gösterirsiniz.

Tanımlı bir yoldan sapmaları izlemek için Navigasyon SDK'sını kullanabilir miyim?

Evet. Android'de, rota değiştiğinde veya yeni bir rota önerildiğinde bildirim almak için Navigator.setRouteChangedListener kullanın:

  1. Navigator.setRouteChangedListener yöntemini kullanarak rota boyunca cihazın konumunu kontrol eden bir dinleyici kaydedin.
  2. Geri çağırma etkinlik işleyicisine (onRouteChanged) kod ekleyin:
    • Uygulama kullanıcısına güncellenmiş TVS ve mesafe bilgilerini içeren bir mesaj gönderme
    • Cihazın konumunu takip etme
    • [isteğe bağlı] Sürücü, belirlenen rotanın dışına çıktığında uygulamanızın işlemesi gereken diğer işlevleri ekleyin.

iOS'te, rota değiştiğinde veya yeni bir rota önerildiğinde bildirim almak için GMSNavigator ve dinleyicilerini kullanın:

  1. Haritanın görünüm denetleyicisinde GMSNavigatorListener protokolünü ve GMSRoadSnappedLocationProviderListener protokolünü uygulayın.
  2. GMSNavigatorListener.navigatorDidChangeRoute uygulayın.
  3. GMSNavigator'nin routeLegs ve currentRouteLeg özelliklerini kullanarak yeni rotaya erişin.
Sürücü, rotayı tamamlamadan navigasyondan çıkabilir mi?

Evet. Android'de navigasyonu durdurmak için Navigator.stopGuidance() yöntemini çağırın.

iOS'te GMSNavigator.clearDestinations yöntemini çağırın.

Navigation SDK, kamyonlar ve büyük araçlar için rota oluşturma ve navigasyonu destekliyor mu?

Evet. Büyük araç rotası (LVR) ile, Routes API veya Route Optimization API tarafından oluşturulan kamyona özel rota jetonlarını Navigation SDK'ya iletebilirsiniz. SDK, rota açıklama metinleriyle (yükseklik, ağırlık, tehlikeli madde ve kamyon kısıtlamaları) adım adım rota sağlar ve dinamik yeniden rota çizme sırasında aracın fiziksel profilini korur. Ayrıntılar için Büyük araç rotalarında gezinme başlıklı makaleyi inceleyin.

Simülatör

Simülatör, rota değişikliklerini destekliyor mu?

Evet. Android'de, rota değişikliği içeren bir yolculuğu simüle etmek için simulateLocationsAlongNewRoute yöntemini çağırın. simulateLocationsAlongExistingRoute yöntemi, mevcut rotadaki değişiklikleri yoksayar.

iOS'te, rota değişikliği içeren bir yolculuğu simüle etmek için GMSLocationSimulator.simulateAlongNewRouteToDestinations kullanın. Herhangi bir rota değişikliği beklemiyorsanız GMSLocationSimulator.simulateLocationsAlongExistingRoute veya GMSLocationSimulator.simulateAlongNewRouteToDestinations kullanabilirsiniz.

İş akışları

Gezinme parçası içeren bir etkinliği kapattıktan sonra bildirimi nasıl kapatabilirim?

Navigasyon bildirimi, etkinlik kapatıldığında navigasyon sırasında görünür kalır. Araç varış noktasına ulaştığında navigasyon durur ve bildirim kaybolur.

Bildirimdeki tıklamaları işlemek için Navigator.startGuidance(intent resumeIntent) kullanın. Uygulama kullanıcısı bildirimi tıkladığında resume intent tetiklenir. Genellikle Navigator.startguidance(getIntent()), ana etkinlikten çağrılır. Bu da uygulama kullanıcısı bildirimi tıkladığında etkinliği geri çağırır.

Mobilite Hizmetleri

Navigation SDK'nın kullanımı Mobilite Hizmetleri müşterileri için nasıl farklılık gösterir?

Google Haritalar Platformu Mobilite Hizmetleri, taşımacılık ve lojistik işletmelerinin kurumsal ihtiyaçlarını desteklemeye yardımcı olan bir API ve SDK koleksiyonu sunar. Mobilite Hizmetleri müşterileri için Navigation SDK genellikle rota optimizasyonu, sevkiyat, görev takibi, filo analizi ve daha fazlası için ilgili hizmetlerle birlikte kullanılır. Navigation SDK, Mobilite Hizmetleri müşterileri için de farklı şekilde faturalandırılır. Daha fazla bilgi için Mobility Services belgelerine bakın.

Mobilite ürünleri yalnızca belirli müşteriler tarafından kullanılabilir. Daha fazla bilgi için satış temsilcinizle iletişime geçin.

Mobility Services müşterisi olup olmadığımı nasıl anlayabilirim?
Navigasyon SDK'sını Mobility Services müşterisi olarak uygulayıp uygulamadığınızdan emin değilseniz kodunuzda ReportBillableEvent çağrısı olup olmadığına bakın. Yalnızca Mobility Services müşterileri ReportBillableEvent yöntemini çağırmalıdır.

Navigation SDK, Mobilite Hizmetleri müşterileri için nasıl faturalandırılır?
Mobilite Hizmetleri müşterileri için Navigation SDK'nın faturalandırması ve fiyatlandırması, Google Haritalar Platformu ile yaptığınız hizmet sözleşmesine bağlıdır. Mobility Services uygulamanızın doğru şekilde faturalandırıldığını doğrulama hakkında bilgi edinmek için Faturalandırma doğrulaması başlıklı makaleyi inceleyin. Mobility Services faturalandırması hakkında daha fazla bilgi için satış temsilcinizle iletişime geçin.

Yalnızca Mobilite Hizmetleri müşterileri hangi Navigation SDK API'lerini kullanmalıdır?

Navigation SDK'da sadece Mobilite Hizmetleri müşterileri tarafından kullanılması amaçlanan ve Google'ın işlem başına faturalandırdığı çeşitli API'ler vardır. Mobility Services müşterisi değilseniz aşağıdaki yöntemler hiçbir işlem yapmaz:

Mobility Services müşterisiysem Navigation SDK'nın Mobility Services dışı bir uygulamasını da kullanabilir miyim?

Evet, Mobilite Hizmetleri müşterileri, Navigation SDK'nın hem Mobilite Hizmetleri hem de Mobilite Hizmetleri dışındaki uygulamalarını kullanabilir. Ancak bir uygulamada aynı anda yalnızca bir uygulama türü kullanabilirsiniz. Ayrıca, Mobility Services uygulamanızda kullandıklarınızdan ayrı olarak yeni bir Google Cloud projesi, faturalandırma hesabı ve API anahtarı oluşturmanız gerekir. Daha fazla bilgi için Navigation SDK kurulumuna genel bakış başlıklı makaleyi inceleyin.

Navigation SDK'nın Mobilite Hizmetleri dışındaki bir uygulamasını kullanma (bir uygulamayı bir uygulama türünden diğerine taşıma dahil) hakkında daha fazla bilgi için Google hesap temsilcinizle iletişime geçin.

Not: Mobilite Hizmetleri müşterisi değilseniz ve Mobilite Hizmetleri API ve SDK koleksiyonu hakkında daha fazla bilgi edinmek istiyorsanız Google Haritalar Platformu satış ekibiyle iletişime geçin.