Pakiet SDK do nawigacji na iOS oferuje ulepszone sposoby określania punktów pośrednich, zapewniając dokładniejsze wyznaczanie tras i lepsze wrażenia z dojazdu, zwłaszcza w przypadku miejsc docelowych z wieloma wejściami lub konkretnymi punktami dostępu. Możesz kierować użytkowników do dokładnych lokalizacji za pomocą parametru navigationPointToken lub łącząc współrzędne lokalizacji z identyfikatorem miejsca, aby uzyskać dodatkowy kontekst.
Funkcja wyróżniania miejsca docelowego będzie nadal działać w stosownych przypadkach.
Tło
Przed wersją 10.10 można było zdefiniować Waypoint za pomocą współrzędnych lokalizacji lub identyfikatora miejsca. Chociaż czasami jest to skuteczne, kierowanie wyłącznie na szerokość i długość geograficzną może prowadzić do nieoptymalnych punktów odbioru lub wysiadania, zwłaszcza w przypadku dużych obiektów, parków lub budynków z wieloma wejściami. Wynik może zostać przyciągnięty do najbliższego odcinka drogi, który nie musi być najwygodniejszym ani najdokładniejszym punktem dostępu.
Ulepszone opcje punktów pośrednich rozwiązują ten problem, ponieważ umożliwiają podanie większej ilości kontekstu.
Używanie tokena punktu nawigacyjnego
Aby uzyskać jak najdokładniejsze wskazówki dojazdu do konkretnych punktów dostępu, takich jak wejścia, rampy załadunkowe lub wyznaczone miejsca odbioru, możesz użyć navigationPointToken.
Ten token uzyskuje się przez wywołanie metody Destinations interfejsu Geocoding API. Reprezentuje konkretny punkt nawigacyjny związany z miejscem, do którego można wyznaczyć trasę.
Aby określić token punktu nawigacyjnego:
Uzyskaj
navigationPointTokenz odpowiedzi metody Destinations interfejsu Geocoding API.Podczas tworzenia
GMSNavigationWaypointokreślnavigationPointToken.
Uwaga: nie możesz jednocześnie określić tokena punktu nawigacyjnego wraz z lokalizacją i identyfikatorem miejsca.
Swift
// Create a waypoint using a navigation endpoint token
let waypointTwo = GMSNavigationWaypoint(
navigationPointToken: "ChIJALijSXPhQkARHmIozCCbXsASEgkFVjYHGH6PgBFrbM7wl3.."
title: "Sydney Opera House")
// Route to the waypoint
navigator.setDestinations([waypointTwo]) { [weak self] routeStatus in
self?.handleRouteCallback(status: routeStatus)
}
Objective-C
GMSNavigationWaypoint *waypointTwo = [[GMSNavigationWaypoint alloc] initWithNavigationPointToek:@"sampleNavigationPointToken"
Łączenie identyfikatora miejsca i lokalizacji
Od wersji 10.10 podczas tworzenia punktu pośredniego możesz podać zarówno identyfikator miejsca, jak i współrzędne lokalizacji. Ta metoda jest przydatna, gdy chcesz określić dokładny punkt (lokalizację), a jednocześnie podać kontekst całego miejsca (identyfikator miejsca). Dzięki temu pakiet Navigation SDK może zapewnić lepsze wrażenia po dotarciu do celu, wyróżniając budynek docelowy lub pokazując pobliskie punkty orientacyjne powiązane z identyfikatorem miejsca.
Swift
// Create a waypoint using both the latlng and placeID
let waypoint = GMSNavigationWaypoint(
location: CLLocationCoordinate2DMake(-33.85657945261524, 151.21535034203333),
placeID: "ChIJ3S-JXmauEmsRUcIaWtf4MzE",
title: "Sydney Opera House")
// Route to the waypoint
navigator.setDestinations([waypoint]) { [weak self] routeStatus in
self?.handleRouteCallback(status: routeStatus)
}
Objective-C
CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint = [[GMSNavigationWaypoint alloc] initWithLocation:placeID:coordinate title:@"waypoint from location and placeiD"];
Uwagi:
Jeśli podasz zarówno placeID, jak i location:
- Trasa jest przeznaczona głównie dla określonego
location. placeIdsłuży jako kontekst, który zwiększa komfort przyjazdu.- Wycofanie: jeśli pakiet SDK stwierdzi, że podany
placeIdodpowiada funkcji, która jest zbyt oddalona od podanegolocation,placeIdzostanie zignorowany. W takim przypadku routing będzie odbywać się tylko dolocation, a ulepszenia dotyczące miejsca docelowego nie będą dostępne.
Podsumowanie prawidłowych konfiguracji punktów pośrednich
| Specyfikacja | location |
placeID |
navigationPointToken |
Działanie routingu | Wyróżnianie miejsca docelowego |
|---|---|---|---|---|---|
| Tylko współrzędne lokalizacji | zestaw | brak | brak | Trasy do segmentu drogi najbliższego określonych współrzędnych | Wyświetlane, jeśli miejsce docelowe można określić z dużą pewnością. |
| Tylko identyfikator miejsca | brak | zestaw | brak | Trasy do domyślnego punktu nawigacyjnego dla identyfikatora miejsca | Z identyfikatora miejsca |
| Tylko token punktu nawigacyjnego | brak | brak | zestaw | trasy do dokładnego punktu nawigacyjnego reprezentowanego przez token; | Z miejsca docelowego określonego w pierwotnym żądaniu metody destinations interfejsu Geocoding API |
| Połączenie współrzędnych lokalizacji i identyfikatora miejsca | se | zestaw | brak | Trasy do segmentu drogi najbliższego określonych współrzędnych | na podstawie identyfikatora miejsca, ale nie jest wyświetlana, jeśli identyfikator miejsca jest zbyt oddalony od współrzędnych geograficznych. |