envirosolutionspl / wtyczka_qgis_app

Wtyczka QGIS wspomagająca przygotowanie aktów planowania przestrzennego zgodnych z rozporządzeniem Ministra Rozwoju, Pracy i Technologii z dnia 26 października 2020 r. w sprawie zbiorów danych przestrzennych oraz metadanych w zakresie zagospodarowania przestrzennego
GNU General Public License v3.0
1 stars 2 forks source link

[Praca z APP / APP] Niepoprawne zapisywanie współrzędnych dla zasięgu przestrzennego APP #107

Closed finiteiro closed 4 years ago

finiteiro commented 4 years ago

Wtyczka zapisuje współrzędne w odwrotnej kolejności. Dla obiektu w układzie http://www.opengis.net/def/crs/EPSG/0/2177 powinno to być np. 5669419.98 6439573.09 wtyczka obecnie zapisuje 6439573.09 5669419.98.

Konsekwencją jest też błąd zwracany w walidacji "Błąd geometrii APP: Obrysy leżą poza granicami Polski. Sprawdź czy w pliku GML jest prawidłowa definicja układu zgodnie ze standardem INSPIRE np: srsName="http://www.opengis.net/def/crs/EPSG/0/2177"

Kolejną konsekwencją jest problem z poprawnym wczytaniem geometrii APP do QGIS czym niepotrzebnie zajmuje się w instrukcji wskazówka: "Aby poprawnie wyświetlić w QGIS geometrię obiektów zapisanych w wygenerowanym pliku GML należy skorzystać z narzędzia Zamień współrzędne X i Y. Aby to zrobić należy wyświetlić panel Algorytmy Processingu (prawym przyciskiem myszy należy kliknąć na wstążkę z narzędziami i zaznaczyć krzyżykiem odpowiedni panel do wyświetlenia). Następnie w oknie Algorytmy Processingu należy rozwinąć listę narzędzi o nazwie Wektor - geometria oraz wybrać narzędzie Zamień współrzędne X i Y."
Poprawnie zapisana geometria w pliku GML wczytuje się prawidłowo w QGIS.

envirosolutionspl commented 4 years ago

@finiteiro wtyczka zapisuje współrzędne GML w odpowiedniej kolejności. Problem z poprawnym wyświetlaniem geometrii jest de facto problemem programu QGIS w obecnej wersji (3.10/3.16) przy wczytywaniu plików GML zawierających deklarację układu współrzędnych w formie URI, czyli zgodniej z INSPIRE, a w zasadzie problemem w sterowniku GDAL, z którego korzystają te wersje QGIS. Proszę zauważyć, że jeżeli edytujemy tekstowo plik GML i deklarację układu zmienimy z http://www.opengis.net/def/crs/EPSG/0/2177 na EPSG:2177 to zostanie on poprawnie wyświetlony w QGIS. Problem w tym, że format EPSG:2177 nie jest poprawnym formatem INSPIRE. Warto również zauważyć, że wygenerowane przez wtyczkę dane są bez problemu wyświetlane w innych aplikacjach GIS (np. gvSIG-desktop w wersji 2.5), co potwierdza, że współrzędne są poprawnie zapisane.

W związku z tym, wskazówka z instrukcji ma na celu ominięcie problemów programu QGIS z układami INSPIRE. Walidator natomiast sprawdza czy geometria jest zdefiniowana zgodnie z rozporządzeniem, a więc pośrednio również ze standardami INSPIRE.

finiteiro commented 4 years ago

Kolejność współrzędnych, o której pisze zastosowana jest w wielu zbiorach IIP, z których miałem okazję i obecnie korzystam i wszędzie gdzie było odwołanie do definicji typu http://www.opengis.net/def/crs/EPSG/0/2177. Potwierdza to również utworzony prze zemnie w HALE STUDIO plik GML. Natomiast jeśli w HALE STUDIO została użyta nazwa: EPSG:2177 współrzędne były tak jak w pliku utworzonym w Państwa narzędziu.
Potwierdzeniem kolejności, o której pisze w zgłoszeniu jest eksport do pliku GML z QGIS z wymuszeniem formatu GML3.2, GML3

finiteiro commented 4 years ago

@envirosolutionspl przywołany problem sterownika GDAL dotyczył wersji GDAL 2.1.2 oraz QGIS2.2 i został naprawiony 4 lata temu. Nie jest to problem aktualnych wersji sterownika GDAL i QGIS.

Dla uporządkowania zagadnienia: definicja http://www.opengis.net/def/crs/EPSG/0/2177 zawiera informacje o kolejności współrzędnych Cartesian 2D CS. Axes: northing, easting (x,y). Orientations: north, east. UoM: m..

