P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008
description
Transcript of P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008
![Page 1: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/1.jpg)
Predstavenie podpory Geo-Spatial dát na SQL Serveri 2008
Igor Stanek, Chastia s.r.o., Chief Technology Officer
Microsoft MVP
![Page 2: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/2.jpg)
2
Agenda• Priestorové dáta• Aplikácie pracujúce s priestorovými dátami• Podpora v SQL Serveri 2008• Typy súradníc• Svetový geodetický systém• Nové dátové typy• Reprezentácia dát• Indexovanie
![Page 3: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/3.jpg)
3
Priestorové dáta• Vektorové
• Body• Čiary• Polygóny
• Rastrové• Satelitné snímky• Letecké fotografie
![Page 4: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/4.jpg)
4
Mapové aplikácie• Mnoho aplikácií využíva mapovanie• Mapy môžu byť hlavným výstupom pre tieto
aplikácie
• Príklady:• Obchodné vizualizácie (Virtual Earth)• Katastrálne aplikácie• GISy• Facility Management• a mnohé ďalšie...
![Page 5: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/5.jpg)
5
Aplikácie bez máp• Niektoré aplikácie používajú spatial dáta bez
použitia máp
• Príklady:• Vyhľadávanie spojov MHD• ...
![Page 6: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/6.jpg)
6
SQL Server 2008• Nová podpora pre priestorové dáta• Podpora vektorových dát• Podpora geo-priestorových dát
• Priestorové dáta s umiestnením na povrchu Zeme• 2 druhy súradníc
• Planárne • Geodetické
• 2D
![Page 7: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/7.jpg)
7
Ukážkový dotaz
SELECT *FROM roads WHERE roads.geom.Intersects(@ms)=1
![Page 8: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/8.jpg)
8
Zložitejšie výpočty...
![Page 9: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/9.jpg)
9
Planárne vs. Geodetické súradniceModel plochej Zeme Model zaoblenej Zeme
![Page 10: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/10.jpg)
10
Kedy použiť jednotlivé typyPlanárne – plochá predstava Zeme
• Lokálne grafické systémy a interiéry budov
• Čiary, body a oblasti pomocou súradníc X, Y
• Jednoduchšie výpočty
Geodetické – zaoblená Zem
• Geodetický model – Glóbus
• Čiary, body a oblasti pomocou zemepisnej dĺžky a šírky
• Umiestnenie reštaurácií, kín, divadiel...
• Zložitejšia aritmetika
![Page 11: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/11.jpg)
11
Geografické dátové typy• SQLCLR od verzie SQL Server 2005• Tvorba kódu a dátových typov pomocou CLR
• Pomocou ľubovoľného .NET jazyka
• Spatial typy sú tiež implementované v CLR• SQL User Defined Types
• Assembly• Microsoft.SqlServer.Types
![Page 12: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/12.jpg)
12
Geografické dátové typyGeometry
Geography
• Možná práca pomocou ADO.NET• Jednoduché prepojenie na mapové systémy
• Virtual Earth, Google Maps
![Page 13: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/13.jpg)
13
Svetový geodetický systém WGS 84• Určovanie polohy pomocou GPS
• Najčastejšie systém World Geodetic System - WGS• Navrhnutý v roku 1984
• WGS 84• Spatial Reference System (SRID = 4326)• Definícia súradnicového systému• Pravotočivá kartézska sústava súradnic so stredom v
ťažisku Zeme• Kladná os X smeruje k priesečníku nultého poludníku a rovníku• Kladná os Z k severnému pólu• Kladná os Y je na X a Z kolmá v smere doľava (90° východnej
dĺžky a 0° šírky)
![Page 14: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/14.jpg)
14
Geometry a Geography• Abstraktné dátové typy
• V jednom stĺpci môžeme mať uložené rôznorodé geo-priestorové informácie
Geometry
SurfaceCurve GeomCollectionPoint
LineString Polygon MultiCurveMultiSurface MultiPoint
MultiPolygon MultiLineString
![Page 15: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/15.jpg)
15
Dátové typy - Point• Presná pozícia• Súradnice: X, Y• Nepovinné: Z, M
• Z – výška• M – mierka• Je možné definovať, ale nepoužívajú sa pri
výpočtoch
![Page 16: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/16.jpg)
16
Dátové typy – LineString• Line
• úsečka medzi 2 bodmi• LineString
• úsečky medzi sekvenciou bodov• Simple LineString
• ak sa úsečky nepretínajú• Ring LineString
• ak je počiatočný a koncový bod rovnaký
• Vlastnosti• Dĺžka
![Page 17: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/17.jpg)
17
Dátové typy – Polygon• Uzavretý 2D útvar
• Definovaný pomocou Ring LineString• Môže obsahovať diery
• Vlastnosti• Dĺžka• Plocha
![Page 18: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/18.jpg)
18
Dátové typy – Collection• Kolekcie typov
• Point• LineString• Polygon
![Page 19: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/19.jpg)
19
Reprezentácia dát• Podľa konzorcia OGC• Podpora 3 formátov
• Well-Known Text (WKT)• Well-Known Binary (WKB)• Geography Markup Language (GML)
• Najčitateľnejší zápis pre človeka - WKT
POINT(10 10)POINT(10 10 10 1) -- súradnice X Y Z M LINESTRING(0 0, 10 10)POLYGON(0 0, 0 10, 10 10, 10 0, 0 0)
![Page 20: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/20.jpg)
20
Práca s geospatial typmi• Práca s Geometry a Geography je úplne
rovnaká• Vytvorenie inštancie
DECLARE @g Geometry
SET @g = Geometry::STGeomFromText('LINESTRING(0 0, 10 10, 21 2)', 0)
SET @g = Geometry::Parse('LINESTRING(0 0, 10 10, 21 2)')
-- tu sa implicitne zavolá Parse()SET @g = 'LINESTRING(0 0, 10 10, 21 2)'
![Page 21: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/21.jpg)
21
Možnosti vytvorenia inštancií• Použitím Well-Known Text (WKT)
• STGeomFromText, Parse, STPointFromText, STMPointFromText, STLineFromText, STMLineFromText, STPolyFromText, STMPolyFromText, STGeomCollFromText
• Použitím Well-Known Binary (WKB)• STGeomFromWKB, STPointFromWKB,
STMPointFromWKB, STLineFromWKB, STMLineFromWKB, STPolyFromWKB, STMPolyFromWKB, STGeomCollFromWKB
• Použitím GML• GeomFromGml
![Page 22: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/22.jpg)
22
ŽIVÁ UKÁŽKA 1Práca s inštanciami
![Page 23: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/23.jpg)
23
ŽIVÁ UKÁŽKA 2Práca s dátovým typom GEOMETRY v C# aplikácii
![Page 24: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/24.jpg)
24
Transformácie• Existuje množstvo metód na transformáciu
• Geometry -> Geometry• Geography -> Geography
DECLARE @g GEOMETRY SET @g = 'LINESTRING ( 69 26, 69 23, 69 21, 67 20, 65 20, 63 18, 58 17, 52 17, 51 17, 49 17, 45 18, 44 20, 44 21, 42 26, 42 29, 42 32, 42 35, 43 35, 47 38, 50 41, 55 42, 58 42, 65 44, 66 44, 67 44, 68 45, 69 47, 70 48, 70 50, 71 51, 70 56, 68 60, 68 63, 66 65, 65 66, 63 68, 60 71, 59 71, 57 71, 55 71, 51 69, 45 65, 44 63, 42 62, 41 59, 41 57, 41 56, 41 54, 42 53 )'
![Page 25: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/25.jpg)
25
Príklady transformácií I.SELECT @g.STEnvelope().ToString()
Result: POLYGON ((41 17, 71 17, 71 71, 41 71, 41 17))
SELECT @g.STConvexHull().ToString()
Result: POLYGON ((71 51, 70 56, 68 63, 66 65, 65 66, 63 68, 60 71, 59 71, 57 71, 55 71, 51 69, 45 65, 42 62, 41 59, 41 57, 41 56, 41 54, 42 26, 44 20, 45 18, 49 17, 51 17, 52 17, 58 17, 63 18, 67 20, 69 21, 71 51))
SELECT @g.STBuffer(5).ToString()
Result: POLYGON ((49 12, 51 12, 52 12, 58 12, 58.246719360351562 12.00609016418457, 58.492688179016113 12.024333953857422, 58.737458229064941 12.054683685302734, 58.98058032989502 12.097097396850586, (... snipped for clarity ...) 48.693824768066406 12.009382247924805, 49 12))
![Page 26: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/26.jpg)
26
Príklady transformácií II.SELECT @g.STIntersection(@h).ToString();
Result: POLYGON ((30 30, 40 30, 40 40, 30 40, 30 30))
SELECT @g.STSymDifference(@h).ToString();
Result: MULTIPOLYGON (((40 30, 50 30, 50 50, 30 50, 30 40, 40 40, 40 30)), ((10 10, 40 10, 40 30, 30 30, 30 40, 10 40, 10 10)))
SELECT @g.STUnion(@h).ToString();
Results: POLYGON ((10 10, 40 10, 40 30, 50 30, 50 50, 30 50, 30 40, 10 40, 10 10))
![Page 27: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/27.jpg)
27
Inštančné metódy - Geography• STArea• STAsBinary• STAsText• STBoundary• STBuffer• STCentroid• STContains• STConvexHull• STCrosses• STDifference• STDimension• STDisjoint• STDistance• STEndpoint• STEnvelope• STEquals• STExteriorRing• STGeometryN• STGeometryType• STInteriorRingN
• STIntersection• STIntersects• STIsClosed• STIsEmpty• STIsRing• STIsSimple• STIsValid• STLength• STNumGeometries• STNumInteriorRing• STNumPoints• STOverlaps• STPointN• STPointOnSurface• STRelate• STSrid• STStartPoint• STSymDifference• STTouches• STUnion
• STWithis• STX• STY• AsGml• AsTextZM• BufferWithTolerance• InstanceOf• IsNull• M• MakeValid• Reduce• ToString• Z• Lat• Long• NumWings• RingN
![Page 28: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/28.jpg)
28
• STArea• STAsBinary• STAsText• STBoundary• STBuffer• STCentroid• STContains• STConvexHull• STCrosses• STDifference• STDimension• STDisjoint• STDistance• STEndpoint• STEnvelope• STEquals• STExteriorRing• STGeometryN• STGeometryType• STInteriorRingN
• STIntersection• STIntersects• STIsClosed• STIsEmpty• STIsRing• STIsSimple• STIsValid• STLength• STNumGeometries• STNumInteriorRing• STNumPoints• STOverlaps• STPointN• STPointOnSurface• STRelate• STSrid• STStartPoint• STSymDifference• STTouches• STUnion
• STWithin• STX• STY• AsGml• AsTextZM• BufferWithTolerance• InstanceOf• IsNull• M• MakeValid• Reduce• ToString• Z• Lat• Long• NumWings• RingN
![Page 29: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/29.jpg)
29
ŽIVÁ UKÁŽKA 3Práca s dátovým typom GEOGRAPHY v ASP.NET aplikácii s vizualizáciou pomocou Virtual Earth
![Page 30: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/30.jpg)
30
Indexovanie• Nový typ indexu
• SPATIAL INDEX
• Urýchlenie práce s dátami typu Geometry alebo Geography
CREATE SPATIAL INDEX sixdON T(geography)
![Page 31: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/31.jpg)
31
ŽIVÁ UKÁŽKA 4Hotová aplikácia postavená nad SQL Server 2008 Spatial Datawww.ontheroad.to; pavlis.ontheroad.to
![Page 32: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/32.jpg)
32
Odkazy• 8 dielny seriál
• http://jasonfollas.com/blog/archive/2008/03/14/sql-server-2008-spatial-data-part-1.aspx
• Geospatial Data Generator• http://mikeo.co.uk/demo/sqlspatial/default.aspx
• http://www.microsoft.com/sqlserver/2008/en/us/spatial-data.aspx
• MSDN Library• http://msdn.microsoft.com/en-us/library/bb933790(S
QL.100).aspx
![Page 33: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/33.jpg)
33
RÝCHLOSTNÁ SÚŤAŽ Aký systém súradníc sa používa najčastejšie v GPS?
?
![Page 34: P r edstaven ie podpory Geo-Spatial dát na SQL Serveri 2008](https://reader035.fdocuments.net/reader035/viewer/2022062222/5681650a550346895dd77e1e/html5/thumbnails/34.jpg)
Predstavenie podpory Geo-Spatial dát na SQL Serveri 2008
Igor Stanek, Chastia s.r.o., Chief Technology Officer