Özel gezinme nedir?

Özel gezinme deneyimi, yalnızca arka plan işlemi olarak gezinmeyi tamamen devre dışı bırakan bir uygulamadan, navigasyonu çalıştıran cihazdan ayrı bir ekrana son derece özelleştirilmiş rehberlik sunan bir uygulamaya kadar her şey anlamına gelebilir.

Özel gezinme deneyimi nedir?

  • Navigasyonu başlatma: Bir navigasyon oturumu oluşturursunuz. Google gezinme deneyiminde olduğu gibi, özel gezinme deneyiminde de gezinme örneği oluşturmak ve hedef belirlemek gerekir. Ancak, özelleştirilmiş bir navigasyon deneyimiyle bunu öncelikle GMSNavigationServices ile bir navigasyon oturumu oluşturarak gerçekleştirebilirsiniz. Gezinme oturumu, görünüm denetleyicisiyle veya görüntüleme denetleyicisi olmadan çalışabilen, durum bilgisi içeren kullanıcı arayüzü olmayan bir nesnedir.

    Demoya bakın: Navigasyon SDK'sının indirilmesi, standart navigasyonla adım adım rehberlikten bir yol çoklu çizgisinde hareket eden cihaz konumunu gösteren bir navigasyon deneyimine geçiş yapan bir navigasyon deneyimi örneği görmek için çalıştırabileceğiniz bir demo içerir.

  • Etkin gezinme—siz sağlarsınız. Google tarafından sağlanan gezinme deneyimi ile özel navigasyon deneyimi arasındaki bir önemli fark da şudur: Kılavuzu Navigasyon SDK'sının yerleşik etkinlik yöneticisine aktarmak yerine adım adım feed'i etkinleştirir ve GMSNavigatorListener üzerinden etkinlik işleyicileri uygularsınız. Bu sayede deneyiminiz, Navigasyon etkinliklerini dinleme bölümünde açıklanan etkinliklere yanıt verebilir.

  • Gezinmeyi sonlandırın - sizin sağladığınız bilgi. Google gezinme deneyiminde olduğu gibi özel gezinme, ayrıca gezinmeyi uygulama deneyimine en uygun şekilde sonlandırmanızı gerektirir.

Aşağıdaki tabloda bazı özel gezinme senaryoları açıklanmaktadır.

Örnek senaryo

Önemli adımlar

2 tekerlekli araçlar gibi küçük cihazlar için yalnızca metin içeren sürücü rehberi sağlamanız gerekir.

Navigasyonunuzu oluşturun ve adım adım rehberliği küçük ekranlı bir cihaza veri feed'i olarak ayarlayın. Gezgin, bu sırada cihazın hemen görünümünün dışındayken sürücünün cep telefonunda çalışır. Adım adım veri feed'ini etkinleştirme bölümüne bakın.

Uygulamanızı kullanan sürücüler yolculuklarının büyük bir kısmında genel bakış haritası istiyor ve şehir sokakları için asgari düzeyde adım adım rehberlik istiyor.

Uygulamanız, sürücülerin ihtiyaç duyduklarında Google navigasyon deneyimine girip çıkmasına izin vermelidir. Bunun için navigasyonun varış ve yolculuk modu ayarlarını değiştirmeleri gerekmez.

Mobilite Hizmetleri müşterileri için: Sürücüler genellikle önceden belirlenmiş rotalarda seyahat eder ve hiçbir yardıma ihtiyaç duymaz. Ancak teslimatları veya yolculukları araç yönetim sisteminizin yönetebildiğinden emin olmanın bir yolunu bulmanız gerekir.

Bir gezgin ayarlayın. Hedefi ayarlayın ve konum güncellemelerini alın. Sürücü SDK'sını uygulamanıza entegre edin. Ayrıntılı bilgi için İsteğe Bağlı Yolculuklar ve Teslimatlar için Sürücü SDK'sını kullanmaya başlama veya Last Mile Fleet Solution'a bakın.

Özelleştirilmiş rehberlik oluşturun

Bu bölümde, özelleştirilmiş rehberlik oluşturmak için izlediğiniz üst düzey adımlar ele alınmaktadır.

