Dnes: 26. června 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?
    SŘBD
    (Systém řízení báze dat)

    Programový systém umožňující vytváření, údržbu a použití báze dat. Podle komplexnosti je možné SŘBD rozdělit na nižší (např. PC Fand), střední (FoxPro) a vyspělé (Oracle 9i).

    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 potřetí


    [Technologie] - V minulém pokračování našeho seriálu o prostorových datech v MS SQL serveru jsme si ukázali, co jsou objekty bod, linie a polygon a jak je zadat, případně chápat. Protože však pouhé zadávání nijak speciálně nevyužívá možností práce s prostorovými daty, ukážeme si dnes několik základních metod, které máme k dispozici.



    Vzdálenost dvou bodů
    První metodou je STDistance. Jak již název napovídá, tato metoda vrátí (nejkratší samozřejmě) vzdálenost mezi dvěma body (elementy).

    Pokud tedy zavoláme:

    declare @g1 geography;
    declare @g2 geography;
    set @g1 = geography::STGeomFromText('POINT(51 15)', 4326);
    set @g2 = geography::STGeomFromText('POINT(50 14)', 4326);
    
    select @g1.STDistance(@g2);
    

    zjistíme, že vzdálenost těchto dvou bodů je přibližně 154,5 km, vzdušnou čarou. Operace je samozřejmě reflexivní – vzdálenost A-B je stejná jako B-A.

    Obal/obalová křivka
    Často je potřeba již existující element "obalit" a vytvořit jej tak "tlustší". Například pro zjištění, jestli všechny domy mají předepsaný odstup od vedení inženýrské sítě. Pro tento účel slouží metoda STBuffer (případně rozšířená BufferWithTolerance).

    Nejjednodušší je vytvoření obalu kolem bodu:

    declare @g geography;
    set @g = geography::STGeomFromText('POINT(49.414413 14.657804)', 4326);
    select @g.STBuffer(2000), @g.STBuffer(2000).ToString();
    

    Výsledkem obalu kolem bodu je samozřejmě polygon připomínající kruh. V tomto konkrétním případě 2km kruh kolem města Tábor.

    V případě aplikace na linii je výsledkem "tlustá čára" se zakulacenými konci:

    declare @g geography;
    set @g = geography::STGeomFromText('LINESTRING(2 1, 3 1)', 4326);
    select @g.STBuffer(1000), @g.STBuffer(1000).ToString();
    

    Průnik
    Velmi častou úlohou je zjištění, zdali bod leží v daném obdélníku. Typicky při zobrazení výřezu mapy. Pro tento účel existuje metoda STIntersects, která vrátí 1, pokud první element proniká druhý, jinak 0.

    Zjištění všech bodů, které leží v daném polygonu (čtverec):

    declare @g geography;
    set @g = geography::STGeomFromText('POLYGON((2 1, 2 2, 1 2, 1 1, 2 1))', 4326);
    
    select prostorova_data from test where @g.STIntersects(prostorova_data) = 1;
    

    Průnik, rozdíl, sjednocení
    Protože jsme v předchozím odstavci tak trochu nakousli množinové operace, zmíníme nakonec tři základní množinové operace – průnik, rozdíl a sjednocení. Průnik je reprezentován metodou STIntersection, rozdíl STDifference a sjednocení STUnion. Všechny metody vrátí jako výsledek element, který odpovídá provedené operaci.

    Plocha
    Poslední metoda, na kterou se dnes podíváme, je metoda pro zjištění plochy elementu (tedy polygonu). Metoda se příznačně jmenuje STArea a neočekává žádný parametr.

    Plochu čtverce použitého výše u metody STIntersects spočítáme:

    declare @g geography;
    set @g = geography::STGeomFromText('POLYGON((2 1, 2 2, 1 2, 1 1, 2 1))', 4326);
    
    select @g.STArea();
    

    Zjistíme, že je to přibližně 12 tis. km2 (pozor pracujete na zeměkouli, nikoli v rovině).

    Ačkoli MS SQL Server 2008 poskytuje více funkcí nad prostorovými daty, i s několika představenými základními můžete řešit složité úlohy.

    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 podruhé (21.10.2009)
    MS SQL 2008 – prostorová data poprvé (12.10.2009)

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

    Vyhledávání
     

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

    Nic 
     (1291 hl.)
    Do 1 000,- Kč 
     (910 hl.)
    Do 10 000,- Kč 
     (855 hl.)
    Do 25 000,- Kč 
     (1114 hl.)
    Do 50 000,- Kč 
     (875 hl.)
    Do 75 000,- Kč 
     (1012 hl.)
    Více než 75 000,- Kč 
     (850 hl.)

    Celkem hlasovalo: 6907


    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ář
    <<  Červen  >>
    PoÚtStČtSoNe
       1234
    567891011
    12131415161718
    19202122232425
    2627282930  

    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