Dla danych z obszaru Wrocławia przygotowanych w aplikacji Hale Studiu 4.0.0 w układzie EPSG:2177 wyksportowana do pliku gml geometria została zapisana w następujący sposób:

<app:zasiegPrzestrzenny>
            <gml:MultiSurface srsDimension="2" srsName="http://www.opengis.net/def/crs/EPSG/0/2177">
               <gml:surfaceMember>
                  <gml:Polygon>
                     <gml:exterior>
                        <gml:LinearRing>
                           <gml:posList>5669419.98 6439573.09 5669437.887 6439611.658 5669449.292 6439636.227 5669451.232 6439640.4 5669478.74 6439699.635 5669480.661 6439698.748 5669484.744 6439696.848 5669539.13 6439671.592 5669561.274 6439661.309 5669570.694 6439644.801 5669607.24 6439627.832 5669635.086 6439614.907 5669629.14 6439602.105 5669626.938 6439597.348 5669620.982 6439584.525 5669616.869 6439586.425 5669587.722 6439523.65 5669574.031 6439510.423 5669484.112 6439423.524 5669408.944 6439501.313 5669406.422 6439503.933 5669393.885 6439516.903 5669419.98 6439573.09</gml:posList>
                        </gml:LinearRing>
                     </gml:exterior>
                  </gml:Polygon>
               </gml:surfaceMember>
            </gml:MultiSurface>
         </app:zasiegPrzestrzenny>

Geometria została poprawnie odczytana przez QGIS (2.14, 2.18, 3.4, 3.10, 3.14, 3.16), Data Interoperability for ArcGIS Desktop 10.2, Hale Studio 4.0.0.
Niepoprawnie geometria została odczytana przez QGIS 2.2, 2.4 i 2.8.

Proszę o ponowną weryfikację zgłoszonego błędu.

envirosolutionspl commented 4 years ago

@envirosolutionspl przywołany problem sterownika GDAL dotyczył wersji GDAL 2.1.2 oraz QGIS2.2 i został naprawiony 4 lata temu. Nie jest to problem aktualnych wersji sterownika GDAL i QGIS.

Dla uporządkowania zagadnienia: definicja http://www.opengis.net/def/crs/EPSG/0/2177 zawiera informacje o kolejności współrzędnych Cartesian 2D CS. Axes: northing, easting (x,y). Orientations: north, east. UoM: m..

Dla danych z obszaru Wrocławia przygotowanych w aplikacji Hale Studiu 4.0.0 w układzie EPSG:2177 wyksportowana do pliku gml geometria została zapisana w następujący sposób:

<app:zasiegPrzestrzenny>
            <gml:MultiSurface srsDimension="2" srsName="http://www.opengis.net/def/crs/EPSG/0/2177">
               <gml:surfaceMember>
                  <gml:Polygon>
                     <gml:exterior>
                        <gml:LinearRing>
                           <gml:posList>5669419.98 6439573.09 5669437.887 6439611.658 5669449.292 6439636.227 5669451.232 6439640.4 5669478.74 6439699.635 5669480.661 6439698.748 5669484.744 6439696.848 5669539.13 6439671.592 5669561.274 6439661.309 5669570.694 6439644.801 5669607.24 6439627.832 5669635.086 6439614.907 5669629.14 6439602.105 5669626.938 6439597.348 5669620.982 6439584.525 5669616.869 6439586.425 5669587.722 6439523.65 5669574.031 6439510.423 5669484.112 6439423.524 5669408.944 6439501.313 5669406.422 6439503.933 5669393.885 6439516.903 5669419.98 6439573.09</gml:posList>
                        </gml:LinearRing>
                     </gml:exterior>
                  </gml:Polygon>
               </gml:surfaceMember>
            </gml:MultiSurface>
         </app:zasiegPrzestrzenny>

Geometria została poprawnie odczytana przez QGIS (2.14, 2.18, 3.4, 3.10, 3.14, 3.16), Data Interoperability for ArcGIS Desktop 10.2, Hale Studio 4.0.0. Niepoprawnie geometria została odczytana przez QGIS 2.2, 2.4 i 2.8.

Proszę o ponowną weryfikację zgłoszonego błędu.

@finiteiro Czy można prosić o wygenerowany kompletny plik GML zawierający nagłówki?

finiteiro commented 4 years ago

Plik do testów wygenerowany w Hale Studio:

<?xml version="1.0" ?>
<wfs:FeatureCollection xmlns:app="https://www.gov.pl/static/zagospodarowanieprzestrzenne/schemas/app/1.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:gmlexr="http://www.opengis.net/gml/3.3/exr" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:ns1="http://www.w3.org/1999/xhtml" xmlns:gss="http://www.isotc211.org/2005/gss" xmlns:gsr="http://www.isotc211.org/2005/gsr" xmlns:gts="http://www.isotc211.org/2005/gts" xmlns:hfp="http://www.w3.org/2001/XMLSchema-hasFacetAndProperty" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wfs="http://www.opengis.net/wfs/2.0" xsi:schemaLocation="https://www.gov.pl/static/zagospodarowanieprzestrzenne/schemas/app/1.0 https://www.gov.pl/static/zagospodarowanieprzestrzenne/schemas/app/1.0/planowaniePrzestrzenne.xsd http://www.opengis.net/wfs/2.0 http://schemas.opengis.net/wfs/2.0/wfs.xsd" numberMatched="0" numberReturned="0" timeStamp="2020-11-07T20:59:14.375+01:00">
  <wfs:member>
    <app:DokumentFormalny gml:id="PL.ZIPPZP.2462_026401-MPZP_085385cc-e268-4136-9df2-790e32f7e2e0">
      <app:idIIP>
        <app:Identyfikator>
          <app:przestrzenNazw>PL.ZIPPZP.2462/026401-MPZP</app:przestrzenNazw>
          <app:lokalnyId>085385cc-e268-4136-9df2-790e32f7e2e0</app:lokalnyId>
        </app:Identyfikator>
      </app:idIIP>
      <app:tytul>Uchwała Nr XIV/368/19 Rady Miejskiej Wrocławia z dnia 17 października 2019 r. w sprawie przystąpienia do sporządzenia miejscowego planu zagospodarowania przestrzennego w rejonie ulicy Wilanowskiej we Wrocławiu</app:tytul>
      <app:numerIdentyfikacyjny>XIV/368/19</app:numerIdentyfikacyjny>
      <app:data>
        <gmd:CI_Date>
          <gmd:date>
            <gco:Date>2019-10-17</gco:Date>
          </gmd:date>
          <gmd:dateType>
            <gmd:CI_DateTypeCode codeList="http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/Codelist/gmxCodelists.xml#CI_DateTypeCode" codeListValue="creation">utworzenie</gmd:CI_DateTypeCode>
          </gmd:dateType>
        </gmd:CI_Date>
      </app:data>
      <app:lacze>http://uchwaly.um.wroc.pl/uchwala.aspx?numer=XIV/368/19</app:lacze>
      <app:przystapienie xlink:href="PL.ZIPPZP.2462_026401-MPZP_mpzp714_2020-11-04"></app:przystapienie>
    </app:DokumentFormalny>
  </wfs:member>
  <wfs:member>
    <app:AktPlanowaniaPrzestrzennego gml:id="PL.ZIPPZP.2462_026401-MPZP_mpzp714_2020-11-04">
      <app:idIIP>
        <app:Identyfikator>
          <app:przestrzenNazw>PL.ZIPPZP.2462/026401-MPZP</app:przestrzenNazw>
          <app:lokalnyId>mpzp714</app:lokalnyId>
          <app:wersjaId>2020-11-04</app:wersjaId>
        </app:Identyfikator>
      </app:idIIP>
      <app:poczatekWersjiObiektu>2020-11-04T00:00:00+01:00</app:poczatekWersjiObiektu>
      <app:tytul>Miejscowy plan zagospodarowania przestrzennego w rejonie ulicy Wilanowskiej we Wrocławiu</app:tytul>
      <app:tytulAlternatywny>714 – Wilanowska</app:tytulAlternatywny>
      <app:typPlanu xlink:href="https://www.gov.pl/static/zagospodarowanieprzestrzenne/codelist/TypAktuPlanowaniaPrzestrzennegoKod/miejscowyPlanZagospodarowaniaPrzestrzennego" xlink:title="miejscowy plan zagospodarowania przestrzennego"></app:typPlanu>
      <app:poziomHierarchii xlink:href="http://inspire.ec.europa.eu/codelist/LevelOfSpatialPlanValue/supraLocal" xlink:title="sublokalny"></app:poziomHierarchii>
      <app:obowiazujeOd>2020-11-04+01:00</app:obowiazujeOd>
      <app:status xlink:href="http://inspire.ec.europa.eu/codelist/ProcessStepGeneralValue/adoption" xlink:title="w trakcie przyjmowania"></app:status>
      <app:mapaPodkladowa>
        <app:MapaPodkladowa>
          <app:data>2019-12-19</app:data>
          <app:referencja>mapa zasadnicza</app:referencja>
        </app:MapaPodkladowa>
      </app:mapaPodkladowa>
      <app:zasiegPrzestrzenny>
        <gml:MultiSurface srsName="http://www.opengis.net/def/crs/EPSG/0/2177" srsDimension="2">
          <gml:surfaceMember>
            <gml:Polygon srsName="http://www.opengis.net/def/crs/EPSG/0/2177" srsDimension="2">
              <gml:exterior>
                <gml:LinearRing>
                  <gml:posList>5669419.980000002 6439573.09 5669437.887 6439611.658000002 5669449.292000001 6439636.227000001 5669451.2320000045 6439640.400000001 5669478.74 6439699.635000002 5669480.661000002 6439698.748000001 5669484.744000003 6439696.848 5669539.130000001 6439671.591999999 5669561.274000004 6439661.309000001 5669570.694 6439644.801000002 5669607.24 6439627.832 5669635.085999999 6439614.906999999 5669629.139999999 6439602.105000002 5669626.938000001 6439597.348 5669620.982000003 6439584.525000001 5669616.869000001 6439586.425 5669587.721999999 6439523.65 5669574.0309999995 6439510.423000002 5669484.112000002 6439423.524 5669408.943999998 6439501.313 5669406.422000002 6439503.933000002 5669393.8850000035 6439516.903000001 5669419.980000002 6439573.09</gml:posList>
                </gml:LinearRing>
              </gml:exterior>
            </gml:Polygon>
          </gml:surfaceMember>
        </gml:MultiSurface>
      </app:zasiegPrzestrzenny>
      <app:dokumentPrzystepujacy xlink:href="PL.ZIPPZP.2462_026401-MPZP_085385cc-e268-4136-9df2-790e32f7e2e0"></app:dokumentPrzystepujacy>
      <app:rysunek xlink:href="PL.ZIPPZP.2462_026401-MPZP_0db8cf4a-84a7-49dc-a55f-22585503767e_2020-11-04"></app:rysunek>
    </app:AktPlanowaniaPrzestrzennego>
  </wfs:member>
  <wfs:member>
    <app:RysunekAktuPlanowaniaPrzestrzennego gml:id="PL.ZIPPZP.2462_026401-MPZP_0db8cf4a-84a7-49dc-a55f-22585503767e_2020-11-04">
      <app:idIIP>
        <app:Identyfikator>
          <app:przestrzenNazw>PL.ZIPPZP.2462/026401-MPZP</app:przestrzenNazw>
          <app:lokalnyId>0db8cf4a-84a7-49dc-a55f-22585503767e</app:lokalnyId>
          <app:wersjaId>2020-11-04</app:wersjaId>
        </app:Identyfikator>
      </app:idIIP>
      <app:poczatekWersjiObiektu>2020-11-04T00:00:00+01:00</app:poczatekWersjiObiektu>
      <app:tytul>Załącznik nr 1 – rysunek planu</app:tytul>
      <app:lacze>http://geoportal.wroclaw.pl/mpzp-pliki/rysunki/mpzp714_rysunek_20201104_uchwalenie.tif</app:lacze>
      <app:ukladOdniesieniaPrzestrzennego>http://www.opengis.net/def/crs/EPSG/0/2177</app:ukladOdniesieniaPrzestrzennego>
      <app:rozdzielczoscPrzestrzenna>1000</app:rozdzielczoscPrzestrzenna>
      <app:obowiazujeOd>2020-11-04</app:obowiazujeOd>
      <app:plan xlink:href="PL.ZIPPZP.2462_026401-MPZP_mpzp714_2020-11-04"></app:plan>
    </app:RysunekAktuPlanowaniaPrzestrzennego>
  </wfs:member>
