12. Powtórka z matematyki W czasach szkoły średniej większość z nas miała lekcje geometrii. Na płaskim planie, na siatce rysowaliśmy: punkty, czasem łącząc je liniami często łącząc linie w kształty Trójkąty, kwadraty, romby oparte na siatce bazującej na Kartezjańskim Systemie Koordynatów Serwer SQL 2008 pozwala nam na przedstawianie danych reprezentowanych przez dwa wymiary, bardzo bliskie geometrycznym rysunkom z czasów szkolnych.
13. Powtórka z geografii Być może nie wszyscy o tym słyszeli, lub nie wszyscy pamiętają, ale… Obecnie ziemia nie jest płaska! Jest podobna do piłki !! Od kiedy ziemia nie jest płaska… nastąpiła zasadnicza zmiana w sposobie jej opisywania. Dalej używamy płaskich map (w samochodach, na wycieczce) ale musimy zwrócić uwagę na poziom dystorsji, zniekształceń obrazu. …[patrz: Grenlandia/Antarktyka]. SQL Server 2008 pozwala nam przedstawiać dane konkretne miejsce na mapie ziemi uwzględniając jej kulistą budowę.
14. Co to jest: Spatial Data [typy danych] 01 SQL Server 2008 wprowadza nowe typy danych umożliwiające gromadzenie, przetwarzanie i analizowanie danych lokalizacyjnych bezpośrednio w serwerze SQL, a co za tym idzie również w aplikacjach do niego podłączonych. Trzy najważniejsze pojęcia związane z danymi przestrzennymi: GEOGRAPHY - przechowywanie i przetwarzanie danych przestrzennych opartych na współrzędnych geodezyjnych {round-earthorgeodetic data}. Uwzględniają krzywiznę ziemi i służą do opisywania krajów, kontynentów, dróg, miast. DECLARE@geoggeography GEOMETRY - przechowywanie i przetwarzanie danych przestrzennych opartych na współrzędnych płaskich (planarnych) {flat-earth data}. Nie uwzględniają krzywizny ziemi i opisują względnie małe obiekty (np. pomieszczenia i figury). DECLARE @geomgeometry SPATIAL INDEX - pozwalający na osiągnięcie wysokiej wydajności przetwarzania danych przestrzennych.
15. Co to jest: Spatial Data [typy danych] 02 Standardy: opracowane przezOpenGeospatialConsortium (NGO). The Open Geospatial Consortium zdefiniowało podstawowe typy danych jakich używamy do opisywania wszystkiego co ma związek z przestrzennymi danymi geograficznymi i geometrycznymi: Point {punkt} Linestring {linia} Polygon {kształt} MultiPoint {wiele punktów} MultiLinestring {wiele linii} MultiPolygon {wiele kształtów} GeomCollection {kolekcja}
16. Praca z danymi przestrzennymi - Implementacja Typy danych zawarte są w Simple Feature Access, zaś opisane w dwóch dokumentach: OpenGIS Implementation Specification for Geographic information - Simple feature access - Part 1: Common architecture OpenGIS Implementation Specification for Geographic information - Simple feature access - Part 2: SQL option Reprezentacja danych została opracowana przez OGC i dotyczy zarówno danych Geometry jak i Geography, dla Points, Linestrings i innych. SQL Server daje nam: Well-Known Text (WKT), [Longitude/Latitide] Well-Known Binary (WKB), [Longitude/Latitide] Geography Markup Language (GML). [Latitude/Longitude] WKT Syntax: POINT(10 10) POINT(10 10 10 1) // X Y Z M shown here LINESTRING(0 0, 10 10) POLYGON((0 0, 0 10, 10 10, 10 0, 0 0)) POLYGON((0 0, 0 10, 10 10, 10 0, 0 0), (1 1, 4 5, 4 1, 1 1))
20. Praca z danymi przestrzennymi – Współpraca z .NET Zapis tych samych wartości w różny sposób: SQL DECLARE @MyGeometry geometry SET @MyGeometry = geometry::Point(10, 20, 0) SELECT @MyGeometry.ToString() .NET Imports Microsoft.SqlServer.Types Module MyModule Sub Main() Dim MyGeometry As New SqlGeometry() MyGeometry = SqlGeometry.Point(10, 20, 0) Console.Write(MyGeometry.ToString()) End Sub End Module C# using Microsoft.SqlServer.Types Class MyClass { static void Main(string[] args) { SqlGeometry MyGeometry = SqlGeometry,Point(10, 20, 0) System.Console.Write(MyGeometry.ToString()); } } WYNIK DLA WSZYSTKICH TRZECH OPCJI:
21. Tworzenie Danych Przestrzennych - Geometry Do tworzenia danych przestrzennych geometrycznych używamy: ^ STGeomFromText, ^ STPointFromText, ^ STLineFromText, ^ STPolyFromText, ^ STMPointFromText, ^ STMLineFromText, ^ STMPolyFromText, ^ STGeomCollFromText, ^ STGeomFromWKB, ^ STPointFromWKB, ^ STLineFromWKB, ^ STPolyFromWKB, ^ STMPointFromWKB, ^ STMLineFromWKB, ^ STMPolyFromWKB, ^ STGeomCollFromWKB Tylko statyczne dane!!!
24. Tworzenie danych przestrzennych – Import danych Dane przestrzenne możemy importować do bazy SQL Server z przygotowanych przez nas plików (również płaskich „txt”) Dane przestrzenne możemy tez importować ze źródeł internetowych: US CensusBureauDivision– wysokiej jakości dane, zawierające bardzo dużą ilość informacji geograficznych – (ulice, kody pocztowe, drogi itp.) The United NationsGeo Data Portal – globalne, narodowe, regionalne, podregionalne dane statystyczne i przestrzenne, zawierające informacje o populacji, zdrowiu, klimacie, katastrofach The Global AdministrativeAreasDatabase– granice krajów, stanów, prowincji, serwowane przez uniwersytet w Berkely The US National Geospatial-InteligenceAgency– znajdujące się poza terytorium USA miejsca, lokalizacje, urzędy The US Government „Geospatial Non Stop” – portal z dużą ilością linków do stron gdzie można pobrać dane o ekologii, zdrowiu, demografii, transporcie. Polecania przydane przy imporcie: OPENROWSET, BULK INSERT – import ustrukturyzowanych danych jedna metoda BULK T-SQL ALTER TABLE – import danych geograficznych lub geometrycznych do nowych kolumn w tabeli T-SQL UPDATE – używane przede wszystkim do importu kolumn z koordynatami
26. Przedstawianie danych – Management Studio 1 DEMO 3 – DECLARE@Sometning [H5N1 Flu & Police Radar]
27. Zagadnienia zaawansowane na następne sesje Spatial Data Analysys sprawdzanie, modyfikowanie właściwości pojedynczych obiektów ModyfyingSpatialObjects tworzenie nowych obiektów bazujących na istniejących TestingSpatialRelationship Metody relacji miedzy obiektami przestrzennymi SpatialIndexing Poprawianie wydajności, uwalnianie nieużywanych zasobów,
28. Materiały dodatkowe - linki BeginningSpatialwith SQL Server 2008 <apress – AlastairAitchison> [http://www.apress.com/book/view/1430218290] BeginningSpatialwith SQL Server 2008 <przykłady, kody itp..> [http://www.apress.com/resource/bookfile/4279] SQL Server 2008 Developer Training Kit [http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=e9c68e1b-1e0e-4299-b498-6ab3ca72a6d7] Prezentacje (Spatial); Dema (SQL Server 2008 All-UpSpatial Demo & SpatialTypes Demo); Hands-onLabs (UsingSpatial Data in TSQL & UsingSpatial Data inManagedCode) T-SQL 2008 (cz. 4) - Przestrzenne typy danych i opcja Filestream <Marcin Szeliga> [http://wss.pl/Articles/9643.aspx/] Serwer SQL 2008. Administracja i programowanie <Szeliga, Widera, Mendrala, Potasiński> [http://helion.pl/ksiazki/ssql28.htm] SQL Server Spatial Data Technology Center http://www.microsoft.com/sql/2008/technologies/spatial.mspx Whitepaper: Delivering Location Intelligence with Spatial Data http://www.microsoft.com/sql/techinfo/whitepapers/spatialdata.mspx MSDN Webcast: Building Spatial Applications with SQL Server 2008, Event ID: 1032353123 Whitepaper: What's New for XML in SQL Server 2008 http://www.microsoft.com/sql/techinfo/whitepapers/sql_2008_xml.mspx Whitepaper: Managing Unstructured Data with SQL Server 2008 http://www.microsoft.com/sql/techinfo/whitepapers/sql_2008_unstructured.mspx
29. Materiały dodatkowe - linki Microsoft Spatial Data Portal (j. pol.) [http://www.microsoft.com/poland/sql/wp-sql-2008-spatial-data.aspx] Saving Virtual Earth Polygons to SQL Server 2008 (j. ang.) [http://channel9.msdn.com/posts/keydet/Saving-Virtual-Earth-Polygons-to-SQL-Server-2008/] Rendering Polygons from SQL Server 2008 on Virtual Earth (j. ang.) [http://channel9.msdn.com/posts/keydet/Rendering-Polygons-from-SQL-Server-2008-on-Virtual-Earth/] Spatial Data to Help Car Radios Track the Big Game (j. ang.) [http://www.eweek.com/article2/0,1759,2246219,00.asp] Microsoft Readies SQL Server CTP-5 with Spatial Datatype Support (j. ang.) [http://www.directionsmag.com/article.php?article_id=2614&trv=1] SQL Server 2008 spatial data brings locations into view (j. ang.) [http://www.networkworld.com/community/node/21879] Microsoft Joins OGC (Oct. 23, 2007) (j. ang.) [http://home.businesswire.com/portal/site/home/index.jsp?epi-content=NEWS_VIEW_POPUP_TYPE&newsId=20071023006103&ndmHsc=v2*A1193137200000*B1193175376000*DgroupByDate*J1*N1000837&newsLang=en&beanID=202776713&viewID=news_view_popup] Microsoft Shares Details on SQL Server 2008 Spatial Support (j. ang.) [http://www.directionsmag.com/editorials.php?article_id=2477&trv=1]
Do wymiarowania danych geometrycznych możemy użyć centymetrów, cali, metrów, stóp, pikseli
Odp: Katmai, czyli co nowego w SQL Server 2008 CTP 10.06.2007 (N) 17:41 … Ilość nowych funkcjonalności jest niewielka (i dobrze, bo nie trzeba się napinać, żeby wszystkie szybko poznać). Jestem zdania, że lepiej dla nas i dla MS będzie, jeżeli w SQL Server 2008 nie pojawi się za wiele nowinek (zwłaszcza tak ciężkich i specyficznych jak spatial data)…
POINT: A Point is an exact location, and is defined in terms of an X and Y pair of coordinates, as well as optionally by a Z (elevation) and M (measure) coordinate. It does not have a length or any area associated with it. Points are used as the fundamental building blocks of more complex spatial types. Note: Z and M are recognized and maintained by SQL Server 2008 if supplied, but are not used in any calculations).LINESTRING: A line segment is the shortest path between two points. A LineString, then, is defined as the path between a sequence of points (i.e., a series of connected line segments). It is considered simple if it does not cross over itself, and is considered a ring if the starting point is the same as the ending point. A LineString is always considered to be a one dimensional object; it has length, but does not have area (even if it is a ring).POLYGON: A Polygon is a closed two-dimensional shape defined by a ring. It has both length and area. A Polygon may also have holes in its interior (a hole is defined by another Polygon). Area within a hole is considered to be exterior to the Polygon itself. COLLECTIONS: In addition to the single instance types (Point, LineString, and Polygon), there is also a type that can hold a collection of instances. This is similar to a list or an array in most programming languages. The most generic type of collection is the GeomCollection, whose members can be of any type. Deriving from GeomCollection are MultiPolygon, MultiLineString, and MultiPoint. As their names suggest, the members of these collection types must be of the single instance type (i.e., MultiPoint can only contain Points, etc).
People with backgrounds in mathematics may be compelled to put commas between each coordinate, but in WKT, a space is used to separate the coordinates of a point, and a comma is used to separate points within a more complex type. Parentheses are used to group points into a single shape.