Upload
andrea-martorana-tusa
View
115
Download
0
Embed Size (px)
Citation preview
#sqlsatTorino#sqlsat400May 23, 2015
Geocoding with SQL Server, Bing and Google Maps API
Andrea Martorana [email protected]@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