Sık Sorulan Sorular

Ürün Bilgileri

Sorunlar

Veriler

Kullanıcı Arayüzü Özelleştirme

Yönlendirme

Simülatör

Workflows

Ürün Bilgileri

Uygulamanız, her sürücünün kabul etmesi gereken Gezinme SDK'sı Hizmet Şartları bildiriminin yer aldığı bir iletişim kutusu uygulamalıdır. Bu iletişim kutusu, sürücüye Hizmet Şartları'nı kabul etme fırsatı verir. Gezinme SDK'sıyla birlikte şartların yer aldığı bir metin dosyası sağlanır.
Android'de, terimleri içeren iletişim kutusunu görüntülemek için NavigationApi.showTermsAndConditionsDialog yöntemini kullanın.
iOS'te GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName numaralı telefonu arayın.
Mobil Cihazlar için Google Haritalar'ın desteklediği tüm diller, Navigasyon SDK'sı için otomatik olarak kullanılabilir. Bir cihazın varsayılan bir sistem dili vardır ve uygulamalar bu ayarı değiştiremezler. Ancak uygulama 70'ten fazla dile erişebilir.

Evet. LocationListener, Android'de başlatıldığında arka planda çalışmaya devam eder. Uygulamanız, yolu tutturmaya devam ediyor ve tavrını koruyor.

iOS'ta, arka planda konum ve konum güncellemelerini almaya devam etmek için yol tutturma 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ı cihaza Google Haritalar Mobil'in yüklenmesini gerektirmez.
Hayır, Navigasyon SDK'sı şu anda bu işlevi sağlamamaktadır.
Evet. Trafik akış yönü kullanılabilir ve varsayılan olarak görüntülenir.

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 proje Derleme Ayarlarınızı açın ve yalnızca "iOS Simulator" derlemeleri için Excluded Architectures öğesine arm64 ekleyin.

Daha fazla bilgi için aşağıdaki StackOverflow ileti dizisine bakın.

GMSMapView yüklenmiyor.

GMSMapView yüklenmezse:

  • Cloud Console'da NavSDK'nın etkin olduğundan emin olun.
  • Nav SDK yüklüyse ancak projeniz Nav SDK API'lerini kullanmıyorsa onu ikili programınızdan kaldırın.

Navigasyon SDK'sı zayıf bağlantıyı nasıl ele alır?
Gezinme SDK'sı her yolculuğun rotasını önbelleğe alır. Önbelleğe alınan bilgiler, 15-20 dakikalık rota bilgilerini ve sürücünün rotadan sapması durumunda kullanılacak rota alternatiflerini içerir. Navigasyon SDK'sı, cihazın GPS ve sensörlerini kullanarak konumu yaklaşık olarak tahmin eder.
Çevrimdışı mod kullanılabiliyor mu?
Hayır, Navigasyon SDK'sı şu anda çevrimdışı bir mod sunmamaktadır ancak SDK, yolculuk için önceden önbelleğe alınmış bilgiler sağlar.

Veriler

Rotaya başlamadan önce bir yolculuktaki tüm durakları/hedefleri alabilir miyim?

Evet. Android'de bir rotanın yol tarifini almak için Navigator.getRouteSegments() numaralı telefonu arayın.

iOS'te GMSNavigator.routeLegs(read) adlı cihazı arayın.

Bir rotanın başlangıcında adım adım rota yardımı mevcut mu?
Evet. Navigasyon SDK'sı, rota segmentlerinin listesini sağlar. Ayrıca, sürücü her bir 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 bilgilerini vermek için aşağıdaki adımları kullanın:

  1. Navigator.getTimeAndDistanceList() kullanarak tüm ara noktalar için süreyi ve mesafeyi alın.
  2. Bu bilgiyi, şu anda sürücü TVS için yaptığınız şekilde istemci uygulamasına yönlendirin.

iOS'te, uygulama kullanıcılarına TVS bilgilerini vermek için şu adımları kullanın:

  1. Navigator.getRouteSegments() kullanarak yolculuktaki bacakları alın.
  2. Her yolculuk ayağı için GMSNavigator.timeToNextDestination numaralı telefonu arayın.
  3. Sürücü TVS için şu anda yaptığınız gibi zaman bilgilerini istemci uygulamasına yönlendirin.
