Wykorzystanie otwartych standardów i wolnego oprogramowania

Transkrypt

Wykorzystanie otwartych standardów i wolnego oprogramowania
Wykorzystanie otwartych standardów
i wolnego oprogramowania
przy udostępnianiu
polskich zasobów geoinformacyjnych
Izabela Basista, Jarosław Bydłosz, Piotr Cichociński
Wydział Geodezji Górniczej i Inżynierii Środowiska
Katedra Geomatyki
II Konferencja WOLNE OPROGRAMOWANIE W GEOINFORMATYCE
Wrocław, 13-14 maja 2010 r.
INSPIRE
• przechowywanie, udostępnianie oraz
utrzymywanie danych przestrzennych na
odpowiednim szczeblu
• łączenie w jednolity sposób danych
przestrzennych pochodzących z różnych
źródeł
• wspólne korzystanie z udostępnianych
danych przez wielu użytkowników i wiele
aplikacji
Wolne oprogramowanie
• gvSIG
• OpenJUMP
• QuantumGIS
Otwarte standardy: WMS, WFS, GML
• specyfikacje OGC (również normy lub
projekty norm ISO  EN  PN)
• WMS – Web Map Service – standard
udostępniania map w postaci rastrowej
• WFS – Web Feature Service – standard
udostępniania danych geograficznych w
formacie niezależnym od konkretnego
oprogramowania
• GML – Geography Markup Language –
oparty o XML język znacznikowy
umożliwiający zapisywanie danych
geograficznych
XML
<?xml version=”1.0” encoding=”UTF-8”?>
<adres>
<nazwa>Jan Kowalski</nazwa>
<ulica>Mickiewicza 30</ulica>
<miasto>Kraków</miasto>
<kod>30-059</kod>
</adres>
XML Schema (1)
<elementType name="adres">
<sequence>
<elementTypeRef name="nazwa" minOccur="1" maxOccur="1"/>
<elementTypeRef name="ulica" minOccur="1" maxOccur="2"/>
<elementTypeRef name="miasto" minOccur="1" maxOccur="1"/>
<elementTypeRef name="kod" minOccur="1" maxOccur="1"/>
<elementTypeRef name="państwo" minOccur="0" maxOccur="1"/>
</sequence>
</elementType>
<elementType name="nazwa">
<mixed/>
</elementType>
(...)
XML Schema (2)
<datatype name="kodPocztowy">
<basetype name="string"/>
<lexicalRepresentation>
<lexical>99-999</lexical>
</lexicalRepresentation>
</datatype>
<elementType name="kod">
<datatypeRef name="kodPocztowy"/>
</elementType>
Baza Danych Topograficznych w GML
<Dane>
<ADMS_A>
<X_KOD_TBD>ADMS02</X_KOD_TBD>
<X_AKTUALNOSC_G>2006-02-28</X_AKTUALNOSC_G>
<X_AKTUALNOSC_A>2006-02-28</X_AKTUALNOSC_A>
(…)
<OBSZAR>
<gml:Polygon>
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coord>
<gml:X>364025.18</gml:X>
<gml:Y>507520.82</gml:Y>
</gml:coord>
(…)
Szablon OpenJUMP dla TBD GML
<?xml version='1.0' encoding='UTF-8'?>
<JCSGMLInputTemplate>
<CollectionElement>Dane</CollectionElement>
<FeatureElement>ADMS_A</FeatureElement>
<GeometryElement>OBSZAR</GeometryElement>
<ColumnDefinitions>
<column>
<name>X_KOD_TBD</name>
<type>STRING</type>
<valueElement elementName="X_KOD_TBD"/>
<valueLocation position="body"/>
</column>
(...)
</ColumnDefinitions>
</JCSGMLInputTemplate>
TBD GML w OpenJUMP
WFS Geoportalu (wersja 1.1.0)
• Działki
http://sdi.geoportal.gov.pl/wfs_dzkat/wfservice.aspx
• Państwowy Rejestr Granic
http://sdi.geoportal.gov.pl/wfs_prg/wfservice.aspx
• Państwowy Rejestr Nazw Geograficznych
http://sdi.geoportal.gov.pl/wfsg_prng/wfservice.aspx
gvSIG vs Geoportal
QuantumGIS vs Geoportal
Żądanie GetCapabilities
http://sdi.geoportal.gov.pl
/wfs_dzkat/wfservice.aspx
?request=getcapabilities
&service=wfs
Odpowiedź GetCapabilities (1)
<?xml version="1.0" encoding="UTF-8"?>
(…)
<!-- ====================================== -->
<!-- SERVICE IDENTIFICATION SECTION
-->
<!-- ====================================== -->
<ows:ServiceIdentification>
<ows:Title>WFS - Dane o charakterze katastralnym</ows:Title>
<!--<ows:Fees>None</ows:Fees>
<ows:AccessConstraints>None</ows:AccessConstraints>-->
<ows:ServiceType>WFS</ows:ServiceType>
<ows:ServiceTypeVersion>1.1.0</ows:ServiceTypeVersion>
</ows:ServiceIdentification>
Odpowiedź GetCapabilities (2)
<!-- ==================================== -->
<!-- FEATURE TYPE LIST SECTION
-->
<!-- ==================================== -->
<wfs:FeatureTypeList>
<wfs:Operations>
<wfs:Operation>Query</wfs:Operation>
</wfs:Operations>
<wfs:FeatureType>
<wfs:Name>gmgml:Dzialki</wfs:Name>
<wfs:Title>Działki</wfs:Title>
<wfs:DefaultSRS>EPSG:4326</wfs:DefaultSRS>
<wfs:OtherSRS>EPSG:2180</wfs:OtherSRS>
<wfs:OutputFormats>
<wfs:Format>text/xml; subtype=gml/2.1.2</wfs:Format>
<wfs:Format>text/xml; subtype=gml/3.0.0</wfs:Format>
<wfs:Format>text/xml; subtype=gml/3.1.1</wfs:Format>
<wfs:Format>text/xml; subtype=gml/3.2</wfs:Format>
</wfs:OutputFormats>
<ows:WGS84BoundingBox>
<ows:LowerCorner>13.864 48.741</ows:LowerCorner>
<ows:UpperCorner>24.405 55.223</ows:UpperCorner>
</ows:WGS84BoundingBox>
</wfs:FeatureType>
</wfs:FeatureTypeList>
Żądanie GetFeature w ukł. WGS84
http://sdi.geoportal.gov.pl
/wfs_dzkat/wfservice.aspx
?request=getfeature
&version=1.1.0
&service=wfs
&typename=Dzialki
&bbox=22.67,50,22.6701,50.0001
&maxfeatures=1
Odpowiedź GetFeature w ukł. WGS84
<?xml version="1.0" encoding="UTF-8"?>
(…)
<gml:boundedBy>
<gml:Envelope srsName="EPSG:4326">
<gml:lowerCorner>49.999685 22.669607</gml:lowerCorner>
<gml:upperCorner>50.000435 22.670911</gml:upperCorner>
</gml:Envelope>
</gml:boundedBy>
<gml:featureMember>
<gmgml:Dzialki gml:id="Dzialki.114002058">
<gmgml:ID>114002058</gmgml:ID>
<gmgml:IDENTYFIKATOR>180406_2.0005.25/677</gmgml:IDENTYFIKATOR>
<gmgml:POWIERZCHNIA>797</gmgml:POWIERZCHNIA>
<gmgml:EGEOMETRIA>
(…)
</gmgml:EGEOMETRIA>
<gmgml:GEOMETRIA_DEG>
<gml:Polygon srsName="EPSG:4326">
<gml:exterior>
<gml:LinearRing>
<gml:posList srsDimension="2">50.000267 22.669791 50.000076 22.669607
Żądanie GetFeature w ukł. PUWG 1992
http://sdi.geoportal.gov.pl
/wfs_dzkat/wfservice.aspx
?request=getfeature
&version=1.1.0
&service=wfs
&typename=Dzialki
&srsname=EPSG:2180
&bbox=762000,244000,762001,244001
Odpowiedź GetFeature w ukł. PUWG 1992
<?xml version="1.0" encoding="UTF-8"?>
(...)
<gml:boundedBy>
<gml:Envelope srsName="EPSG:2180">
<gml:lowerCorner>50.005994865 22.658331334</gml:lowerCorner>
<gml:upperCorner>244110.575266586 762090.740961577</gml:upperCorner>
</gml:Envelope>
</gml:boundedBy>
<gml:featureMember>
<gmgml:Dzialki gml:id="Dzialki.113964808">
<gmgml:ID>113964808</gmgml:ID>
<gmgml:IDENTYFIKATOR>180406_2.0005.27/307</gmgml:IDENTYFIKATOR>
<gmgml:POWIERZCHNIA>5234</gmgml:POWIERZCHNIA>
<gmgml:EGEOMETRIA>
(...)
</gmgml:EGEOMETRIA>
<gmgml:GEOMETRIA_DEG>
<gml:Polygon srsName="EPSG:2180">
<gml:exterior>
<gml:LinearRing>
<gml:posList srsDimension="2">244000.211755457 761987.077985728
Państwowy Rejestr Granic w GML
<?xml version="1.0" encoding="UTF-8"?>
(…)
<gml:boundedBy>
<gml:Envelope srsName="EPSG:4326">
<gml:lowerCorner>20.7757493068129 49.0023866380461</gml:lowerCorner>
<gml:upperCorner>23.8089995998258 51.1399600308631</gml:upperCorner>
</gml:Envelope>
</gml:boundedBy>
<gml:featureMember>
<gmgml:GMINY gml:id="GMINY.697">
<gmgml:NAZWA>Tomaszów Lubelski</gmgml:NAZWA>
<gmgml:OBSZAR>618112</gmgml:OBSZAR>
<gmgml:ID1>697</gmgml:ID1>
<gmgml:SIMPLIFIEDGEOMETRY>
<gml:Polygon srsName="EPSG:4326">
<gml:exterior>
<gml:LinearRing>
<gml:posList srsDimension="2">23.5847181663759 50.5099284983276
gvSIG vs Geoserver (WFS 1.1.0)
Wniosek pierwszy
W porównaniu do innych de facto
standardów zapisu danych przestrzennych
(na przykład shapefile), duże możliwości
dostosowania struktury danych w formacie
GML do konkretnych potrzeb mogą być w
niektórych przypadkach bardziej wadą niż
zaletą. W szczególności problemem jest
rozbicie na dwa elementy: właściwy plik oraz
schemat. Ten drugi składnik nie jest w ogóle
wykorzystywany przez dostępne wolne
oprogramowanie.
Wniosek drugi
Uregulowania wymaga współpraca
dostępnego wolnego oprogramowania z
serwerami WFS w wersji 1.1.0. Część z nich
nie obsługuje tego standardu, pozostając
przy wersji 1.0.0, natomiast inne,
teoretycznie deklarując taką współpracę, w
rzeczywistości nie są z nim w pełni zgodne.
Szczególnym problemem jest uwzględnianie
kolejności osi układów współrzędnych
zapisanych w definicjach tych układów (na
przykład w bazie EPSG).

Podobne dokumenty