Platform seçin: Android iOS

Gerçek zamanlı kesintileri yapılandırma

Gerçek zamanlı aksaklıklar, kullanıcıları rotalarındaki aksaklıklar hakkında uyaran ve karşılaştıkları aksaklıkları bildirmelerine ve doğrulamalarına olanak tanıyan bir dizi özelliktir. Araç kazaları, trafik sıkışıklığı, polis ve hız kamerası varlığı, inşaat, şerit kapatma ve belirli hava koşulları, aksamalara örnek olarak verilebilir. Bu sayfada, anlık aksaklık özellikleri ve bunların yapılandırma seçenekleri (özel navigasyon kullanıcı arayüzleri kullanan uygulamalarla ilgili dikkat edilmesi gereken noktalar dahil) açıklanmaktadır.

Gerçek zamanlı aksaklık özellikleri

Navigasyon SDK'sı, temel navigasyon deneyiminin bir parçası olarak aşağıdaki anlık aksama özelliklerini içerir:

Bu özellikler yapılandırılabilir ve varsayılan olarak etkindir. Aşağıdaki bölümlerde, özellikler ve kullanılabilir yapılandırma seçenekleri hakkında daha fazla bilgi verilmektedir.

Rotalar boyunca etkileşimli aksama açıklama metinleri

Bir uygulama, rotaya genel bakışta veya etkin navigasyon sırasında rota gösterdiğinde mevcut aksaklıklar rota boyunca açıklama metni olarak görünür. Trafik katmanını etkinleştirdiğinizde rota dışı aksaklıklar da haritada gösterilir. Açıklama metinlerinde, aksaklığın türünü gösteren bir simge bulunur.

Rota üzerindeki açıklama metinleri

setTrafficPromptsEnabled kullanarak rotalar boyunca aksama açıklama metinlerinin gösterilmesini kontrol edebilirsiniz. Bu, kullanıcı bir aksamaya yaklaştığında otomatik uyarıların gösterilmesini da kontrol eder.

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

Kullanıcı bir açıklama metnine dokunduğunda kesinti ayrıntılarını gösterme

Kesinti açıklama metnine dokunduğunuzda daha fazla ayrıntı içeren bir bilgi kartı açılır. Bu durum hem rota üzerindeki hem de rota dışındaki açıklama metinleri için geçerlidir. Ancak rota dışındaki açıklama metinleri yalnızca trafik katmanı etkinleştirildiğinde görünür. Kartta aksaklığın türü, en son bildirildiği zaman ve bazen aksaklığın devam edip etmediğiyle ilgili oy verme seçeneği gösterilir. Bilgi kartı türü ve yapılandırma seçenekleri, kullanıcının aktif navigasyonda olup olmadığına bağlı olarak değişir.

Etkin navigasyonu başlatmadan önce rotaya genel bakışlarda açıklama bilgi kartları

Kullanıcılar, aktif navigasyonu başlatmadan önce haritada veya rotaya genel bakışta rota üzerindeki ya da rota dışındaki bir açıklama metnine dokunarak bilgi kartı açabilir. Rota dışı açıklama metinleri için trafik katmanının etkinleştirilmesi gerekir. Bilgi kartında kesintiyle ilgili daha fazla bilgi verilir.

Genel bakış bilgi kartı

Kullanıcıların rotaya genel bakışlarda aksama açıklama metinlerine dokunarak daha fazla bilgi görüntüleme özelliğini setTrafficIncidentCardsEnabled kullanarak kontrol edebilirsiniz.

// Using the SupportNavigationFragment
mNavFragment.setTrafficIncidentCardsEnabled(true);

// Using the NavigationView
navigationView.setTrafficIncidentCardsEnabled(true);

Etkin navigasyon sırasında açıklama bilgi kartları

Aktif navigasyon sırasında kullanıcılar, rota üzerindeki veya rota dışındaki bir aksaklık açıklama metnine dokunarak bilgi kartı açabilir. Kartta aksaklık türü ve en son bildirilen zaman gösterilir. Ayrıca kullanıcıların aksaklığın devam edip etmediği konusunda oy kullanabileceği düğmeler bulunur.

Kullanıcılar, kapalı yollar hariç olmak üzere rota üzerindeki ve rota dışındaki 5 km mesafede bulunan aksaklıklar için oy kullanabilir. Google, kesintiyi göstermeye devam edip etmeyeceğini belirlemek için bu oyları işler. Oylar, diğer Google Haritalar ve Navigasyon SDK'sı kullanıcıları için haritada da gösterilebilir.

Etkin navigasyon bilgi kartı

setTrafficPromptsEnabled kullanarak aktif navigasyon sırasında aksama açıklama metinlerinin görüntülenmesini ve dokunulabilirliğini kontrol edebilirsiniz. Bu yöntem, rotalar boyunca açıklama metinlerinin görüntülenmesini ve kullanıcı bir aksamaya yaklaştığında otomatik uyarıların görüntülenmesini de kontrol eder.

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

Etkin navigasyon sırasında oylama ile otomatik aksaklık uyarıları

Etkin navigasyon sırasında, kullanıcı rota üzerindeki bir aksamaya yaklaştığında aksamayla ilgili bilgilerin ve aksamanın hâlâ devam edip etmediği konusunda oy kullanma düğmelerinin yer aldığı bir istem gösterilir. Kullanıcılar tarafından gönderilen oylar Google tarafından işlenir ve diğer Google Haritalar ve Navigasyon SDK'sı kullanıcıları için haritada gösterilebilir. Ayrıca, aksaklığın gösterilmeye devam edip etmeyeceğini belirlemek için de kullanılabilir.

