Suggerimenti per creare la migliore esperienza utente durante la navigazione verso i luoghi con un'auto

Questo documento è un aggiornamento di un articolo precedente che utilizzava versioni precedenti delle API GMP. Questi contenuti sono aggiornati alla nuova versione dell'API Places lanciata nel 2023-24 e dell'API Routes lanciata nel 2023.

In genere, quando l'utente si reca in auto a un punto d'interesse (PDI), deve effettivamente richiedere la navigazione verso una località nelle vicinanze, ad esempio un parcheggio o un punto di accesso. Immagina un conducente che deve andare a un aeroporto o a un centro commerciale. Quando si reca in un aeroporto, il conducente sta cercando di raggiungere un terminal o un punto di consegna anziché il centro del complesso aeroportuale. Allo stesso modo, un parcheggio accanto al centro commerciale potrebbe essere un'opzione molto migliore per un utente con un'auto. In questo caso, quando sviluppi un'app o un servizio per guidare il conducente, trova prima la destinazione che deve raggiungere e poi offri al conducente destinazioni facoltative nelle vicinanze. Questo approccio ti consente di offrire un servizio migliore ai tuoi clienti e di dimostrare che apprezzi il loro tempo, con un impegno di sviluppo ridotto, ma intelligente, che sfrutta i dati sulla posizione forniti da Google Maps Platform.

Diagramma di sistema

Ti mostreremo come utilizzare la nuova API Places e l'API Routes in sequenza o in combinazione per identificare il luogo giusto per parcheggiare vicino alla tua destinazione. Questa soluzione mira a rimuovere l'incertezza e le molteplici interazioni per trovare un posto dove parcheggiare mentre guidi, una volta raggiunta la destinazione finale. Ecco due esempi di come queste situazioni potrebbero essere implementate in dettaglio.

Esempio 1: un'attrazione turistica senza parcheggio

Scegli una località non direttamente collegata alla strada, in modo che sia necessario recuperare un itinerario separatamente. La destinazione è Notre Dame a Parigi e come punto di partenza utilizzeremo la stazione ferroviaria Gare de l'Est (48.87697775149635, 2.3592247806755564).

Gare l'Est

Il conducente lascia la stazione a circa 16 minuti a nord di Notre Dame. Notre Dame è una famosa attrazione turistica su un'isola con accesso tramite ponte, alcune strade a senso unico e nessun grande parcheggio disponibile nelle vicinanze, quindi dovrebbe essere una sfida interessante.

  1. Richiesta dell'API Places

Questa richiesta di esempio all'API Places utilizza la ricerca di testo per trovare Notre Dame. Per ulteriori dettagli, consulta la documentazione per sviluppatori. "$APIKEY" in questi esempi è la chiave API che hai per le API Places e Routes di Google Maps Platform abilitate nella console Google Cloud. Per una spiegazione più dettagliata, consulta la documentazione relativa alla guida introduttiva a Google Maps Platform.

Le nuove richieste dell'API Places hanno un nuovo formato. I campi di risposta non sono più fissi e, in qualità di sviluppatore, devi definire una maschera di campo nell'intestazione. L'utilizzo di fieldmask è definito nella documentazione.

curl -X POST --data @notre_dame.json \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: places.id,places.displayName,places.formattedAddress,places.location' \
'https://places.googleapis.com/v1/places:searchText'

Con i contenuti "notre_date.json" per i parametri di ricerca:

{
   "textQuery": "Notre Dame, Paris",
   "languageCode": "en"
}

La risposta alla richiesta precedente fornisce le seguenti coordinate di latitudine e longitudine:

{
  "places": [
    {
      "id": "ChIJATr1n-Fx5kcRjQb6q6cdQDY",
      "formattedAddress": "6 Parvis Notre-Dame - Pl. Jean-Paul II, 75004 Paris, France",
      "location": {
        "latitude": 48.852968200000007,
        "longitude": 2.3499021
      },
      "displayName": {
        "text": "Cathédrale Notre-Dame de Paris",
        "languageCode": "en"
      }
    }
  ]
}

