where’s my data?

37
COLIN MACKAY WHERE’S MY DATA? Spatial queries in SQL Server 2008 SQL Bits III – 13 th September 2008

Upload: tender

Post on 23-Feb-2016

114 views

Category:

Documents


1 download

DESCRIPTION

Where’s My Data?. Spatial queries in SQL Server 2008 SQL Bits III – 13 th September 2008. New data types geometry and geography Spatial references Spatial operations Spatial indexes Case study. What’s covered in this talk. 80-90% of all data has a spatial element - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Where’s My Data?

COLIN MACKAY

WHERE’S MY DATA?

Spatial queries in SQL Server 2008

SQL Bits III – 13th September 2008

Page 2: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

WHAT’S COVERED IN THIS TALK New data types geometry and

geography Spatial references Spatial operations Spatial indexes Case study

Page 3: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

WHY SHOULD I CARE ABOUT SPATIAL DATA?

80-90% of all data has a spatial element Where are your customers? Where are your assets? Where are potential customers? Where are the flood risks? Where are your complaints coming

from? Where are the accident black-spots? Where are crimes happening?

Page 4: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

COULD FUDGE THE QUERIES Postcodes in

Glasgow Zoned Historical reasons G5 adjacent to G42 G40 in an island Postcodes

designed for delivering letters

Page 5: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

WHAT DOES SQL SERVER 2008 PROVIDE? The data analysis engine No useful rendering engine

Virtual Earth Map Point Other GIS systems

OGC Standards compliance Plus some “extension” methods of their

own

Page 6: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

GEOMETRY X/Y coordinate on a

planar grid British National Grid Works well to

~750,000km2 Different projections

Page 7: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

GEOGRAPHY Geodetic

coordinates Covers larger areas International

datasets Approximation

Earth actually flattened sphere (oblate spheroid)

Different models Airy 1830 (used by

OS) WGS84 (used by

GPS)

Page 8: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

SRID Spatial Reference Identifier All spatial data has an SRID SRIDs must match for spatial

operations Null returned if SRIDs don’t match

Geometry can have an SRID of 0 Not Geography.

Page 9: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

TYPES OF SPATIAL DATA Point LineString Polygon GeomCollection MultiPolygon MultiLineString MultiPoint

From BOL

Page 10: Where’s My Data?

COLIN MACKAY

[email protected]

http://www.colinmackay.net

CREATE POINT DATA

Page 11: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

FINDING DISTANCESSELECT a.Name AS StartVenue, b.Name AS EndVenue, a.Location.STDistance(b.Location) / 1000.0 As DistanceFROM Venue AS aINNER JOIN Venue AS b ON a.Id < b.IdORDER BY a.Id, b.Id

GCU 60Dundee U

62 102

MS TVP 520 537 572MS Edin’

6 66 58 521

HBOS GCU Dundee U

MS TVP

Page 12: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

LINESTRING A linestring is a series of coordinates 1 dimension Defines a linear object

Road Railway line River

Page 13: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

CREATING LINESTRINGS Can use

STGeomFromText STGeomFromWKB STLineFromText STLineFromWKB Parse

Page 14: Where’s My Data?

COLIN MACKAY

[email protected]

http://www.colinmackay.net

CREATE LINESTRING DATA

Page 15: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

GEOMETRY LENGTHS & DISTANCES Geography uses SI Units Geometry uses the units of the planar

system

The square of the hypotenuse is equal to the sum of the square of the other two sides

Not to scale

3 units

4 units

? unitsDistance from A to B:√(32+42) = 5

A

B

Page 16: Where’s My Data?

COLIN MACKAY

[email protected]

http://www.colinmackay.net

INTERSECTING LINES

Page 17: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

POLYGON A series of coordinates in a closed ring

First and last coordinate are the same 2 dimensions Defines an area

Page 18: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

GEOGRAPHY POLYGON ORIENTATION Interior is

everything inside an anti-clockwise ring Everything on the

left-hand side of the perimeter line.

Page 19: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

GEOGRAPHY POLYGON ORIENTATIONThe specified input does not represent a valid geography instance because it exceeds a single hemisphere. Each geography instance must fit inside a single hemisphere. A common reason for this error is that a polygon has the wrong ring orientation.

Page 20: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

CREATING POLYGONS Can use

STGeomFromText STGeomFromWKB STPolygonFromText STPolygonFromWKB Parse

Page 21: Where’s My Data?

COLIN MACKAY

[email protected]

http://www.colinmackay.net

CREATING POLYGONS

Page 22: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

FICTIONAL CASE STUDY Estate Agent

Filter by price, # bedrooms, type – EASY! Filter by location?

Until now very vague

Page 23: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

COMMON SPATIAL QUESTIONS

Near a railwa

y statio

n

Near my work

Near a motorway junctionNear a good

school Inside the cityOutside the city

Page 24: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

THE DATA Railway data

Stations Routes

Page 25: Where’s My Data?

COLIN MACKAY

[email protected]

http://www.colinmackay.net

SIMPLE SPATIAL QUERIES

Page 26: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

DOESN’T ALWAYS WORK Edinburgh - Glenrothes

(via Kirkcaldy)Name DistKM-------------------------- ----------------Edinburgh Waverley Station 0Haymarket 1.89298770395887South Gyle 6.95446540329848Burntisland 12.086984317701Dalmeny 12.49585147351Kinghorn 13.1439998546632Aberdour 13.3392361220632North Queensferry 14.3833962761344Dalgety Bay 15.0082794626365Inverkeithing 15.7316327831032Kirkcaldy 17.9484646860063Glenrothes With Thornton 23.7022936117453

Page 27: Where’s My Data?

COLIN MACKAY

[email protected]

http://www.colinmackay.net

LOOKING FOR A HOME

Page 28: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

DISPLAY THE PROPERTIES

Page 29: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

SPATIAL INDEXING Decomposes space

into 4 levels of grid Level 1 is the top Cells are uniform in

a level A level can be a

4x4, 8x8 or 16x16 grid 8x8 by default

Page 30: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

RESTRICTIONS Table must have a primary key Primary key cannot subsequently be

changed. Not on views Maximum of 249 Spatial indexes per

column

Page 31: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

WHY HAVE MULTIPLE INDEXES ON ONE COLUMN

Where geometry/ geography sizes vary

e.g. Rail routes Small: Suburban

lines Large: Intercity lines

Page 32: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

SPATIAL INDEXING Supports

STIntersects STEquals STDistance

One Geography must be a point Both sides of the spatial operation must

have the same SRID

Page 33: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

SPATIAL INDEXING ON A GEOMETRY Must specify boundary of spatial area Additional methods supported

STContains STOverlaps STTouches STWithin

Page 34: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

AND THERE’S MORE! CodePlex project

More spatial methods Aggregations Scripts

http://www.codeplex.com/sqlspatialtools

Page 35: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

WHAT I’VE NOT MENTIONED GML

Import and export M and Z

Can store Cannot operate.

Other spatial Operations Geometry has more!

Visualisation .NET application

integration Data Importing

Page 36: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

GET MORE INFORMATION Slide Deck on my website

http://www.colinmackay.net Blog posts on Spatial Data

http://blog.colinmackay.net

Page 37: Where’s My Data?

HTTP://WWW.COLINMACKAY.NET

QUESTIONS

?