Navigasyon ön planda değilse sürücünün geçerli konum bilgisini almak için RoadSnappedLocationProvider kullanılabilir mi?

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

iOS'ta, gezinmeyi arka planda çalıştırmaya devam etmek için GMSRoadSnappedLocationProviderListener işleyiciyi uygulayın ve allowsBackgroundLocationUpdates özelliğini TRUE olarak ayarlayın.

Navigasyon SDK'sı coğrafi sınır çizmeyi destekliyor mu?

Hayır. Gezinme bağlamında remainingTimeOrdistanceChangeListener, basit bir coğrafi sınıra göre avantaja sahip. Geofence, yolun geometrisini hesaba katmayabilir ve sürücünün tam olarak gittiği nokta üzerinde ortalanmamış olabilir.

remainingTimeOrdistanceChangeListener kullanarak bu işlevi yaklaşık olarak belirleyebilirsiniz.

  1. Geri arama 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 çağırma alırsınız. Mesafe azaldıkça bu eşiği daha düşük bir değere 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 işleyicisini 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öntemde bir boole bağımsız değişkeni var. FALSE bildirimleri devre dışı bırakır; TRUE, bildirimleri etkinleştirir.

iOS'ta, yol kilitlenmesi uygulanmış konumlar için arka plan bildirimini devre dışı bırakmak için GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates öğesini HAYIR olarak ayarlayın.

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

Kullanıcı Arayüzü Özelleştirme

En iyi rota seçeneğine renk kodları verebilir miyim?
Hayır. Belirli bir rota seçeneği için renk kodlaması şu anda desteklenmemektedir.
Navigasyon SDK'sı son hedef 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 için süreyi ve mesafeyi alın.
  2. NavigationFragment.setEtaCardEnabled(false) kullanarak geçerli ara noktanın TVS'sini gizleyin.
  3. Son hedef TVS'yi oluşturun.

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

  1. GMSNavigator.routeLegs(read) Hizmetleri İçin Arayın.
  2. Son ayağınızı kullanarak GMSNavigator.timeToNextDestination numarasını arayın.
  3. Geçerli ara noktanın TVS'sini (ETA'yı) kullanarak MSMapView.settings.navigationFooterEnabled=NO - FALSE (YANLIŞ) değerini kullanın.
  4. Son hedef TVS'yi 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 renk 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'ta arka plan renk 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.

Yönlendirme

Sürücüye belirli bir rota sağlayabilir 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 "otoyollardan ve ücretli geçişlerden kaçınma" gibi tercihler ekleyerek varsayılan rotayı etkileyebilirsiniz. Ara nokta eklemek rotayı da 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 bir başlık ve enlem/boylam içeren bir Marker oluşturun. Gezinme SDK'sı, NavigationMap üzerinde özel başlığı ve koordinatları gösterir.

iOS'te hedef için bir GMSMarker oluşturur ve gösterirsiniz.

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

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

  1. Navigator.setRouteChangedListener yöntemini kullanarak rota boyunca cihaz 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önderin.
    • Cihazın konumunu izleyin.
    • [İsteğe bağlı] Sürücü belirtilen rotadan uzakta olduğunda uygulamanızın gerektirdiği diğer işlevleri ekleyin.

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

  1. Haritanın görünüm denetleyicisinde GMSNavigatorListener protokolü ile GMSRoadSnappedLocationProviderListener protokolünü uygulayın.
  2. GMSNavigatorListener.navigatorDidChangeRoute uygulayın.
  3. GMSNavigator için 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 adlı cihazı 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 çağrısı yapın. simulateLocationsAlongExistingRoute yöntemi, mevcut rotadaki değişiklikleri yoksayar.

iOS'ta 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 özelliğini kullanabilirsiniz.

Workflows

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

Etkinlik kapatıldığında, navigasyon sırasında gezinme bildirimi görünür kalır. Araç hedefe vardığında navigasyon durur ve bildirim kaybolur.

Bildirime yapılan tıklamaları işlemek için Navigator.startGuidance(intent resumeIntent) öğesini kullanın. Uygulama kullanıcısı bildirimi tıkladığında resume intent tetiklenir. Genellikle Navigator.startguidance(getIntent()), uygulama kullanıcısı bildirimi tıkladığında Etkinliği geri çağıran ana Etkinlik'ten çağrılır.