Cercare una località usando Mappe di Azure servizio di ricerca
Il servizio di ricerca è un set di API RESTful progettate per aiutare gli sviluppatori a cercare indirizzi, luoghi e presentazioni aziendali in base al nome, alla categoria e ad altre informazioni geografiche. Oltre a supportare la geocodifica tradizionale, i servizi possono anche invertire gli indirizzi di geocodifica e attraversare le strade in base a latitudine e longitudine. I valori di latitudine e longitudine restituiti dalla ricerca possono essere usati come parametri in altri servizi Mappe di Azure, ad esempio Route e Meteo.
Questo articolo illustra come:
- Richiedere coordinate di latitudine e longitudine per un indirizzo (posizione dell'indirizzo geocodifica) usando l'indirizzo di ricerca.
- Cercare un indirizzo o un punto di interesse usando ricerca fuzzy.
- Usare Ricerca indirizzi inversa per convertire la posizione della coordinata in indirizzo stradale.
- Traslare la posizione delle coordinate in una via incrociata comprensibile umana usando Search Address Reverse Cross Street, più spesso necessaria nelle applicazioni di rilevamento che ricevono un feed GPS da un dispositivo o da un asset e vogliono sapere dove si trova la coordinata.
Prerequisiti
Importante
Negli esempi di URL presenti in questo articolo sostituire {Your-Azure-Maps-Subscription-key}
con la chiave di sottoscrizione di Mappe di Azure.
Questo articolo usa l'applicazione bruno , ma è possibile scegliere un ambiente di sviluppo api diverso.
Richiedere la latitudine e la longitudine per un indirizzo (geocodifica)
L'esempio in questa sezione usa Get Search Address per convertire un indirizzo in coordinate di latitudine e longitudine. Questo processo è detto anche geocodifica. Oltre a restituire le coordinate, la risposta restituisce anche proprietà dettagliate relative agli indirizzi, ad esempio via, codice postale, comune e paese/area geografica.
Suggerimento
Se si dispone di un set di indirizzi da geocodificare, è possibile usare Post Search Address Batch per inviare un batch di query in una singola richiesta.
Aprire l'app bruno, selezionare NUOVA RICHIESTA per creare la richiesta. Nella finestra NUOVA RICHIESTA impostare Tipo su HTTP. Immettere un nome per la richiesta.
Selezionare il metodo GET HTTP nell'elenco a discesa URL e quindi immettere l'URL seguente:
https://atlas.microsoft.com/search/address/json?&subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&language=en-US&query=400 Broad St, Seattle, WA 98109
Selezionare il pulsante Crea.
Selezionare il pulsante Esegui.
Questa richiesta cerca un indirizzo specifico:
400 Broad St, Seattle, WA 98109
. Cercare quindi un indirizzo con più posizioni possibili.Nella sezione Params modificare la
query
chiave in400 Broad, Seattle
e quindi selezionare il pulsante Esegui.Provare quindi a impostare la
query
chiave su400 Broa
, quindi selezionare il pulsante Esegui.La risposta include i risultati di più paesi/aree geografiche. Per geobias risultati nell'area pertinente per gli utenti, aggiungere sempre il maggior numero possibile di dettagli sulla posizione alla richiesta.
Ricerca fuzzy
Ricerca fuzzy supporta ricerche standard a riga singola e in formato libero. È consigliabile usare l'API ricerca fuzzy Mappe di Azure quando non si conosce il tipo di input dell'utente per una richiesta di ricerca. L'input della query può essere un indirizzo completo o parziale. Può anche essere un token punto di interesse (POI), ad esempio un nome di poi, categoria di punti di interesse o nome del marchio. Inoltre, per migliorare la pertinenza dei risultati della ricerca, vincolare i risultati della query usando una posizione e un raggio di coordinate o definendo un rettangolo di selezione.
Suggerimento
Per impostazione predefinita, la maggior parte delle query di ricerca consente di maxFuzzyLevel=1
migliorare le prestazioni e ridurre risultati insoliti. Regolare i livelli di fuzziness usando i maxFuzzyLevel
parametri o minFuzzyLevel
. Per altre informazioni su maxFuzzyLevel
e un elenco completo di tutti i parametri facoltativi, vedere Parametri URI ricerca fuzzy.
Cercare un indirizzo usando la ricerca fuzzy
L'esempio in questa sezione usa Fuzzy Search
per cercare pizza nell'intero mondo, quindi cerca nell'ambito di un paese/area geografica specifica. Infine, illustra come usare una posizione e un raggio di coordinate per definire l'ambito di una ricerca su un'area specifica e limitare il numero di risultati restituiti.
Importante
Per geobias risultati nell'area pertinente per gli utenti, aggiungere sempre il maggior numero possibile di dettagli sulla posizione. Per altre informazioni, vedere Procedure consigliate per la ricerca.
Aprire l'app bruno, selezionare NUOVA RICHIESTA per creare la richiesta. Nella finestra NUOVA RICHIESTA impostare Tipo su HTTP. Immettere un nome per la richiesta.
Selezionare il metodo GET HTTP nell'elenco a discesa URL e quindi immettere l'URL seguente:
https://atlas.microsoft.com/search/fuzzy/json?api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=pizza
Nota
L'attributo json nel percorso URL determina il formato della risposta. Questo articolo usa json per semplificare l'uso e la leggibilità. Per trovare altri formati di risposta supportati, vedere la definizione del
format
parametro nella documentazione di riferimento sui parametri URI.Selezionare il pulsante Esegui, quindi esaminare il corpo della risposta.
La stringa di query ambigua per "pizza" ha restituito 10 punti di interesse (POI) restituisce sia le categorie "pizza" che "restaurant". Ogni risultato include dettagli, ad esempio indirizzo stradale, valori di latitudine e longitudine, porta di visualizzazione e punti di ingresso per la posizione. I risultati sono ora diversi per questa query e non sono associati ad alcuna posizione di riferimento.
Nel passaggio successivo si userà il
countrySet
parametro per specificare solo i paesi/aree per cui l'applicazione necessita di copertura. Per un elenco completo dei paesi/aree geografiche supportati, vedere Mappe di Azure copertura della geocodifica.Il comportamento predefinito consiste nel cercare nell'intero mondo, restituendo risultati potenzialmente non necessari. Cercare quindi pizza solo nel Stati Uniti. Aggiungere la
countrySet
chiave alla sezione Params e impostarne il valore suUS
. Se si imposta lacountrySet
chiave suUS
, i risultati sono associati al Stati Uniti.I risultati sono ora limitati dall'indicativo paese e la query restituisce le pizzerie negli Stati Uniti.
Per ottenere una ricerca ancora più mirata, è possibile cercare l'ambito di una coppia di coordinate lat/lon. Nell'esempio seguente vengono utilizzate le coordinate lat/lon di Seattle Space Needle. Poiché si vogliono restituire solo i risultati all'interno di un raggio di 400 metri, si aggiunge il
radius
parametro . Si aggiunge anche illimit
parametro per limitare i risultati ai cinque luoghi più vicini della pizza.Nella sezione Params aggiungere le coppie chiave/valore seguenti:
Chiave valore lat 47.620525 lon -122.349274 raggio 400 limit 5 Selezionare l'esecuzione. La risposta include i risultati per i ristoranti di pizza vicino a Seattle Space Needle.
Cercare un indirizzo tramite la ricerca di indirizzi inversa
Get Search Address Reverse converte le coordinate in indirizzi stradali leggibili. Questa API viene spesso usata per le applicazioni che utilizzano feed GPS e vogliono individuare gli indirizzi in punti di coordinate specifici.
Importante
Per geobias risultati nell'area pertinente per gli utenti, aggiungere sempre il maggior numero possibile di dettagli sulla posizione. Per altre informazioni, vedere Procedure consigliate per la ricerca.
Suggerimento
Se si dispone di un set di posizioni di coordinate per la geocodifica inversa, è possibile usare Post Search Address Reverse Batch per inviare un batch di query in una singola richiesta.
Questo esempio illustra l'esecuzione di ricerche inversi usando alcuni dei parametri facoltativi disponibili. Per l'elenco completo dei parametri facoltativi, vedere Parametri di ricerca inversa.
Aprire l'app bruno, selezionare NUOVA RICHIESTA per creare la richiesta. Nella finestra NUOVA RICHIESTA impostare Tipo su HTTP. Immettere un nome per la richiesta.
Selezionare il metodo GET HTTP nell'elenco a discesa URL e quindi immettere l'URL seguente:
https://atlas.microsoft.com/search/address/reverse/json?api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=47.591180,-122.332700
Selezionare il pulsante Esegui ed esaminare il corpo della risposta. Verrà visualizzato un risultato della query. La risposta include informazioni sull'indirizzo chiave per Safeco Field.
Aggiungere quindi le coppie chiave/valore seguenti alla sezione Params :
Chiave valore Valori restituiti number 1 La risposta può includere il lato della strada (sinistra/destra) e anche una posizione di offset per il numero. returnSpeedLimit true Restituisce il limite di velocità all'indirizzo. returnRoadUse true Restituisce i tipi di utilizzo della strada all'indirizzo. Per tutti i possibili tipi di utilizzo stradale, vedi Tipi di utilizzo stradale. returnMatchType true Restituisce il tipo di corrispondenza. Per tutti i valori possibili, vedere Reverse Address Search Results .For all possible values, see Reverse Address Search Results. Selezionare il pulsante Esegui ed esaminare il corpo della risposta.
Aggiungere quindi la chiave e impostarne il
entityType
valore suMunicipality
. LaentityType
chiave esegue l'override dellareturnMatchType
chiave nel passaggio precedente.returnSpeedLimit
ereturnRoadUse
anche bisogno rimosso perché si stanno richiedendo informazioni sul comune. Per tutti i tipi di entità possibili, vedere Tipi di entità.Selezionare il pulsante Esegui. Confrontare i risultati con i risultati restituiti nel passaggio 5. Poiché il tipo di entità richiesto è ora
municipality
, la risposta non include informazioni sull'indirizzo stradale. Inoltre, l'oggetto restituitogeometryId
può essere usato per richiedere il poligono limite tramite Mappe di Azure'API Recupera poligono di ricerca.
Suggerimento
Per altre informazioni su questi parametri e su altri parametri, vedere Parametri di ricerca inversa.
Cercare cross street usando la ricerca cross street inversa
In questo esempio viene illustrato come cercare una strada incrociata in base alle coordinate di un indirizzo.
Aprire l'app bruno, selezionare NUOVA RICHIESTA per creare la richiesta. Nella finestra NUOVA RICHIESTA impostare Tipo su HTTP. Immettere un nome per la richiesta.
Selezionare il metodo GET HTTP nell'elenco a discesa URL e quindi immettere l'URL seguente:
https://atlas.microsoft.com/search/address/reverse/crossstreet/json?api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=47.591180,-122.332700
Selezionare il pulsante Esegui ed esaminare il corpo della risposta. Si noti che la risposta contiene un
crossStreet
valore diSouth Atlantic Street
.