Sık Sorulan Sorular

Ürün bilgileri

Sorunlar

Veriler

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

Yönlendirme

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ı bildirimi içeren bir iletişim kutusu uygulanmalıdır. Bu iletişim kutusu, sürücüye Hizmet Şartları'nı kabul etme fırsatı verir. Şartların metin dosyası, Navigation SDK ile birlikte sağlanır.
Android'de, şartları içeren iletişim kutusunu göstermek için NavigationApi.showTermsAndConditionsDialog yöntemini kullanın.
iOS'te arama yapın GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName.
Google Haritalar Mobil tarafından desteklenen tüm diller, Navigation SDK'da otomatik olarak kullanılabilir. Cihazın varsayılan bir sistem dili vardır ve uygulamalar bu ayarı değiştiremez. Ancak uygulama, 70'ten fazla dile erişebilir.

Evet. Android'de başlatıldıktan sonra LocationListener arka planda çalışmaya devam eder. Uygulamanız, konumu yola göre hizalamaya ve yönü korumaya devam eder.

iOS'te, konum ve yön güncellemelerini arka planda almaya devam etmek için yol 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, Navigation SDK'nın cihazda Google Haritalar Mobil'in yüklü olmasını gerektirmez.
Hayır, Navigation SDK şu anda bu işlevi sağlamamaktadır.
Evet. Trafik yönü varsayılan olarak kullanılabilir ve gösterilir.

Sorunlar

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

Bu sorunu düzeltmek için Xcode projenizin Build Settings'ini açın ve arm64 öğesini Excluded Architectures for "iOS Simulator" builds only bölümüne ekleyin.

Daha fazla bilgi için aşağıdaki StackOverflow iş parçacığına bakın.

GMSMapView yüklenmiyor.

GMSMapView yüklenmiyorsa:

  • Cloud Console'da NavSDK'nın etkinleştirildiğinden emin olun.
  • Nav SDK yüklüyse ancak projenizde Nav SDK API'leri kullanılmıyorsa SDK'yı ikili dosyanızdan kaldırın.

Navigation SDK, bağlantı zayıf olduğunda nasıl davranır?
Navigation SDK, her yolculuk için rotayı önceden önbelleğe alır. Önceden önbelleğe alınan bilgiler arasında 15-20 dakikalık yönlendirme bilgileri ve sürücünün rotadan sapması durumunda rota alternatifleri yer alır. Navigation SDK, cihaz GPS'ini ve sensörlerini kullanarak konumu yaklaşık olarak belirler.
Çevrimdışı mod var mı?
Hayır, Navigation SDK şu anda çevrimdışı mod sunmamaktadır 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() işlevini çağırın.

iOS'te GMSNavigator.routeLegs(read) numaralı telefonu arayın.

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

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

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

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

  1. Navigator.getRouteSegments() kullanarak yolculuktaki etapları alın.
  2. Her yolculuk aşaması için GMSNavigator.timeToNextDestination numaralı telefonu arayın.
  3. Sürücünün tahmini varış zamanı için yaptığınız gibi, zaman bilgilerini istemci uygulamasına iletin.
Navigasyon ön planda değilse sürücünün mevcut sabit konumunu almak için RoadSnappedLocationProvider kullanılabilir mi?

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

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

Navigasyon SDK'sı coğrafi sınırlama özelliğini destekliyor mu?

Hayır. Gezinme bağlamında remainingTimeOrdistanceChangeListener bir coğrafi sınırdan daha avantajlıdır. Coğrafi sınırlı alan, yol geometrisini dikkate almayabilir ve sürücünün yol tarifi aldığı tam nokta üzerinde ortalanmayabilir.

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

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

Örneğin, eşiği 100 metre olarak ayarlarsanız hedefe olan mesafe 100 metre değiştiğinde geri arama alırsınız. Mesafe azaldıkça bu eşiği daha küçük bir değerle güncelleyebilir ve daha sık geri arama 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 simgesini kullanın. Bu yöntemin bir Boole bağımsız değişkeni vardır. FALSE bildirimleri devre dışı bırakır, TRUE ise bildirimleri etkinleştirir.

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

Diğer konum bildirimleri için arka plan işlemeyi devre dışı bırakmak üzere GMSNavigator.sendsBackgroundNotifications(NO) numaralı telefonu arayın.

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

