Presentation is loading. Please wait.

Presentation is loading. Please wait.

Who Needs Google Maps? (when you’ve got SQL Server) Alastair Aitchison.

Similar presentations


Presentation on theme: "Who Needs Google Maps? (when you’ve got SQL Server) Alastair Aitchison."— Presentation transcript:

1 Who Needs Google Maps? (when you’ve got SQL Server) Alastair Aitchison

2 Google Maps Snazzy Logo Search for Location Map Display Route between locations

3 Bing Maps Snazzy Logo Search for Location Map Display Route between locations

4 Yahoo Maps Snazzy Logo Search for Location Map Display Route between locations

5 MapQuest Snazzy Logo Search for Location Map Display Route between locations

6 Requirements Checklist 1.Snazzy Logo 2.Pannable, Zoomable Map Display 3.Search for a Location 4.Calculate Route Between Destinations This will involve: Importing data from shapefiles, integrating with SQLCLR, using SSRS, passing spatial data to/from stored procedures, and more!

7 Requirement #1 : Snazzy Logo Take a brand name and add on “maps” Therefore…

8 Requirements Checklist 1.Snazzy Logo  2.Pannable, Zoomable Map Display 3.Search for a Location 4.Calculate Route Between Destinations

9 Ordnance Survey Open Data Free, “lite” OS datasets Different products, e.g: – VectorMap (features) – Gazetteer (placenames) – CodePoint Open (p’codes) Download or DVD ESRI Shapefile format

10 Loading Shapefiles to SQL Server SQL Server does not support shapefiles Use 3rd party tools – Commercial: Safe FME, Manifold – Free: OGR2OGR, Shape2SQL Check.prj file to determine geography/geometry and correct SRID

11 Shape2SQL Demo

12 Requirement #2 : Map Display What visualisation options does SQL Server provide? – SSMS Spatial Results tab (SQL 2008/R2) – SSRS Map Component (SQL 2008 R2 only) No new options in SQL Denali

13 SSMS Spatial Results Tab Demo

14 SSRS Map Component Demo

15 Requirement #2 : Map Display SSMS Spatial Results tab +Available after SELECTing geometry/geography data +Pannable, zoomable, labelled -Max 5,000 features -Only for use in SSMS - not embeddable / exportable SSRS Map Component (SQL 2008 R2) +Good for analysis – drilldown by clicking shapes etc. +Can be exported as static image -Slow and static. Not “slippy” interface

16 A Silverlight Map Display App Silverlight provides UI and Graphics classes SqlServer.Types.dll not Silverlight compatible Use intermediary web service OS Eastings / Northings -> Screen (x,y)

17 SProc to Retrieve OS Tiles CREATE PROCEDURE [dbo].[GetSettlementDataForTile] @TileBounds geometry AS BEGIN DECLARE @TileHeight float = (@TileBounds.STPointN(3).STY - @TileBounds.STPointN(2).STY); DECLARE @Res float = @TileHeight / 256; SELECT geom27700.STIntersection(@TileBounds).Reduce(@Res) FROM Settlement_Area WITH(index(geom27700_sidx)) WHERE geom27700.STIntersects(@TileBounds) = 1 END

18 Silverlight Slippy Map Demo

19 Requirements Checklist 1.Snazzy Logo  2.Pannable, Zoomable Map Display  3.Search for a Location 4.Calculate Route Between Destinations

20 Geocoding (Location Searching) Not really a Spatial Operation Address text parsing / search SELECT * FROM OSLocator WHERE ROADNAME = @RoadName Fuzzy matching with full-text search RegEx matching for Postcode Supplied address is freetext user input so be cautious of SQL injection attacks etc.

21 Geocoding Demo

22 Requirements Checklist 1.Snazzy Logo  2.Pannable, Zoomable Map Display  3.Search for a Location  4.Calculate Route Between Destinations

23 Routing Not sufficient to have a table of LineStrings Network topology – how are roads connected? Graph theory: Node (Point) Edge (LineString)

24 Brute Force Routing with T-SQL Recursive CTE Anchor member selects LineString edges that begin at chosen start node Recursive member joins from STEndPoint() of last edge to STStartPoint() of next edge Create geometry of route already travelled to avoid infinite loops Expand outwards until end node found

25 Smart Routing with SQLCLR A* algorithm Heuristics prioritise edges more likely to lie on least cost route to goal “Least cost” does not have to mean “shortest” Additional properties of each node: g: cost of route already travelled to reach this node h: estimated remaining cost from this node to goal f: g + h

26 A* Algorithm in Operation Start Goal AB C D E

27 A* Algorithm in Operation 37 2 10.2 2.8 8.2 Start Goal AB C D E

28 A* Algorithm in Operation X 2 10.2 2.8 8.2 Start Goal AB C D E

29 A* Algorithm in Operation X 2 10.2 2.8 8.5 1 Start Goal AB C D E

30 A* Algorithm in Operation X 2 10.2 2.8 8.5 1 Goal reached! Route cost: 12.2 Start Goal AB C D E

31 Requirements Checklist 1.Snazzy Logo  2.Pannable, Zoomable Map Display  3.Search for a Location  4.Calculate Route Between Destinations  Put it all together and what have you got?

32 SQLBitMaps in action…

33 Want More? : @alastaira #sqlbits8 : http://alastaira.wordpress.com MSDN Spatial Forum: http://social.msdn.microsoft.com/Forums/en- GB/sqlspatial/threads


Download ppt "Who Needs Google Maps? (when you’ve got SQL Server) Alastair Aitchison."

Similar presentations


Ads by Google