Geocoding with SQL Server Bing & Google API

Preview:

Citation preview

#sqlsatTorino#sqlsat400May 23, 2015

Geocoding with SQL Server, Bing and Google Maps API

Andrea Martorana Tusa@bruco441andrea.martoranatusa@gmail.com

http://speakerscore.com/XFD7

#sqlsatTorino#sqlsat400May 23, 2015

Sponsors

#sqlsatTorino#sqlsat400May 23, 2015

Organizers

#sqlsatTorino#sqlsat400May 23, 2015

SpeakerSpeaker

§ Analista/Programmatore presso Banco Popolare§ In servizio presso Sistema Informativo Risorse Umane, ufficio che si occupa della

gestione di tutte le procedure aziendali legate alle risorse umane (anagrafiche, assenze/presenze, paghe, formazione ecc.)

§ MCTS “SQL Server 2008 Developer”.

§ Competenze e principali e ambiti di attività: SQL Server, Oracle, Data Warehouse, Reporting, BI, Analysis Services, C#.

#sqlsatTorino#sqlsat400May 23, 2015

Agenda

Geocoding e rappresentazione dei dati su mappe geografiche

I servizi di geocoding di Google e Bing: chiavi pubbliche e licenze private

Archiviare i dati: i tipi di dati geografici in SQL Server Dagli indirizzi alle coordinate spaziali: Integration Services,

funzioni CLR Rappresentazione ed utilizzo dei dati: Reporting Services Conclusioni

#sqlsatTorino#sqlsat400May 23, 2015

Cosa è il geocoding

Con il termine “geocoding” si indica il processo attraverso il quale, partendo da un indirizzo si ottengono delle coordinate geografiche.

Es: l’indirizzo via Agostino da Montefeltro 2, 10134 Torino TO

se geocodificato restituisce: 45.050185 N, 7.669781 E

I dati così ottenuti, possono essere memorizzati in una base dati ed utilizzati per calcoli, rappresentazioni, analisi ecc.

#sqlsatTorino#sqlsat400May 23, 2015

I servizi di geocoding: Google Maps

Google Maps fornisce uno dei più diffusi strumenti di conversione in dati geografici attraverso una serie di API standard. Ci sono due tipologie di servizi: gratis ed a pagamento.

§ Google Maps free API (v3) : 2500 richieste in 24 ore. 5 richieste al secondo.§ Google Maps API for Work: 100.000 richieste in 24 ore. 10 richieste al secondo.

Fonte: https://developers.google.com/maps/documentation/geocoding/

#sqlsatTorino#sqlsat400May 23, 2015

I servizi di geocoding: Bing Maps

In alternativa a Google, Microsoft offre lo stesso tipo di funzionalità attraverso Bing Maps, un API che può compiere operazioni come geocodifica di un indirizzo, creazione di un percorso, creazione di una mappa, ecc.

Microsoft distingue tra transazioni fatturabili e non fatturabili (billable):Per esempio, per una applicazione free che rientra nella categoria non fatturabile, il limite massimo è di 125.000 transazioni per anno.

Fonte: https://www.microsoft.com/maps/product/terms.html

#sqlsatTorino#sqlsat400May 23, 2015

Geocoding API Request Format

Una richiesta di geocodifica deve avere un formato standard.

Google Free API:https://maps.googleapis.com/maps/api/geocode/output?parameters&key=API_KEY

https://maps.googleapis.com/maps/api/geocode/ → parte fissa

output → formato di output restituito: json o xml

parameters → parametri della chiamata: address o components

Key → chiave per API fornita da Google.

#sqlsatTorino#sqlsat400May 23, 2015

Geocoding API Request Format

Bing Free API:

http://dev.virtualearth.net/REST/v1/Locations?countryRegion=countryRegion&adminDistrict=adminDistrict&locality=locality&postalCode=postalCode&addressLine=addressLine&userLocation=userLocation&userIp=userIp&usermapView=usermapView&includeNeighborhood=includeNeighborho

od&maxResults=maxResults&key=BingMapsKey

http://dev.virtualearth.net/REST/v1/Locations → parte fissa

(o)utput → formato di output restituito: json (default) o xml

parameters → parametri della chiamata.

BingMapsKey → chiave per API fornita da Bing.

#sqlsatTorino#sqlsat400May 23, 2015

API Request free

Esempio richiesta con free API:

https://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=xxxxxxxxxxxxxxxxxxx