Bu işlem, Rotada gezinme bölümünde açıklanan işlemden şu şekilde farklıdır:

  • Önce bağımsız olarak bir gezinme oturumu oluşturur ve görünüm denetleyicisini çağırmak yerine oturum aracılığıyla bir kılavuz örneği alırsınız.
  • Gezinme etkinliklerini yanıtlamak ve yönetmek için bir etkinlik işleyici ayarlarsınız.

  1. GMSNavigationService.createNavigationSession kullanarak bir gezinme oturumu oluşturun ve bir setDestination çağrısıyla navigasyona başlayın. Google gezinme deneyiminin navigasyon harita görünümü üzerinden gezgini çağırdığı durumlarda GMSNavigationServices, gezinme oturumundaki etkinlik akışını bir kullanıcı arayüzü örneğinden bağımsız olarak kontrol eder ve alır. Yani ya kullanıcı arayüzü olmadan çalışabilir ya da kullanıcı arayüzü tabanlı herhangi bir deneyime aktarılabilir. Bu yaklaşımda, son referans kaldırılana kadar gezinme oturumu uygulamanızda çalışmaya devam eder.
  2. Yola yakın konum sağlayıcı oluşturun. Rota üzerinde mavi nokta olan bir navigasyon görünümü görüntüleme gibi durumlarda uygulamanızın sürekli konum izlemesine sahip olmasını istiyorsanız konum sağlayıcıyı kullanın.
  3. GMSNavigatorListener protokolünü uygulayarak ayrıntılı adım adım rehberlik için bir işleyici oluşturun. Ardından bu bilgileri, özel gezinme deneyiminiz için gereken bilgilere dönüştürün. Örneğin:
    1. Yol tariflerinin ekranda basit bir şekilde yayınlanması için salt metin alanları uygulayın.
    2. Kendi kullanıcı arayüzünüz için alanlar tasarlayın ve doldurun.
  4. Navigasyon simülatörü ayarlama. Bu, geliştirme ve test için gereklidir.

Bağımsız bir gezinme oturumu oluşturma

Demodan alınan aşağıdaki kod snippet'leri, görüntüleme denetleyicisinden bağımsız olarak oluşturulan gezinmeyi göstermektedir. Ardından kod, yola eklenen mevcut konumu gösterecek şekilde yapılandırılmış bir genel bakış haritası ekler.

// Create the navigation session.

 _navigationSession = [GMSNavigationServices createNavigationSession];
 GMSRoadSnappedLocationProvider *roadSnappedLocationProvider =
     _navigationSession.roadSnappedLocationProvider;
 [roadSnappedLocationProvider startUpdatingLocation];
 GMSNavigator *navigator = _navigationSession.navigator;
 [navigator addListener:self];
 navigator.voiceGuidance = GMSNavigationVoiceGuidanceSilent;
 navigator.sendsBackgroundNotifications = NO;
 _navigationSession.started = YES;
​​ [navigator setDestinations:@[ destination ]
                   callback:^(GMSRouteStatus routeStatus) {
                      // …handle changes in route status.
                    }];

 // Add an overview map.
 _mapView = [[GMSMapView alloc] initWithFrame:CGRectZero];
 [self.mainStackView addArrangedSubview:_mapView];
 [self.mainStackView setNeedsLayout];
 _mapView.settings.compassButton = YES;
 _mapView.delegate = self;
 _mapView.myLocationEnabled = YES;
 _mapView.roadSnappedMyLocationSource = roadSnappedLocationProvider;

Navigasyonu özel deneyimden Google deneyimine geçirme

Bu kod snippet'i, uygulamanızın, kullanıcının özel bir gezinme deneyiminden Google gezinme deneyimine girmesine nasıl izin verebileceğini gösterir. Bu kod snippet'i, uygulamanızın haritayı paylaşırken bu geçişi nasıl yaptığını da gösterir.

`UIButton *button = [UIButton buttonWithType:UIButtonTypePlain`];

[`button addTarget:self action:@selector(didTapEnterGoogleNavigationButton:)
forControlState:[_directionsButton addTarget:self`];

`…`

[`_mapView enableNavigationWithSession:_navigationSession`];