Condividi tramite


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.

  1. 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.

  2. 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
    
  3. Selezionare il pulsante Crea.

  4. Selezionare il pulsante Esegui.

    Questa richiesta cerca un indirizzo specifico: 400 Broad St, Seattle, WA 98109. Cercare quindi un indirizzo con più posizioni possibili.

  5. Nella sezione Params modificare la query chiave in 400 Broad, Seattlee quindi selezionare il pulsante Esegui.

    Cercare l'indirizzo

  6. Provare quindi a impostare la query chiave su 400 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 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. 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.

  2. 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.

  3. 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.

  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.

    Cercare pizza nel Stati Uniti

    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 l'esecuzione. 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. 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.

  2. 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
    
  3. 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.

  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 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.

    Ricerca inversa.

  5. Selezionare il pulsante Esegui 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à.

    Eseguire la ricerca inversa entityType.

  7. 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 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. 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.

  2. 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
    
  3. Selezionare il pulsante Esegui ed esaminare il corpo della risposta. Si noti che la risposta contiene un crossStreet valore di South Atlantic Street.

Passaggi successivi