</wfs:FeatureCollection>
finiteiro commented 4 years ago

ta sama geometria ze współrzędnymi w odwrotnej kolejności:

<gml:posList>6439573.09 5669419.980000002 6439516.903000001 5669393.8850000035 6439503.933000002 5669406.422000002 6439501.313 5669408.943999998 6439423.524 5669484.112000002 6439510.423000002 5669574.0309999995 6439523.65 5669587.721999999 6439586.425 5669616.869000001 6439584.525000001 5669620.982000003 6439597.348 5669626.938000001 6439602.105000002 5669629.139999999 6439614.906999999 5669635.085999999 6439627.832 5669607.24 6439644.801000002 5669570.694 6439661.309000001 5669561.274000004 6439671.591999999 5669539.130000001 6439696.848 5669484.744000003 6439698.748000001 5669480.661000002 6439699.635000002 5669478.74 6439640.400000001 5669451.2320000045 6439636.227000001 5669449.292000001 6439611.658000002 5669437.887 6439573.09 5669419.980000002</gml:posList>
KasiaZagrobelna commented 4 years ago

Do poprawy - zbiorcza korekta razem z #110 i #109.

envirosolutionspl commented 4 years ago

naprawione w wersji 1.1

finiteiro commented 4 years ago

Utworzenie i walidacja w zakresie geometrii dla EPSG:2177 przetestowana - zachowuje się zgodnie z oczekiwaniami.

KasiaZagrobelna commented 4 years ago

Przetestowane na pliku w układzie EPSG:2179 - jest ok.