parte fissa output indirizzo Google key

#sqlsatTorino#sqlsat400May 23, 2015

Per utilizzare i servizi di geocodifica (anche quelli gratuiti) è necessario ottenere una License Key.

Per Google consultare:https://developers.google.com/maps/documentation/geocoding/#api_key

E' necessario un account google.

API Request free

#sqlsatTorino#sqlsat400May 23, 2015

Per Bing: https://www.bingmapsportal.com

E' necessario un account Microsoft.

API Request free

#sqlsatTorino#sqlsat400May 23, 2015

API Request for Works

La licenza Business, richiede un client-id (fornito da Google al momento della sottoscrizione) ed una signature key (generata dinamicamente ad ogni chiamata).Esempio di richiesta:

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA

&client=gme-YOUR_CLIENT_ID&signature=YOUR_URL_SIGNATURE

Fonte: https://developers.google.com/maps/documentation/business/webservices/auth

#sqlsatTorino#sqlsat400May 23, 2015

API Request Results

Indipendentemente dal tipo di richiesta, il risultato è un oggetto JSON o XML, che contiene i dati di latitudine e longitudine dell'indirizzo inserito:

#sqlsatTorino#sqlsat400May 23, 2015

DEMO

Demo 1

Google & Bing API

#sqlsatTorino#sqlsat400May 23, 2015

Dagli indirizzi alle coordinate

Esempio: la ricerca di un ufficio postale sul sito di Poste Italiane.

#sqlsatTorino#sqlsat400May 23, 2015

Dagli indirizzi alle coordinate

Gli strumenti di SQL Server per la trasformazione e l’analisi dei dati

SQL Server(uffici postali)

Integration Services

(data flow e script C#)

Database Geocoding Data visualization

Reporting services(mappe)

#sqlsatTorino#sqlsat400May 23, 2015

Data retrieval

Database

SQL Server(uffici postali)

#sqlsatTorino#sqlsat400May 23, 2015

Data processing

Geocoding

Integration Services

(data flow e script C#)

#sqlsatTorino#sqlsat400May 23, 2015

Data processing

Geocoding

Integration Services

(data flow e script C#)

#sqlsatTorino#sqlsat400May 23, 2015

Tipi di dati spaziali in SQL Server:

§ geometry: rappresentazione planare a due dimensioni di coordinate di tipo x e y.§ geography: rappresentazione ellissoidale tridimensionale di coordinate di tipo geografico; latitudine e longitudine.

Data conversion

Database

#sqlsatTorino#sqlsat400May 23, 2015

geography

I dati di latitudine e longitudine vengono convertiti nel tipo di dato geography di SQL Server, che può venire utilizzato per calcoli, analisi, rappresentazioni grafiche, ecc. DECLARE @point geography;

SET @point = geography::STPointFromText('POINT(' + CAST(7.669781 AS VARCHAR(20)) + ' ' + CAST(45.050185 AS VARCHAR(20)) + ')',4326);

SELECT @point;

Database

#sqlsatTorino#sqlsat400May 23, 2015

DEMO

Demo 2

Dagli indirizzi alle coordinate.

Dati spaziali e modalità di calcolo.

Funzioni e sp per interrogare i servizi remoti.

Elaborazione dei dati con un SSIS

#sqlsatTorino#sqlsat400May 23, 2015

Reporting and analysis

Data visualization

http://technet.microsoft.com/en-us/library/ee210528.aspx

Map Types

#sqlsatTorino#sqlsat400May 23, 2015

Reporting and analysis

Data visualization Map Layers

#sqlsatTorino#sqlsat400May 23, 2015

DEMO

Demo 3

Reporting e visualizzazione dei dati

#sqlsatTorino#sqlsat400May 23, 2015

Q&A

§ Questions?

#sqlsatTorino#sqlsat400May 23, 2015

Resources

§ Google Geocoding API: https://developers.google.com/maps/documentation/geocoding/

§ Google API for Work: https://developers.google.com/maps/documentation/business/webservices/auth

§ Geocoding Using SSIS: http://social.technet.microsoft.com/wiki/contents/articles/23214.geocoding-using-ssis.aspx

§ Geocode Addresses in T-SQL: http://www.sqlservercentral.com/articles/geocode/70061/

#sqlsatTorino#sqlsat400May 23, 2015

Thanks!

#sqlsatTorino#sqlsat400

SPEAKERSCOREhttp://speakerscore.com/XFD7

Recommended