Komentáře k článku

GIS, PHP a SQL Server 2008

Geografické informační systémy (GIS) nabývají na stále větší důležitosti. Základem jsou, kromě dat, specializované databáze, které si poradí s úlohami typu „Najdi obce, které jsou do vzdálenosti 1 km od dálnice D1“. S tím pak samozřejmě souvisí vizualizace dat na mapách. Ukážeme si, jak vytvořit jednoduchou GIS aplikaci.

Zpět na článek

10 komentářů k článku GIS, PHP a SQL Server 2008:

  1. Jáchym Čepický

    PostGIS

    Ve světě GIS je „de-facto“ standardem PostGIS. Je to OpenSource nadstavba databáze PostgreSQL. Tu si může každý stáhnout a nainstalovat zadarmo a bez omezení, stejně jako PostGIS. Není snad ve světe FOSS4G (Free and Open Source Software for Geoinformatics) produkt, který neuměl s PostGISem pracovat. Existují převodní filtry (součástí distribuce) mezi PostGIS a ESRI Shapefile a OpenStreetMap. Pro vyhledávání nejvýhodnější cesty se doporučuje PgRouting a další a další nadstavby. PostGIS je certifikován na podporu OGC Simple Features Specification for SQL. Tolik velmi z rychlíku.

    4326 je kód souřadného systému WGS84, jak jej definuje EPSG. Není to proto jen tak ledasjaký kód, ale EPSG:4326. (Pokud si myslíte, že je to nepodstatný detail, nepište články o GIS).

    Otázka za 100 bodů: Jaký EPSG (nebo jiný) kód byste použil ve funkci STGeomFromText pro v ČR používaný souř. systém S-JTSK? A podporuje ho MS SQL 2008? Protože když chcete psát aplikace, mající co do činění např. s katastrem nemovitostí, je převod WGS84<->S-JTSK dosti zásadní.

    Komu PostgreSQL nestačí (do PostGIS se ale toho vejde opravdu hodně), tak používá Oracle Spatial

    Jinak si myslím, že článek patří spíš do kategorie PR.

    1. Štěpán BechynskýAutor příspěvku

      Re: PostGIS
      O tom, že kód 4326 je určen pro WGS84, včetně odkazu na vysvětlení, se dočtete přímo v článku. Windows Server 2008 podporuje 390 systémů definovaných v EPSG. Jejich přehled najdete v systémovém pohledu sys.spatial_reference_systems. Kód Jednotné trigonometrické sítě katrastrální je 4156. Co dostanu za 100 bodů?

      1. Jáchym Čepický

        Re: PostGIS

        Nic, protože jste neuhád'. Kód 4156 má projekci Lat/Long a Besselův elipsoid. Takže výsledek jsou stupně/minuty/vteřiny, ale S-JTSK je metrický systém, používající tzv. Křovákovo zobrazení. Data v KN (a vůbec všechno, co měří, a není to v „souřadnicích GPS“ – příšerný 'termín') používají přece metry (stopy, atd. podle místních zvyklostí), ale ne stupně. Ostatně, co vrátí funkce ST_Length(geometry), kde geometry je nějaká linie v EPSG:4156? Metry?

        -- vybere nejdelsi dalnici v CR z aktualni OSM. 
        -- Geometrie je ulozena ve sloupecku way v EPSG:4326, musi byt pred tim pretranformovana do 4156
        -- PostGIS
        select sum(length(ST_Transform(way,4156))) as len,name,ref  FROM cr_osm_line WHERE highway is not NULL and ref is not null group by name,ref order by len desc limit 1;
               len        | name | ref 
        ------------------+------+-----
         6.09415397247231 |      | D1
        

        je ve stupnich

        -- prevod do epsg:102067
        select sum(length(ST_Transform(way,102067))) as len,name,ref  FROM cr_osm_line WHERE highway is not NULL and ref is not null group by name,ref order by len desc limit 1; 
               len       | name | ref 
        -----------------+------+-----
         488855.79704467 |      | D1
        

        Je v metrech – tam i zpatky.

        Cimz si odpovidam na puvodni otakzu: To byl chytak, S-JTSK nema EPSG kód (resp. žádný použitelný) a obecně se používá ESRI:102067 (v praxi častěji EPSG:102067).

        No, ale aby nic nebylo tak jednoduché – definice pro 102067 se musí do všech databází/GISů a pod. doplnit ručně, protože takový kód vlastně neexistuje. Ale ukazovat příklad nad WSG84 mi opravdu nepřijde jako vhodné. GIS nejsou jenom GPSky.

        1. Štěpán

          Re: PostGIS
          Křovákovo zobrazení má již dávno svůj oficiální EPSG kód: 2065. Problém je v tom, že svislá osa je X a je orientována shora dolů (je tedy levotočivá). Protože větišna GIS software s takouvouto soustavou neumí pracovat (kdysi kromě sw TopoL, dnes nevím, jaký je aktuální stav), používají se souřadnice prohozené a záporně označené (tzv. ve 3. kvadrantu). Protože je to berlička a ne oficiální projekce, není ani v oficiální databázi EPSG. Třeba v budoucnu…?

          Použití zeměpisných souřadnic WGS84 pro tento typ aplikací mi připadá naprosto adekvátní, protože různé mapové API umějí právě s těmito souřadnicemi pracovat, jednak použití Křovákova zobrazení končí za hranicemi naší vlasti…

  2. xurpha

    RE: GIS, PHP a SQL Server 2008
    Zase ty Micro$osfti nesmysly? Podporu GIS má už i mysql, tak nechápu, co tady prudíte, jdete si na nejaky server pro klikajici blbecky! (navíc je to samý nesmyslný obrázky…)

    1. tomas

      RE: GIS, PHP a SQL Server 2008
      Jediný, kdo je tady blbeček, jste vy. Když se vám nelíbí články týkající se technologií jistých firem, tak je prostě nečtěte a nemusíte svůj názor všem vnucovat, nikdo na to není zvědavý. Co takhle místo nadávání napsat vlastní článek o GIS v MySQL, jenomže toho byste asi nebyl schopen soudě podle vašeho projevu.

  3. jos

    omg

    Několik dobře míněných rad pro vytváření databází

    Na co se často zapomíná u popisu jak vytvořit databázi, je, jak ji navrhnout. Nečiním si nárok zde popsat teorii relačních databází, ale spíše se jedná o dobře míněné rady, které jsou často ignorovány


    mám taky dobře míněný rady

    nejdřív jenom pro autora článku:

    • místo screenshotů ManagementStudia bych dodal DDL dotazy, klikat tabulky ve formulářích je krutost, tos mohl rovnou připojit nějaký to .chm
    • Pokud neděláte relace mezi souvisejícími tabulkami WTF? nepleť hlavu čtenářům touhle terminologií – anglicky relation, česky relace, česky v matematice množina, česky v SQL databázích tabulka nebo pohled. to co ty tady popisuješ je anglicky relationship, z důvodu nejednoznačnosti je v češtině lepší používat výhradně termín cizí klíč
    • Nečiním si nárok zde popsat teorii relačních databází – vůbec radši nepoužívej takový silný výrazivo, jak je vidno z příkládku s procedurou (hlavně z uvozujícího textu je v podstatě identická s prací s klasickým SQL) vůbec teorii relačních databází nerozumíš, zkus začít zde

    pro ostatní:

    • identity nepoužívat, mssql má už od verze 2005 (nikoliv v express edici, to je jen převlečenej Access) datovej typ uniqueidentifier (RTFM)
    • pokud se nechcete omrdat neustálým používním iconv jen kvůli tomu, že v microsoftím driveru pro php nejde nastavit výstupní kódování, použijte FreeTDS (používáme pro připojení k SQL 2005, .dll zde)
    • MSSQL nepoužívat, pokud to de. v korporátní sféře se dá pochopit, že člověk příde k projektu nad mssql, v ostatních případech je tu postgres
  4. Laďa

    Mapa je o 90 stupňů otočena

    Z přiložených zdrojů jsem si vyrobil SQL tabulky a ty jsem chtěl využít v reportu (reporting services). ČR je však o 90 st. otočena. Netušíte, jak to spravit?
    Děkuji

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=2982