Share via


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

Questa esercitazione usa l'applicazione Postman, 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.

  1. Nell'app Postman selezionare Nuovo per creare la richiesta. Nella finestra Crea nuovo selezionare Richiesta HTTP. Immettere un Request Name (Nome richiesta) per la richiesta.

  2. Selezionare il metodo HTTP GET nella scheda generatore e immettere l'URL seguente. In questa richiesta viene cercato un indirizzo specifico: 400 Braod St, Seattle, WA 98109. Per questa richiesta e altre richieste indicate in questo articolo, sostituire {Your-Azure-Maps-Subscription-key} con la chiave di sottoscrizione Mappe di Azure.

    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
    
  3. Selezionare il pulsante Invia blu. Il corpo della risposta contiene dati per una singola posizione.

  4. Cercare quindi un indirizzo con più posizioni possibili. Nella sezione Params modificare la query chiave in 400 Broad, Seattle. Selezionare il pulsante Invia blu.

    Search for address

  5. Provare quindi a impostare la query chiave su 400 Broa.

  6. Selezionare il pulsante Invia. 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 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.

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.

  1. Nell'app Postman selezionare Nuovo per creare la richiesta. Nella finestra Crea nuovo selezionare Richiesta HTTP. Immettere un Request Name (Nome richiesta) per la richiesta.

  2. Selezionare il metodo HTTP GET nella scheda generatore e immettere l'URL seguente. Per questa richiesta e altre richieste indicate in questo articolo, sostituire {Your-Azure-Maps-Subscription-key} con la chiave di sottoscrizione Mappe di Azure.

    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.

  3. Selezionare Invia ed esaminare il corpo della risposta.

    La stringa di query ambigua per "pizza" ha restituito 10 risultati di interesse (POI) nelle categorie "pizza" e "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 di paesi/aree geografiche supportate, vedere Copertura della ricerca.

  4. 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 su US. Se si imposta la countrySet chiave su US , i risultati sono associati al Stati Uniti.

    Search for pizza in the United States

    I risultati sono ora limitati dall'indicativo paese e la query restituisce le pizzerie negli Stati Uniti.

  5. 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 il limit 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
  6. Selezionare Invia. La risposta include i risultati per i ristoranti di pizza vicino a Seattle Space Needle.

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.

  1. Nell'app Postman selezionare Nuovo per creare la richiesta. Nella finestra Crea nuovo selezionare Richiesta HTTP. Immettere un Request Name (Nome richiesta) per la richiesta.

  2. Selezionare il metodo HTTP GET nella scheda generatore e immettere l'URL seguente. Per questa richiesta e altre richieste indicate in questo articolo, sostituire {Your-Azure-Maps-Subscription-key} con la chiave di sottoscrizione Mappe di Azure. La richiesta deve essere simile all'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&number=1
    
  3. Selezionare Invia ed esaminare il corpo della risposta. Verrà visualizzato un risultato della query. La risposta include informazioni sull'indirizzo chiave per Safeco Field.

  4. 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 vero Restituisce il limite di velocità all'indirizzo.
    returnRoadUse vero Restituisce i tipi di utilizzo della strada all'indirizzo. Per tutti i possibili tipi di utilizzo stradale, vedi Tipi di utilizzo stradale.
    returnMatchType vero Restituisce il tipo di corrispondenza. Per tutti i valori possibili, vedere Reverse Address Search Results .For all possible values, see Reverse Address Search Results.

    Search reverse.

  5. Selezionare Invia ed esaminare il corpo della risposta.

  6. Aggiungere quindi la chiave e impostarne il entityType valore su Municipality. La entityType chiave esegue l'override della returnMatchType chiave nel passaggio precedente. returnSpeedLimit e returnRoadUse anche bisogno rimosso perché si stanno richiedendo informazioni sul comune. Per tutti i tipi di entità possibili, vedere Tipi di entità.

    Search reverse entityType.

  7. Selezionare Invia. 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 restituito geometryId 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.

In questo esempio viene illustrato come cercare una strada incrociata in base alle coordinate di un indirizzo.

  1. Nell'app Postman selezionare Nuovo per creare la richiesta. Nella finestra Crea nuovo selezionare Richiesta HTTP. Immettere un Request Name (Nome richiesta) per la richiesta.

  2. Selezionare il metodo HTTP GET nella scheda generatore e immettere l'URL seguente. Per questa richiesta e altre richieste indicate in questo articolo, sostituire {Your-Azure-Maps-Subscription-key} con la chiave di sottoscrizione Mappe di Azure. La richiesta deve essere simile all'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
    

    Search cross street.

  3. Selezionare Invia ed esaminare il corpo della risposta. Si noti che la risposta contiene un crossStreet valore di South Atlantic Street.

Passaggi successivi