Come puoi vedere, le coordinate indicano effettivamente Notre Dame.

Foto dell'ingresso di Notre-Dame Mappa dell'area di Notre-Dame

In qualità di sviluppatore o fornitore di servizi, è buona norma chiedere automaticamente al conducente "Cerchi un parcheggio vicino a Notre Dame?" oppure, se il conducente ha un veicolo elettrico, potresti suggerirgli di cercare una stazione di ricarica. L'esperienza dell'utente sarà diversa a seconda del dispositivo e dello schermo, ma in questo caso potrebbe valere la pena prendere in considerazione un testo della finestra di dialogo discreto che scompare dopo poco tempo. Per trovare un parcheggio vicino a Notre Dame, esegui una ricerca nelle vicinanze dell'API Places con i tipi "parking" ed "electric_vehicle_charging_station" con un raggio di 500 metri. L'esempio seguente orienta i risultati verso le aree di parcheggio a 500 metri da Notre Dame.

curl -X POST -d '{
  "includedTypes": ["parking", "electric_vehicle_charging_station"],
  "maxResultCount": 10,
  "rankPreference": "DISTANCE",
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 48.852968200000007,
        "longitude": 2.3499021},
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H "X-Goog-FieldMask: places.displayName,places.location" \
https://places.googleapis.com/v1/places:searchNearby

Il primo risultato è una stazione di ricarica in 48.854981, 2.350629, anche se al momento dell'esecuzione di questo esempio i risultati potrebbero variare. Utilizza questa posizione nella sezione successiva, dove effettueremo una richiesta all'API Routes.

  1. **Richiesta API Routes **

Per trovare il percorso dalla stazione a una stazione di ricarica vicino a Notre Dame, devi effettuare una richiesta all'API Routes. Basta impostare i parametri di origine e destinazione. Per scoprire di più, consulta la documentazione per gli sviluppatori.

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 48.87697775149635,
        "longitude": 2.3592247806755564
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
       "latitude": 48.854981,
        "longitude": 2.350629
      }
    }
  },
  "travelMode": "DRIVE",
  "routingPreference": "TRAFFIC_AWARE",
  "departureTime": "2024-05-16T15:01:23.045123456Z",
  "computeAlternativeRoutes": false,
  "routeModifiers": {
    "avoidTolls": false,
    "avoidHighways": false,
    "avoidFerries": false
  },
  "languageCode": "en-US",
  "units": "METRIC"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,routes.polyline.encodedPolyline' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

La risposta dell'API Routes in genere contiene più suggerimenti per i percorsi. Per includere i dati del percorso nella risposta, definisci "routes.legs" in fieldmask. Ogni percorso è composto da più "tratte", che contengono più "passaggi" che mostrano la distanza e le coordinate del viaggio. Per trovare le coordinate finali raggiungibili con un'auto, utilizza il campo "endLocation" dell'ultimo passaggio dell'ultima tappa di un percorso selezionato. "latitude": 48.854937299999996, "longitude": 2.3505841999999997

Questa posizione potrebbe non sembrare la prima scelta, ma se guardi la mappa o Google Street View, scoprirai che si trova a breve distanza a piedi da Notre Dame, circa 6-7 minuti.

Indicazioni stradali per Notre Dame

Percorso a piedi dal parcheggio della stazione di ricarica a Notre-Dame

Riepilogo dell'esempio 1

Come puoi vedere, trovare un'area di parcheggio per un'auto richiede solo alcune chiamate API e la visualizzazione del suggerimento al conducente. In questo modo, gli utenti risparmiano tempo perché non devono guidare su strade a senso unico o cercare un parcheggio in un'attrazione turistica affollata. In sintesi, abbiamo effettuato le seguenti richieste API:

  • Una richiesta di ricerca di testo dell'API Places per trovare le coordinate di Notre Dame
  • Una ricerca nelle vicinanze dell'API Places per trovare un parcheggio con una stazione di ricarica per auto elettriche entro 500 metri da queste coordinate
  • Una richiesta all'API Routes per trovare un percorso per la stazione di ricarica