En iyi rota seçeneğini renklendirebilir miyim?
Hayır. Belirli bir rota seçeneğini renklendirme şu anda desteklenmemektedir.
Navigasyon SDK'sı, nihai varış noktası için tahmini varış zamanını 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 alın.
  2. NavigationFragment.setEtaCardEnabled(false) kullanarak mevcut yol noktasının TVS'sini gizleyin.
  3. Son varış noktası için tahmini varış zamanını oluşturun.

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

  1. GMSNavigator.routeLegs(read) Hizmetleri İçin Arayın.
  2. Son ayağı arayın. GMSNavigator.timeToNextDestination.
  3. MSMapView.settings.navigationFooterEnabled=NO değerini YANLIŞ olarak ayarlayarak mevcut yol noktasının TVS'sini gizleyin.
  4. Son varış noktası için tahmini varış zamanını oluşturun.
Tahmini varış zamanı güncellemelerini nasıl gizleyebilirim?

Tahmini varış zamanı 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.
Başlık ve alt bilgi kartları için hangi kullanıcı arayüzü özelleştirmeleri kullanılabilir?

Android'de arka plan rengi stilini ayarlamak için StylingOptions kullanırsınız. Başlığı ve altbilgiyi gizlemek veya göstermek için NavigationFragment üyesinin setHeaderEnabled ve setFooterEnabled işlevlerini kullanın.

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

Yönlendirme

Sürücüye belirli bir rota sağlayabilir miyim veya alternatif rotaları kaldırabilir miyim?
Hayır. Varsayılan olarak birden fazla rota sağlanır ve en hızlı rota önceliklidir. İsteğinize "otoyol ve ücretli geçişlerden kaçın" gibi tercihler ekleyerek varsayılan rotayı etkileyebilirsiniz. Ara nokta eklemek de rotayı etkiler.
Uygulama kullanıcısına, hedef için varsayılan hedef konumdan farklı bir etiket gösterebilir miyim?

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

iOS'te hedef için GMSMarker oluşturup görüntülersiniz.

Tanımlanmış bir yoldan sapmaları izlemek için Navigation SDK'yı kullanabilir miyim?

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

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

iOS'te, bir 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. Uygulama GMSNavigatorListener.navigatorDidChangeRoute.
  3. routeLegs ve GMSNavigator'ın 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 numaralı telefonu arayın.

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'ı arayın. simulateLocationsAlongExistingRoute yöntemi, mevcut rotada yapılan 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. Rota değişikliği beklemiyorsanız GMSLocationSimulator.simulateLocationsAlongExistingRoute veya GMSLocationSimulator.simulateAlongNewRouteToDestinations kullanabilirsiniz.

İş akışları

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

Etkinlik kapatıldığında navigasyon bildirimi, navigasyon sırasında görünür kalır. Araç hedefe ulaştığında rota izleme durur ve bildirim kaybolur.

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

Mobilite Hizmetleri

Mobilite Hizmetleri müşterileri için Navigation SDK'sını kullanmanın farkı nedir?

Google Haritalar Platformu Mobilite Hizmetleri, ulaşım ve lojistik işletmelerinin kurumsal ihtiyaçlarını desteklemeye yardımcı olmak için bir dizi API ve SDK sunar. Mobilite Hizmetleri müşterileri için Navigation SDK genellikle rota optimizasyonu, görevlendirme, görev takibi, filo analizi gibi işlemler için ilgili hizmetlerle birlikte kullanılır. Navigasyon SDK'sı, Mobilite Hizmetleri müşterileri için de farklı şekilde faturalandırılır. Daha fazla bilgi için Mobility Services belgelerini inceleyin.

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 anlarım?
Navigation SDK'yı Mobility Services müşterisi olarak uyguladığınızdan emin değilseniz kodunuzda ReportBillableEvent çağrısı olup olmadığına bakın. ReportBillableEvent yöntemi yalnızca Mobility Services müşterileri tarafından çağrılmalıdır.

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

Hangi Navigation SDK API'leri yalnızca Mobilite Hizmetleri müşterileri tarafından kullanılmalıdır?

Navigation SDK'da, yalnızca Google tarafından işlem başına faturalandırılan Mobilite Hizmetleri müşterileri tarafından kullanılması amaçlanan çeşitli API'ler vardır. Mobility Services müşterisi değilseniz aşağıdaki yöntemler kullanılamaz:

Mobilite Hizmetleri müşterisiysem Navigation SDK'nın Mobilite Hizmetleri dışındaki bir uygulamasını da kullanabilir miyim?

Evet, Mobility Services müşterileri, Navigation SDK'nın hem Mobility Services hem de Mobility Services dışı uygulamalarını kullanabilir. Ancak bir uygulamada aynı anda yalnızca bir uygulama türü kullanabilirsiniz. Ayrıca, Mobilite Hizmetleri 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.

Bir uygulamayı bir uygulama türünden diğerine taşıma da dahil olmak üzere Navigation SDK'nın Mobility Services dışı bir uygulamasını kullanma hakkında daha fazla bilgi edinmek için Google Hesabı temsilcinizle iletişime geçin.

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