Etkin navigasyon bilgi kartı

Etkin navigasyon sırasında uyarı istemlerinin gösterilmesini setTrafficPromptsEnabled kullanarak yapılandırabilirsiniz. Bu, rotalar boyunca açıklama metinlerinin gösterilmesini de kontrol eder.

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

Etkin navigasyon sırasında aksaklık bildirme

Etkin gezinme modunda, gezinme kullanıcı arayüzünde kullanıcıların rotaları boyunca yeni aksaklıkları bildirmelerine olanak tanıyan bir düğme görünür. Kullanıcı düğmeye dokunduğunda, bildirilebilecek aksama türlerini içeren bir menü gösterilir. Kullanıcıların gönderdiği raporlar Google tarafından işlenir ve diğer Google Haritalar ve Navigasyon SDK'sı kullanıcıları için haritada gösterilebilir.

Kapalı yol bildirimi, engellenen segmenti atlamak için alternatif bir rota sunabilir ve kullanıcıdan yeni rotayı onaylamasını veya reddetmesini isteyebilir. Bu özellik, kullanılabilirlik durumuna tabidir.

Raporlama düğmesi Raporlama menüsü

Standart raporlama düğmesini gösterme veya gizleme

Etkin navigasyon sırasında standart raporlama düğmesinin görünürlüğünü setReportIncidentButtonEnabled kullanarak yapılandırabilirsiniz.

// Enables the incident reporting button to show in situations where incident
// reporting is possible.

// Using the SupportNavigationFragment
mNavFragment.setReportIncidentButtonEnabled(true);

// Using the NavigationView
navigationView.setReportIncidentButtonEnabled(true);

Özel raporlama düğmesi ekleme

Standart aksaklık bildirme düğmesi yerine, navigasyon kullanıcı arayüzüne özel bir bildirme düğmesi ekleyebilirsiniz. Kullanıcı özel düğmeyi tıkladığında showReportIncidentsPanel yöntemini çağırarak raporlama menüsünün gösterilmesini tetikleyebilirsiniz. Özel bildirim düğmesi eklemeden önce, isIncidentReportingAvailable yöntemini çağırarak uygulamanın etkin navigasyonda olduğunu ve kullanıcının bildirim özelliğinin etkin olduğu bir ülkede bulunduğunu doğrulayın. Bu koşullardan herhangi biri karşılanmıyorsa raporlama menüsü görünmez.

  Button customReportIncidentButton = findViewById(R.id.custom_reporting_button);
  
  // Check if reporting is available before displaying your button
  customReportIncidentButton.setVisibility(
      navigationView.isReportingAvailable ? View.VISIBLE : View.GONE);
  
  // Trigger the reporting flow if the button is clicked
  customReportIncidentButton.setOnClickListener(v ->
      navigationView.showReportIncidentsPanel());
  

Özel navigasyon kullanıcı arayüzleriyle çalışma

Navigasyon SDK'sı uygulamanız özel kullanıcı arayüzü öğeleri içeriyorsa çakışmaları önlemek için gerçek zamanlı kesinti öğelerini göz önünde bulundurmanız gerekir.

Bildirme düğmesinin konumu

Varsayılan olarak, aksaklık bildirme düğmesi haritanın alt ucunda/arka köşesinde yer alır. Soldan sağa diller için sağ tarafta, sağdan sola diller için sol taraftadır. Özel kullanıcı arayüzü öğelerine yer açmak için bildirme düğmesini taşımanız gerekiyorsa BOTTOM_END_BELOW veya FOOTER özel kontrolü ekleyin. Bu, düğmenin ekrandaki konumunu yukarı taşır. Kendi özel kullanıcı arayüzlerinizi özel kontrollere yerleştirmek, Navigasyon SDK'sı tarafından gösterilen tüm istemlerin, gösterilirken özel kullanıcı arayüzü öğelerinizin üzerine düzgün bir şekilde katmanlanmasını da sağlar. Özel denetimleri kullanamıyorsanız olası kullanıcı arayüzü çakışmalarını yönetmek için Prompt Visibility API'yi kullanın.

Prompt Visibility API (Deneysel)

Prompt Visibility API, Navigation SDK tarafından oluşturulan kullanıcı arayüzü öğeleri ile kendi özel kullanıcı arayüzü öğeleriniz arasındaki çakışmaları önlemenize yardımcı olur. Bunun için, Navigation SDK kullanıcı arayüzü öğesi görünmeden hemen önce ve öğe kaldırılır kaldırılmaz geri çağırma almak üzere bir dinleyici ekler. Bilgi kartları, istemler ve aksama raporlama menüsü gibi gerçek zamanlı aksama öğelerinin yanı sıra Navigasyon SDK'sı tarafından oluşturulan diğer bildirimler için geri çağırmalar alabilirsiniz.
// Sample listener
val listener: PromptVisibilityChangedListener = { isVisible ->
	if (isVisible) {
		customFab.visibility = false
		customFooter.visibility = false
		moveSomeOtherThingsAround()
	} else {
		customFab.visibility = true
		customFooter.visibility = true
		moveSomeThingsBackToWhereTheyWereBefore()
	}
}

// Inside onCreate()
navigationView.addPromptVisibilityChangedListener(listener)

// Inside onDestroy()
navigationView.removePromptVisibilityChangedListener(listener)