Esempio 2: indicazioni per raggiungere un terminal in un grande aeroporto

Mappa dell'aeroporto di Heathrow

Prendiamo in considerazione un altro esempio in cui il conducente sta cercando di raggiungere un'area ampia che include più località, PDI o potenziali punti di consegna. Il conducente parte dall'Stadio di Wembley, Regno Unito (51.557263604707224, -0.2794575145680608) e sta cercando di raggiungere il terminal 5 dell'aeroporto di Londra Heathrow.

La grande novità del nuovo completamento automatico dell'API Places è la possibilità di definire un tipo principale come criterio di ricerca in combinazione con l'API che prevede i locali secondari come potenziali risultati di ricerca. In questo caso, la ricerca di un aeroporto restituirà anche i terminal. Puoi trovare l'elenco completo dei tipi da includere o escludere nella documentazione.

curl -X POST -d '{
  "input": "Heathrow",
  "includedPrimaryTypes": ["airport"]
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
https://places.googleapis.com/v1/places:autocomplete

La query riportata sopra fornisce un elenco dei terminali e dei singoli punti di consegna in questi terminali. Nell'elenco dei risultati possiamo trovare "Terminal 5 dell'aeroporto di Londra Heathrow" e il relativo ID luogo:

"place_id" : "ChIJo21hnPxxdkgRksRL0KQRWII",

Utilizzando il parametro "placeId", possiamo indicare all'API Routes che stiamo cercando di raggiungere un luogo anziché alcune coordinate arbitrarie.

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 51.557263604707224,
        "longitude": -0.2794575145680608
      }
    }
  },
  "destination":{
    "placeId": "ChIJo21hnPxxdkgRksRL0KQRWII"
  },
  "travelMode": "DRIVE",
  "routingPreference": "TRAFFIC_AWARE",
  "departureTime": "2024-05-16T15:01:23.045123456Z",
  "computeAlternativeRoutes": false,
  "languageCode": "en-US",
  "units": "METRIC"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,routes.polyline.encodedPolyline' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

Anche in questo caso, come nell'esempio precedente, leggendo tutti i passaggi della risposta JSON troverai l'ultima parte del tragitto e le coordinate lat e long delle località di destinazione (51.4714348, "longitude": -0.48967890000000003).

Terminal 5 di Street View

Riepilogo dell'esempio 2

Come nell'esempio precedente, l'impegno di sviluppo per fornire indicazioni migliori al conducente è molto ridotto e i vantaggi in termini di tempo risparmiato dal conducente possono essere misurati. Abbiamo effettuato le seguenti richieste:

  • Una richiesta di completamento automatico (nuova) dell'API Places per trovare il terminal 5 dell'aeroporto di Heathrow
  • Una richiesta all'API Routes per ottenere un percorso da Wembley al terminal 5

Questo esempio è solo un assaggio delle nuove funzionalità dell'API Places. Dai un'occhiata ad alcuni dei nuovi tipi di luoghi, come pista di atterraggio e aeroporto internazionale.

Conclusione

Come puoi vedere, l'impegno di sviluppo necessario per fornire un servizio premium ai tuoi clienti che viaggiano in auto è piuttosto ridotto e puoi dimostrare quanto tieni alle loro esigenze.

Per scopi di sviluppo, puoi utilizzare molte delle librerie e degli strumenti disponibili per aiutarti a creare i servizi per i tuoi clienti. Dai un'occhiata al nostro repository GitHub per la piattaforma Google Maps, disponibile pubblicamente.

Azioni successive

Inizia a utilizzare GMP : https://developers.google.com/maps/get-started

Letture consigliate

Documentazione (nuova) di Places Autocomplete dell'API Places: https://developers.google.com/maps/documentation/places/web-service/place-autocomplete

Documentazione dell'API Routes: https://developers.google.com/maps/documentation/routes

Collaboratori

Autore principale: Mikko Toivanen | Google Maps Platform Solutions Engineer