Un
Destination
si riferisce a un punto di interesse significativo o a una posizione specifica che un utente
intende raggiungere o verso cui intende navigare. Un Destination può includere informazioni
come punti di navigazione, punti di riferimento, ingressi e contorni degli edifici.
L'endpoint
SearchDestinations
dell'API Geocoding ti consente di recuperare informazioni dettagliate su
varie destinazioni in base a diversi criteri di input, come un indirizzo,
un ID luogo o coordinate di latitudine e longitudine.
Richiesta di ricerca di destinazioni
Una richiesta di ricerca delle destinazioni è una richiesta POST HTTP a un URL nel formato:
https://geocode.googleapis.com/v4alpha/geocode/destinations
Trasmetti tutti i parametri nel corpo della richiesta JSON o nelle intestazioni nell'ambito della richiesta POST. Ad esempio:
curl -X POST -d '{
"place": "places/ChIJY8sv5-i2j4AR_S6BlDDR42w"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: *" \
https://geocode.googleapis.com/v4alpha/geocode/destinations
Puoi specificare la località in cui cercare una destinazione in uno dei tre modi seguenti:
- Indirizzo
- ID luogo
- Coordinate di latitudine e longitudine
Cercare una destinazione per indirizzo
Puoi specificare l'indirizzo come stringa non strutturata:
curl -X POST -d '{
"addressQuery": {
"addressQuery": "601 S Bernardo Ave, Sunnyvale, CA 94087, USA"
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: *" \
https://geocode.googleapis.com/v4alpha/geocode/destinations
o come
postalAddress:
curl -X POST -d '{
"addressQuery": {
"address": {
"addressLines": ["601 S Bernardo Ave"],
"locality": "Sunnyvale",
"postalCode": "94087",
"administrativeArea": "CA",
"regionCode": "US"
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: *" \
https://geocode.googleapis.com/v4alpha/geocode/destinations
In genere utilizzi il formato postalAddress quando elabori i componenti dell'indirizzo
acquisiti in un modulo HTML.
Cercare una destinazione per ID luogo
Puoi recuperare una destinazione fornendo un ID luogo:
curl -X POST -d '{
"place": "places/ChIJY8sv5-i2j4AR_S6BlDDR42w"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: *" \
https://geocode.googleapis.com/v4alpha/geocode/destinations
Cercare una destinazione per località
Puoi cercare una destinazione fornendo le coordinate di latitudine e longitudine:
curl -X POST -d '{
"locationQuery": {
"location": {
"latitude": 37.37348780,
"longitude": -122.05678064
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: *" \
https://geocode.googleapis.com/v4alpha/geocode/destinations
Utilizza OAuth per effettuare una richiesta
L'API Geocoding v4 supporta OAuth 2.0 per l'autenticazione. Per utilizzare OAuth con l'API Geocoding, al token OAuth deve essere assegnato l'ambito corretto. L'API Geocoding supporta i seguenti ambiti da utilizzare con l'endpoint Destinations:
https://www.googleapis.com/auth/maps-platform.geocode— Utilizza con tutti gli endpoint dell'API Geocoding.
Inoltre, puoi utilizzare l'ambito https://www.googleapis.com/auth/cloud-platform
generale per tutti gli endpoint dell'API Geocoding. Questo ambito è utile durante
lo sviluppo, ma non per la produzione, perché è un ambito generale che consente
l'accesso a tutti gli endpoint.
Per ulteriori informazioni ed esempi, consulta la sezione Utilizza OAuth.
Risposta alla ricerca di destinazioni
Contesto iperlocale sulla posizione
La risposta Destinazioni di ricerca fornisce un contesto ricco e iperlocale sulla posizione. I campi chiave includono:
primary: il luogo principale identificato dalla query nella richiesta.containingPlaces: entità più grandi di cui fa parte la destinazione principale (ad esempio, un centro commerciale che contiene un negozio).subDestinations: località più specifiche all'interno della destinazione principale (ad esempio appartamenti in un edificio).entrances: punti di ingresso e di uscita specifici per la destinazione.navigationPoints: Posizioni adatte vicino a una strada per la navigazione fino alla fine.arrivalSummary: approfondimenti basati sull'AI per assistere con l'arrivo. Consulta la sezione Riassunti basati sull'AI.landmarks: luoghi nelle vicinanze degni di nota per aiutare gli utenti a comprendere i dintorni della destinazione.
Per tutti i dettagli su tutti i campi di risposta, consulta il Riferimento API.
Formato della risposta
SearchDestinations restituisce un
SearchDestinationsResponse
del seguente formato JSON:
{ "destinations": [ { "primary": { "place": "places/ChIJY8sv5-i2j4AR_S6BlDDR42w", "displayName": { "text": "Arby's", "languageCode": "en" }, "primaryType": "fast_food_restaurant", "types": [ "fast_food_restaurant", "sandwich_shop", "deli", "american_restaurant", "meal_takeaway", "restaurant", "food_store", "food", "point_of_interest", "store", "establishment" ], "formattedAddress": "Arby's, 601 S Bernardo Ave, Sunnyvale, CA 94087, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94087", "administrativeArea": "CA", "locality": "Sunnyvale", "addressLines": [ "601 S Bernardo Ave" ] }, "structureType": "BUILDING", "location": { "latitude": 37.3734545, "longitude": -122.05693269999998 }, "displayPolygon":}, "containingPlaces": [ { "place": "places/ChIJYfdAFum2j4ARIcL2tjME3Sw", "displayName": { "text": "Cherry Chase Shopping Center", "languageCode": "en" }, "primaryType": "shopping_mall", "types": [ "shopping_mall", "point_of_interest", "establishment" ], "formattedAddress": "Cherry Chase Shopping Center, 663 S Bernardo Ave, Sunnyvale, CA 94087, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94087-1020", "administrativeArea": "CA", "locality": "Sunnyvale", "addressLines": [ "663 S Bernardo Ave" ] }, "structureType": "GROUNDS", "location": { "latitude": 37.3731231, "longitude": -122.0578211 }, "displayPolygon":{ ... }
{ "type": "Polygon", "coordinates": [ [ [ -122.056930138027, 37.3735253692531 ], [ -122.056960139391, 37.3735372663597 ], [ -122.056994129366, 37.3734828786847 ], [ -122.056969677395, 37.3734731161089 ], [ -122.057061762447, 37.3733261309656 ], [ -122.056979388817, 37.3732935577128 ], [ -122.056798860285, 37.3735818838642 ], [ -122.056875858081, 37.3736121235316 ], [ -122.056930138027, 37.3735253692531 ] ] ] }} ], "landmarks":{ ... }
{ "type": "Polygon", "coordinates": [ [ [ -122.057112227103, 37.3714618008523 ], [ -122.057076849821, 37.3715743611411 ], [ -122.056963607756, 37.3719081793948 ], [ -122.056865279559, 37.3722026053835 ], [ -122.056687872374, 37.3727258358476 ], [ -122.056580005889, 37.3730511370747 ], [ -122.056498845827, 37.3732994782583 ], [ -122.056338259713, 37.3737878663325 ], [ -122.056618678291, 37.373887693582 ], [ -122.056912102521, 37.3740010327191 ], [ -122.057532418159, 37.3742476426462 ], [ -122.057673926626, 37.3742441740031 ], [ -122.057735663106, 37.3742328516943 ], [ -122.057766531332, 37.3742220604378 ], [ -122.057797572967, 37.37420520725 ], [ -122.057828267759, 37.3741852342085 ], [ -122.058060299297, 37.3740060842535 ], [ -122.058199726081, 37.3737861673422 ], [ -122.05836707267, 37.373524542556 ], [ -122.058569622393, 37.3732018598683 ], [ -122.0587638478, 37.3728890198039 ], [ -122.058934661823, 37.3726036257774 ], [ -122.059164956851, 37.3722498383629 ], [ -122.058997784906, 37.3721804442035 ], [ -122.057936479838, 37.3717605636234 ], [ -122.057495827092, 37.3715860151634 ], [ -122.057112227103, 37.3714618008523 ] ] ] }, "entrances": [ { "location": { "latitude": 37.373531299999996, "longitude": -122.05694519999999 }, "tags": [ "PREFERRED" ], "place": "places/ChIJY8sv5-i2j4AR_S6BlDDR42w" } ], "navigationPoints": [ { "location": { "latitude": 37.3738659, "longitude": -122.05693620000001 }, "travelModes": [ "DRIVE", "WALK" ], "usages": [ "UNKNOWN" ] } ] } ] }[ ... ]
[ { "place": { "place": "places/ChIJteQ0Fum2j4ARGi3tqK4Zm14", "displayName": { "text": "Safeway", "languageCode": "en" }, "primaryType": "grocery_store", "types": [ "grocery_store", "florist", "butcher_shop", "deli", "bakery", "food_delivery", "supermarket", "market", "food_store", "food", "point_of_interest", "store", "establishment" ], "formattedAddress": "Safeway, 639 S Bernardo Ave, Sunnyvale, CA 94087, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94087", "administrativeArea": "CA", "locality": "Sunnyvale", "addressLines": [ "639 S Bernardo Ave" ] }, "structureType": "POINT", "location": { "latitude": 37.3727912, "longitude": -122.0581172 } }, "tags": [ "ARRIVAL", "ADDRESS" ], "relationalDescription": { "text": "Around the corner from Safeway", "languageCode": "en" }, "straightLineDistanceMeters": 158.65607, "travelDistanceMeters": 131.16699 }, { "place": { "place": "places/ChIJ8enMlui2j4AR2xXK5EHDhBs", "displayName": { "text": "Starbird Chicken", "languageCode": "en" }, "types": [ "fast_food_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "Starbird Chicken, 1241 W El Camino Real, Sunnyvale, CA 94087, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94087-1028", "administrativeArea": "CA", "locality": "Sunnyvale", "addressLines": [ "1241 W El Camino Real" ] }, "structureType": "BUILDING", "location": { "latitude": 37.3746764, "longitude": -122.05708860000001 }, "displayPolygon":}, "tags": [ "ARRIVAL", "ADDRESS" ], "relationalDescription": { "text": "Near Starbird Chicken", "languageCode": "en" }, "straightLineDistanceMeters": 87.34801, "travelDistanceMeters": 214.08084 }, { "place": { "place": "places/ChIJXXTe7Oi2j4ARoMTA-D6Hjpg", "displayName": { "text": "Chase Bank", "languageCode": "en" }, "primaryType": "bank", "types": [ "bank", "atm", "finance", "point_of_interest", "establishment" ], "formattedAddress": "Chase Bank, 1234 W El Camino Real, Sunnyvale, CA 94087, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94087", "administrativeArea": "CA", "locality": "Sunnyvale", "addressLines": [ "1234 W El Camino Real" ] }, "structureType": "POINT", "location": { "latitude": 37.373579, "longitude": -122.05752700000001 } }, "tags": [ "ARRIVAL", "ADDRESS" ], "relationalDescription": { "text": "Near Chase Bank", "languageCode": "en" }, "straightLineDistanceMeters": 61.182194, "travelDistanceMeters": 63.075645 }, { "place": { "place": "places/ChIJlbIO1Oi2j4ARp17Uf24xkHk", "displayName": { "text": "Madras Café", "languageCode": "en" }, "primaryType": "indian_restaurant", "types": [ "indian_restaurant", "coffee_shop", "cafe", "restaurant", "food_store", "food", "point_of_interest", "store", "establishment" ], "formattedAddress": "Madras Café, 1177 W El Camino Real, Sunnyvale, CA 94087, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94087-1026", "administrativeArea": "CA", "locality": "Sunnyvale", "addressLines": [ "1177 W El Camino Real" ] }, "structureType": "POINT", "location": { "latitude": 37.3743, "longitude": -122.0549333 } }, "tags": [ "ARRIVAL", "ADDRESS" ], "relationalDescription": { "text": "Near Madras Café", "languageCode": "en" }, "straightLineDistanceMeters": 204.45102, "travelDistanceMeters": 235.12041 } ]{ ... }
{ "type": "Polygon", "coordinates": [ [ [ -122.057003840785, 37.3747648209809 ], [ -122.057136852459, 37.3747919153144 ], [ -122.057205005705, 37.3745815131859 ], [ -122.057071994114, 37.3745544186944 ], [ -122.057003840785, 37.3747648209809 ] ] ] }
Parametri obbligatori
- Nella richiesta API deve essere presente uno dei tre parametri seguenti, che
specifica l'indirizzo, il luogo o la posizione in cui cercare una destinazione:
addressQuery: l'indirizzo da cercare.place: l'ID luogo del luogo da cercare.locationQuery: le coordinate di latitudine e longitudine della posizione da cercare.
FieldMask
Specifica l'elenco dei campi da restituire nella risposta creando una maschera del campo di risposta. Passa la maschera del campo di risposta al metodo utilizzando il parametro URL
$fieldsofieldsoppure utilizzando l'intestazione HTTPX-Goog-FieldMask. Ad esempio, la richiesta riportata di seguito restituirà solo gli ingressi, i punti di navigazione e l'ID luogo della destinazione principale.curl -X POST -d '{"place": "places/ChIJG3kh4hq6j4AR_XuFQnV0_t8"}' \ -H "X-Goog-Api-Key: API_KEY" \ -H "Content-Type: application/json" \ -H "X-Goog-FieldMask: destinations.entrances,destinations.navigationPoints,destinations.primary.place" \ https://geocode.googleapis.com/v4alpha/geocode/destinationsNella risposta non è presente un elenco predefinito di campi restituiti. Se ometti la maschera del campo, il metodo restituisce un errore. Imposta la maschera del campo su
*per restituire tutti i campi. Per ulteriori dettagli, consulta Scegliere i campi da restituire.
Parametri facoltativi
-
travelModes
Specifica i tipi di
navigationPointsda restituire. I punti di navigazione per altre modalità di viaggio verranno filtrati. SetravelModesnon è impostato, possono essere restituiti i punti di navigazione di tutte le modalità di viaggio. languageCode
La lingua in cui restituire i risultati.
- Consulta l'elenco delle lingue supportate. Google aggiorna spesso le lingue supportate, quindi questo elenco potrebbe non essere esaustivo.
-
Se
languageCodenon viene fornito, l'API utilizzaencome valore predefinito. Se specifichi un codice lingua non valido, l'API restituisce un erroreINVALID_ARGUMENT. - L'API fa del suo meglio per fornire un indirizzo stradale leggibile sia per l'utente sia per gli abitanti del luogo. Per raggiungere questo obiettivo, restituisce gli indirizzi stradali nella lingua locale, traslitterati in un sistema di scrittura leggibile dall'utente, se necessario, rispettando la lingua preferita. Tutti gli altri indirizzi vengono restituiti nella lingua preferita. I componenti dell'indirizzo vengono restituiti tutti nella stessa lingua, scelta dal primo componente.
- Se un nome non è disponibile nella lingua preferita, l'API utilizza la corrispondenza più vicina.
- La lingua preferita ha una piccola influenza sull'insieme di risultati che l'API sceglie di restituire e sull'ordine in cui vengono restituiti. Il geocodificatore interpreta le abbreviazioni in modo diverso a seconda della lingua, ad esempio le abbreviazioni per i tipi di strade o i sinonimi che potrebbero essere validi in una lingua ma non in un'altra.
regionCode
Il codice regione come valore CLDR di due caratteri. Non esiste un valore predefinito. La maggior parte dei codici CLDR è identica ai codici ISO 3166-1.
Quando esegui la geocodifica di un indirizzo, geocodifica diretta, questo parametro può influenzare, ma non limitare completamente, i risultati del servizio alla regione specificata. Quando esegui la geocodifica di una posizione o di un luogo, geocodifica inversa o geocodifica di un luogo, questo parametro può essere utilizzato per formattare l'indirizzo. In tutti i casi, questo parametro può influire sui risultati in base alla legge vigente.
-
placeFilter
Consente di filtrare i risultati di una ricerca
locationQueryper soddisfare i tuoi requisiti, ad esempio restituendo solo le destinazioni che sono edifici o solo le destinazioni con indirizzi chiari.Filtrare per granularità strutturale
Il filtro
structureTypeti consente di specificare il tipo di strutture restituite dalla query:- Isolamento degli edifici: utilizza
"structureType": "BUILDING"per mostrare i contorni degli edifici su una mappa o ottenere dettagli su una struttura specifica. - Comprendere i complessi: utilizza
"structureType": "GROUNDS"per assicurarti che il risultato principale sia l'area complessiva. Questa opzione è utile quando esegui query per aree più grandi, come campus universitari o centri commerciali. - Concentrandosi su unità/sezioni: utilizza
"structureType": "SECTION"per identificare le sezioni all'interno di un edificio.
Garantire indirizzi utili
Non tutti i luoghi hanno indirizzi a livello stradale chiari. Il filtro
addressabilityti aiuta a controllare la qualità degli indirizzi nei risultati:- Richiedi un indirizzo principale chiaro: per assicurarti che il risultato della destinazione principale
abbia sempre un indirizzo o un nome a livello di strada, utilizza
"addressability": "PRIMARY". È utile per la navigazione o la visualizzazione, in cui un indirizzo chiaro è fondamentale. - Consenti indirizzi nelle sottodestinazioni: nei casi in cui il luogo principale
potrebbe non avere un indirizzo, ma le unità al suo interno sì (ad esempio gli appartamenti in un
edificio),
"addressability": "WEAK"assicura che almeno il luogo principale o una delle sue sottodestinazioni abbia un indirizzo. - Qualsiasi risultato: se la presenza dell'indirizzo non è pertinente al tuo caso d'uso, utilizza
"addressability": "ANY".
Esempio: filtro per gli edifici indirizzabili
curl -X POST -d '{ "locationQuery": { "location": { "latitude": 37.37348780, "longitude": -122.05678064 }, "placeFilter": { "structureType": "BUILDING", "addressability": "PRIMARY" } }, "languageCode": "en" }' \\ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \\ -H "X-Goog-FieldMask: place" \\ https://geocode.googleapis.com/v4alpha/geocode/destinations - Isolamento degli edifici: utilizza
Feedback
Si tratta di un endpoint sperimentale dell'API Geocoding. Apprezzeremmo un feedback all'indirizzo geocoding-feedback-channel@google.com.