Dnes: 24. února 2017    | Registrace | Hledáme | Redakce | Info | Testy | Školení | Ocenění | Nápověda | Čtenář: nepřihlášen

Rychlé odkazy
  • Hlavní stránka
  • Seznam rubrik
  • Ankety
  • Editoriály
  • TOP 15
  • KONFERENCE 2008
  • KONFERENCE 2007
  • KONFERENCE 2006
  • KONFERENCE 2005
  • KONFERENCE 2004
  • Sborník
  • Testy
  • Virtuální školení
  • Personalizace


  • Hledáte práci?
    Hledáme redaktora - pojďte s námi tvořit Databázový svět!

    Vyhledávání

    Hledej
    na Databázovém světě!



    Rozšířené vyhledávání

    Rubriky
    Aktuality
    Bezpečnost
    Business
    Česká scéna
    Datové sklady
    Dokumentace
    Dotazovací jazyky
    Hardware
    Historie
    Komentáře
    Literatura
    Metodologie
    Nondb
    Open Source
    Poradna
    Produkty
    Případové studie
    Redakce
    Rozhovory
    Standardy
    Technologie
    Tipy - triky
    Tiskové zprávy
    Vývoj
    Vývojové nástroje
    Zajímavosti

    Co je to?
    Replikace
    Replikace slouží pro zajištění konzistentnosti dvou a více databází, nejčastěji pak o stejné struktuře v rámci distribuovaného zpracování. Vyspělé SŘBD replikace podporují, případně lze použít řešení třetích stran či replikační logiku zajistit vlastními postupy.

    Akce
    Dynamická Datová Centra
    - na semináři se seznámíte s komplexním řešením a koncepcí Dynamických Datových Center od Fujitsu Siemens Computers se speciálním důrazem na řešení FlexFrame.

    Textová inzerce
    IBPhoenix - Vše o InterBase a Firebirdu.

    Smějete se rádi? - Pak je pro vás Vtipník to pravé!

    Prodejce reklamy - Hledáme schopného prodejce reklamního prostoru, možnost i externí spolupráce.

    Přihlášený čtenář
    Nepřihlášený čtenář

    O portálu
    Databázový svět
    ISSN: 1213-5933

    Web je optimalizován pro rozlišení 1024x768, nicméně kromě větších rozlišení podporujeme i 800x600. Podrobnosti najdete zde.

    Chcete-li mít kdykoliv možnost zkontrolovat obsah našeho portálu, můžete využít podporu rss. Podrobnosti najdete zde.
    MS SQL 2008 – prostorová data podruhé


    [Technologie] - V minulém pokračování o využití prostorových dat na MS SQL Serveru 2008 jsme se seznámili s naprostými základy. Po teoretickém úvodu se nyní pustíme rovnou do praktického zkoušení.



    Ačkoli prostorová data obecně nabízejí mnoho "objektů", se kterými je možné přímo pracovat, v tomto seriálu se omezíme na základní – bod, linie a polygon. Vytvořme jednoduchou tabulku pro testování:

    create table test (prostorova_data geography);
    

    Pro další účely seriálu budeme vždy pracovat s typem geography. V případě odlišností od geometry bude rozdíl uveden.

    Aby bylo možné zapsat objekty v SQL apod., existuje specifický formát nazvaný jako WKT (Well Known Text). Jedná se o textový zápis různých prostorových objektů (podobně jako WKB je binární reprezentace), který je podporován mnoha systémy, MS SQL Server 2008 nevyjímaje.

    Bod
    Bod reprezentuje "tečku" v prostoru. Je určen svými souřadnicemi. Zápis je velmi jednoduchý:

    POINT(1 2)
    

    Případně zápis speciálního "prázdného"bodu:

    POINT EMPTY
    

    Všimněte si, že mezi souřadnicemi není čárka nebo středník, odděleny jsou mezerou. Abychom jej mohli na straně databáze použít, je třeba vytvořit z tohoto textu instanci objektu geography. K tomu slouží metoda STGeomFromText.

    declare @bod geography;
    set @bod = geography::STGeomFromText('POINT(1 2)', 4326);
    
    select @bod.ToString();
    
    insert into test values (@bod);
    

    Metoda STGeomFromText vyžaduje druhý parametr tzv. spatial reference ID. Prozatím stačí, když vždy použijete 4326 odpovídající systému GPS (WGS84). Podrobnější rozbor bude v závěrečném dílu.

    Linie
    Linii je možné si představit jako "lomenou (rovnou) čáru". V GIS systémech může typicky reprezentovat vedení potrubí apod. Ve WKT formátu je označena LINESTRING. Jedná se o sekvenci bodů, které danou sérii úseček vymezují. Např.:

    LINESTRING(1 2, 3 4, 7 8)
    

    Pro práci na straně serveru:

    declare @cara geography;
    set @cara = geography::STGeomFromText('LINESTRING(1 2, 3 4, 7 8)', 4326);
    
    select @cara.ToString();
    
    insert into test values (@cara);
    

    Linie může být složena z libovolného množství úseček. Jednotlivé body jsou virtuálně spojeny a vznikne jedna lomená čára.

    Polygon
    Polygon, jak již název napovídá, si můžeme představit jako mnohoúhelník. Avšak s několika vylepšeními. Bystré čtenáře jistě napadlo, proč polygony neřešit jako uzavřenou lomenou čáru? Ve skutečnosti je polygon zapsán jako série bodů. Ale právě informace, že se jedná o polygon a nikoli o náhodou spojenou čáru přidává na možnostech. A mimo jiné u polygonů jsou povoleny díry (Ty by také bylo možné reprezentovat linií, ale již vidíme, že vhodné obalení do vlastního objektu se nám rýsuje.). Zápis je opět velmi přímočarý:

    POLYGON((1 1, 5 1, 1 5, 1 1))
    

    Případně polygon s dírou:

    POLYGON((1 1, 5 1, 1 5, 1 1), (2 2, 2 3, 3 3, 3 2, 2 2))
    

    Je důležité poznamenat, že orientace polygonu (jak jdou body za sebou) má velký význam. MS SQL Server 2008 vyžaduje, aby "vnější" polygon byl orientován protisměru hodinových ručiček a díry po směru. Zde trochu zjednodušuji, neboť se stačí podívat na polygon „zespoda“ a orientace je opačná. Nicméně budeme-li polygon procházet, musíme mít obsah na levé straně.

    Pro práci na straně serveru:

    declare @polygon geography;
    set @polygon = geography::STGeomFromText(
      'POLYGON((1 1, 5 1, 1 5, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))', 4326);
    
    select @polygon.ToString();
    
    insert into test values (@polygon);
    

    Polygony dávají obrovské možnosti co s nimi vytvořit. Na internetu můžete nalézt polygony reprezentující velká světová města apod. A díky dírám a orientaci, která je ještě k tomu mezi různými systémy různá (např. ESRI má orientaci opačnou), můžete s polygony zažít "zajímavé" chvilky.

    V příštím díle se podíváme na základní metody pro práci s prostorovými daty jako např. průniky, incidence atp.

    Nechcete-li čekat na jednotlivé díly, můžete získat seriál zcela zdarma v PDF podobě již dnes.


    Související články:
    MS SQL 2008 – prostorová data počtvrté (07.01.2010)
    MS SQL 2008 – prostorová data potřetí (01.12.2009)
    MS SQL 2008 – prostorová data poprvé (12.10.2009)

    ( Celý článek! | Autor: Jiří Činčura | Počet komentářů: 0 | Přidat komentář | Informační e-mailVytisknout článek )

    Vyhledávání
     

    Anketa
    Kolik ročně utratíte za dovolené?

    Nic 
     (958 hl.)
    Do 1 000,- Kč 
     (757 hl.)
    Do 10 000,- Kč 
     (718 hl.)
    Do 25 000,- Kč 
     (852 hl.)
    Do 50 000,- Kč 
     (745 hl.)
    Do 75 000,- Kč 
     (777 hl.)
    Více než 75 000,- Kč 
     (732 hl.)

    Celkem hlasovalo: 5539


    Poslední komentáře
    frontierd@126.com
    frontierd@126.com
    frontierd@126.com
    c
    http://www.coachoutl

    Newsletter
    Přihlaste si nezávazně - i bez registrace - odběr informačního newsletteru. Podrobné informace najdete zde.

    Emailová adresa:


    Kalendář
    <<  Únor  >>
    PoÚtStČtSoNe
      12345
    6789101112
    13141516171819
    20212223242526
    2728     

    Redakci připojuje


    Nejčtenější

    Databáze je prázdná!


    Nejvíce komentářů

    Databáze je prázdná!


    Reklama






    Nenechte si ujít články na dalších webech




    Na této stránce použité názvy programových produktů, firem apod. mohou být ochrannými známkami
    nebo registrovanými ochrannými známkami příslušných vlastníků.

    Databázový svět | dfKlub - digitální fotografie | Vtipník - vtipy přímo k Vám | Reminder - přestaňte zapomínat | Databázový svět

    Copyright (c) 2004 AVRE Publishing, spol. s r.o. Všechna práva vyhrazena