Geocoding with SQL Server Bing & Google API

30
#sqlsatTorino #sqlsat400 May 23, 2015 Geocoding with SQL Server, Bing and Google Maps API Andrea Martorana Tusa @bruco441 [email protected] http://speakerscore.com/XFD7

Transcript of Geocoding with SQL Server Bing & Google API

Page 1: Geocoding with SQL Server Bing & Google API

#sqlsatTorino#sqlsat400May 23, 2015

Geocoding with SQL Server, Bing and Google Maps API

Andrea Martorana [email protected]@gmail.com

http://speakerscore.com/XFD7

Page 2: Geocoding with SQL Server Bing & Google API

#sqlsatTorino#sqlsat400May 23, 2015

Sponsors

Page 3: Geocoding with SQL Server Bing & Google API

#sqlsatTorino#sqlsat400May 23, 2015

Organizers

Page 4: Geocoding with SQL Server Bing & Google API

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

Page 5: Geocoding with SQL Server Bing & Google API

#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

Page 6: Geocoding with SQL Server Bing & Google API

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

Page 7: Geocoding with SQL Server Bing & Google API

#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/

Page 8: Geocoding with SQL Server Bing & Google API

#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

Page 9: Geocoding with SQL Server Bing & Google API

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

Page 10: Geocoding with SQL Server Bing & Google API

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

Page 11: Geocoding with SQL Server Bing & Google API

#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

Page 12: Geocoding with SQL Server Bing & Google API

#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

Page 13: Geocoding with SQL Server Bing & Google API

#sqlsatTorino#sqlsat400May 23, 2015

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

E' necessario un account Microsoft.

API Request free

Page 14: Geocoding with SQL Server Bing & Google API

#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

Page 15: Geocoding with SQL Server Bing & Google API

#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:

Page 16: Geocoding with SQL Server Bing & Google API

#sqlsatTorino#sqlsat400May 23, 2015

DEMO

Demo 1

Google & Bing API

Page 17: Geocoding with SQL Server Bing & Google API

#sqlsatTorino#sqlsat400May 23, 2015

Dagli indirizzi alle coordinate

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

Page 18: Geocoding with SQL Server Bing & Google API

#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)

Page 19: Geocoding with SQL Server Bing & Google API

#sqlsatTorino#sqlsat400May 23, 2015

Data retrieval

Database

SQL Server(uffici postali)

Page 20: Geocoding with SQL Server Bing & Google API

#sqlsatTorino#sqlsat400May 23, 2015

Data processing

Geocoding

Integration Services

(data flow e script C#)

Page 21: Geocoding with SQL Server Bing & Google API

#sqlsatTorino#sqlsat400May 23, 2015

Data processing

Geocoding

Integration Services

(data flow e script C#)

Page 22: Geocoding with SQL Server Bing & Google API

#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

Page 23: Geocoding with SQL Server Bing & Google API

#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

Page 24: Geocoding with SQL Server Bing & Google API

#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

Page 25: Geocoding with SQL Server Bing & Google API

#sqlsatTorino#sqlsat400May 23, 2015

Reporting and analysis

Data visualization

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

Map Types

Page 26: Geocoding with SQL Server Bing & Google API

#sqlsatTorino#sqlsat400May 23, 2015

Reporting and analysis

Data visualization Map Layers

Page 27: Geocoding with SQL Server Bing & Google API

#sqlsatTorino#sqlsat400May 23, 2015

DEMO

Demo 3

Reporting e visualizzazione dei dati

Page 28: Geocoding with SQL Server Bing & Google API

#sqlsatTorino#sqlsat400May 23, 2015

Q&A

§ Questions?

Page 29: Geocoding with SQL Server Bing & Google API

#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/

Page 30: Geocoding with SQL Server Bing & Google API

#sqlsatTorino#sqlsat400May 23, 2015

Thanks!

#sqlsatTorino#sqlsat400

SPEAKERSCOREhttp://speakerscore.com/XFD7