Ottimizzazione dell'utilizzo della quota durante la geocodifica

La geocodifica è il processo di conversione degli indirizzi ("1600 Amphitheatre Parkway, Mountain View, CA") alle coordinate geografiche (37.423021, -122.083739), che puoi utilizzare per posizionare o posizionare la mappa. Le API di Google Maps Platform forniscono di geocodifica:

  • Geocodifica lato client che viene eseguito nel browser, generalmente in risposta all'azione dell'utente. L'API Maps JavaScript fornisce che effettuano le richieste per tuo conto. Questo approccio viene descritto API Maps JavaScript documentazione.
  • Geocodifica lato server HTTP che permette al server di interrogare direttamente I server di Google per i codici geografici. L'API Geocoding è il web che offre questa funzionalità. In genere, integri con un altro codice in esecuzione lato server. Geocodifica lato server è descritto nel API Geocoding documentazione.

Esempi di geocodifica lato client e lato server

Ecco un esempio di geocodifica lato client che utilizza una di destinazione, lo geocodifica, sposta il centro della mappa in quella posizione e aggiunge indicatore:

geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address }, function(results, status) {
  if (status == google.maps.GeocoderStatus.OK) {
    map.setCenter(results[0].geometry.location);
    var marker = new google.maps.Marker({
      map: map,
      position: results[0].geometry.location
    });
  }
});

Per altri esempi, consulta API Maps JavaScript documentazione.

Ecco un esempio di utilizzo di Python per eseguire le operazioni lato server richiesta di geocodifica:

import urllib2

address="1600+Amphitheatre+Parkway,+Mountain+View,+CA"
key="my-key-here"
url="https://maps.googleapis.com/maps/api/geocode/json?address=%s&key=%s" % (address, key)

response = urllib2.urlopen(url)

jsongeocode = response.read()

Questo produce un oggetto JSON con i seguenti contenuti:

{
  "status": "OK",
  "results": [ {
    "types": street_address,
    "formatted_address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
    "address_components": [ {
      "long_name": "1600",
      "short_name": "1600",
      "types": street_number
    }, {
      "long_name": "Amphitheatre Pkwy",
      "short_name": "Amphitheatre Pkwy",
      "types": route
    }, {
      "long_name": "Mountain View",
      "short_name": "Mountain View",
      "types": [ "locality", "political" ]
    }, {
      "long_name": "San Jose",
      "short_name": "San Jose",
      "types": [ "administrative_area_level_3", "political" ]
    }, {
      "long_name": "Santa Clara",
      "short_name": "Santa Clara",
      "types": [ "administrative_area_level_2", "political" ]
    }, {
      "long_name": "California",
      "short_name": "CA",
      "types": [ "administrative_area_level_1", "political" ]
    }, {
      "long_name": "United States",
      "short_name": "US",
      "types": [ "country", "political" ]
    }, {
      "long_name": "94043",
      "short_name": "94043",
      "types": postal_code
    } ],
    "geometry": {
      "location": {
        "lat": 37.4220323,
        "lng": -122.0845109
      },
      "location_type": "ROOFTOP",
      "viewport": {
        "southwest": {
          "lat": 37.4188847,
          "lng": -122.0876585
        },
        "northeast": {
          "lat": 37.4251799,
          "lng": -122.0813633
        }
      }
    }
  } ]
}

Il geocodificatore lato server fornisce inoltre un formato XML come alternativa al JSON. Per altri esempi, consulta API Geocoding documentazione e librerie client per Python e altre lingue.

Considerazioni su quote e costi

I costi, le quote e i limiti di frequenza della geocodifica gestiscono le strategie descritte in questo articolo documento.

Costo

I limiti QPD non sono più in uso per le richieste di geocodifica. Al contrario, ogni richiesta di geocodifica, lato client tramite il browser o lato server tramite Il servizio web dell'API Geocoding, a un prezzo per ciascun articolo. Per gestire il costo di utilizzo, considera al limite della quota giornaliera.

Limiti di frequenza

La frequenza del servizio di geocodifica è limitata a 3000 QPM (query al minuto), calcolata come somma delle query lato client e lato server.

Quando si eseguono richieste di geocodifica lato client a intervalli periodici, ad esempio in un'app mobile, le tue richieste potrebbero restituire errori se tutti gli utenti fare richieste contemporaneamente (ad esempio, tutte allo stesso secondo di ogni minuto). Per evitare che ciò accada, prendi in considerazione una delle seguenti opzioni:

Memorizzazione nella cache

Consulta Criteri dell'API Geocoding relativi alla memorizzazione nella cache.

Quando utilizzare la geocodifica lato client

La risposta breve è "quasi sempre". I motivi sono i seguenti:

  • La richiesta e la risposta lato client forniscono un maggiore un'esperienza interattiva per gli utenti.
  • Una richiesta lato client può includere informazioni che migliorano la geocodifica qualità: lingua dell'utente, regione e area visibile.

In particolare, la geocodifica lato client è ideale per la geocodifica di indirizzi in base all'input dell'utente.

Esistono due architetture di base per la geocodifica lato client:

  • Esegui la geocodifica e la visualizzazione interamente nel browser. Ad esempio, l'utente inserisce un indirizzo nella tua pagina. La tua applicazione lo geocodifica. Poi la tua pagina utilizza il geocodice per creare un indicatore sulla mappa. Oppure la tua app un'analisi semplice usando il geocodice. Nessun dato viene inviato al tuo server. In questo modo si riduce il carico sul server.
  • Esegui la geocodifica nel browser e poi inviala al server. Ad esempio, l'utente inserisce un indirizzo nella tua pagina. La tua applicazione la geocodifica nel browser. L'app invia quindi i dati al tuo server. La server risponde con alcuni dati, come i punti d'interesse vicini. Questo ti consente di personalizzare una risposta in base ai tuoi dati.

Quando utilizzare la geocodifica lato server

La geocodifica lato server è ideale per le applicazioni che richiedono di geocodificare gli indirizzi senza input da un client. Un esempio comune è quando si ottiene un set di dati indipendente dall'input dell'utente, ad esempio, se si ha un insieme fisso, finito e noto indirizzi che richiedono la geocodifica. La geocodifica lato server essere utile anche come backup in caso di errori di geocodifica lato client.

Alcuni possibili problemi sono un incremento non necessario della latenza per l'utente, e di geocodifica di una qualità inferiore rispetto a quella lato client perché sono disponibili nella richiesta.