Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
XAMPP + QGIS Server
18-03-2021, 20:07,
#1
XAMPP + QGIS Server
Witam


Chciałbym z projektu w QGIS Desktop utworzyć własny serwer WMS (lub WMTS), który następnie podepnę sobie  jako pomocniczy podkład w edytorze scenerii do gry (symulator transportu szynowego). Z tego co się zorientowałem to rozwiązanie oparte na QGIS Server i Apache wydaje się najprostsze. Mam Windows 10.

W tym celu zacząłem konfigurować wg tego poradnika:
https://docs.qgis.org/3.16/en/docs/serve...on-windows

Zainstalowałem XAMPP oraz pakiety QGIS Server i Desktop (wersja 3.16.4-Hannover), skonfigurowałem wskazane pliki konfiguracyjne wg instrukcji. Pod domyślnymi portami APache nie chciał działać, więc zmieniłem na porty 8080 i 4433.

Po otwarciu http://localhost:8080 pojawiła się strona powitalna XAMPP Apache.

Niestety nie udało mi się otworzyć http://localhost:8080/cgi-bin/qgis_mapserv.fcgi.exe?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities - strona nie znaleziona.

Gdy przyjrzałem się adresom do folderów w pliku konfiguracyjnym httpd.conf okazało się, że u mnie jest trochę inna struktura plików i dlatego strona się nie otwierała, np. nie ma pliku qgis_mapserv.fcgi.exe w folderze c:/OSGeo4W64/apps/qgis/bin/ tylko w  c:/OSGeo4W64/apps/qgis-ltr/bin/. Dlatego we wszystkich ścieżkach zmieniłem qgis na qgis-ltr i po tym link do xml GetCapabilities zadziałał.

 Kolejnym krokiem było już utworzenie zapytania do serwera, więc bazując na przykładzie z poradnika skleciłem swoje
Kod:
http://localhost:8080/qgisserver?MAP=C:\Users\HP\Documents\zajezdnia\orto.qgz&LAYERS=ogc_OGC_ortofoto_2018,tory,linia2&SERVICE=WMS&REQUEST=GetMap&CRS=EPSG:3857&WIDTH=400&HEIGHT=200

Niestety to nie działa - nie znaleziono żądanego URL. Czy to znowu coś nie tak ze ścieżkami, czy może ja coś źle robię?
19-03-2021, 14:02,
#2
RE: XAMPP + QGIS Server
Aktualizacja: Przeinstalowałem QGIS z wersji LTR na wersję zwykłą i ścieżki zgadzają się już z poradnikiem. Dalej jednak nie działa link http://localhost:8080/qgisserver?..., tak jakby nie było takiego polecenia.
19-03-2021, 17:09,
#3
RE: XAMPP + QGIS Server
Jeżeli otrzymałeś GetCapabilities, to do tego url doklej zapytanie o mapę, być może jest jakiś błąd w dokumentacji.
21-03-2021, 01:18,
#4
RE: XAMPP + QGIS Server
Dokleiłem MAP
21-03-2021, 01:23,
#5
RE: XAMPP + QGIS Server
Po doklejeniu MAP link wygląda tak:
Kod:
http://localhost:8080/cgi-bin/qgis_mapserv.fcgi.exe?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities&MAP=C:\Users\HP\Documents\zajezdnia\orto.qgz
Po otwarciu linku w przeglądarce mam taką treść:

Kod:
Błąd przetwarzania XML: niedomknięty token
Obszar: http://localhost:8080/cgi-bin/qgis_mapserv.fcgi.exe?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities&MAP=C:\Users\HP\Documents\zajezdnia\orto.qgz
Numer wiersza: 176, kolumna 7:      <OnlineResource xlink:type="simple" xlink:href="http://localhost:8080/cgi-bin/qgis_mapserv.fcgi.exe?MAP=C:%5CUsers%5CHP%5CDocuments%5Czajezdnia%5Corto.qgz&amp;SERVICE=WMS&amp;VERSION=1.3.0&amp;REQUEST=GetLegendGraphic&amp;LAYER=linia2&amp;FORMAT=image/png&amp;STY
------^
21-03-2021, 11:41,
#6
RE: XAMPP + QGIS Server
A zamień w ścieżkę do pliku \ na / czyli C:/user/ albo przed \ daj / a więc C:/\User/\ albo podwójne \\  czyli C:\\user\\.

Któryś sposób powinien zadziałać Smile.

A najłatwiej wykorzystać WSL na windowsie, Dockera i odpalić jakis kontener z serwerem Windowsa.
21-03-2021, 17:25,
#7
RE: XAMPP + QGIS Server
Zamiana nie pomogła. Może log error.log z appache coś jeszcze pomoże, jakieś warningi z tego co widzę, ale pojawiają się bez względu na to czy dokleję plik z mapą czy nie.
[Sun Mar 21 16:10:44.813060 2021] [cgi:error] [pid 9320:tid 1892] [client ::1:61829] AH01215: Warning 1: Unable to find driver ECW to unload from GDAL_SKIP environment variable.\r: C:/OSGeo4W64/apps/qgis/bin/qgis_mapserv.fcgi.exe
[Sun Mar 21 16:10:44.813060 2021] [cgi:error] [pid 9320:tid 1892] [client ::1:61829] AH01215: Warning 1: Unable to find driver ECW to unload from GDAL_SKIP environment variable.\r: C:/OSGeo4W64/apps/qgis/bin/qgis_mapserv.fcgi.exe
[Sun Mar 21 16:10:44.813060 2021] [cgi:error] [pid 9320:tid 1892] [client ::1:61829] AH01215: Warning 1: Unable to find driver JP2ECW to unload from GDAL_SKIP environment variable.\r: C:/OSGeo4W64/apps/qgis/bin/qgis_mapserv.fcgi.exe
21-03-2021, 18:27,
#8
RE: XAMPP + QGIS Server
Jakoś zawsze nie lubiłem windowsa w kontekście jakiś usług które są przenoszone z linuksa.

Jeżeli chodzi o te błędy to nie są one powiązane z twoim problemem, a tylko że gdal nie jest ze wszystkimi modułami. Powinny być jakieś konkretne że ścieżki w treści, i podejrzewam że jest to właśnie kwestia ścieżki do projektu.

Za https://thangqd.github.io/blog/qgis-server jest napisane, aby dane wgrać w katalog osgeo4w, aby nie podawać ścieżki do projektu. Zerknij na ten wpis na blogu. Może on pomoże
04-04-2021, 15:21,
#9
RE: XAMPP + QGIS Server
Zrobiłem tak i przykładowy projekt world.qgs ruszył, także WMTS. Wgrałem do niego też moje warstwy rastrowe oraz wektorowe i wygląda na to, że także nie ma z tym problemu. Utworzyłem sobie grupę warstw i do niej wrzucam wszystkie warstwy, aby móc w odwołaniu do serwera podać tylko nazwę dla całej grupy warstw. Wcześniej nie testowałem na tym przykładowym projekcie, więc nie wiem czy zmiana lokalizacji pliku coś pomogła czy to nie miało wpływu.
Widzę, że jest chyba jakiś problem z wgraniem do projektu innych warstw WMS/WMTS. Wgrywam do projektu ortofotomapę z wrocławskiego geoportalu. W QGIS wszystko jest ok, mam nałożone poszczególne warstwy. Mam w ustawieniach projektu włączoną publikację warstw przez WMTS. Ale gdy podglądam w przeglądarce kafle to widzę tylko te własne warstwy, a mapy z geoportalu już nie. Gdy w odwołaniu podam tylko tą warstwę, to Apache zwraca w przeglądarce Internal Server Error.
Dodam jeszcze, że mapa WMS z geoportalu ma dostępne układy CRS:84, EPSG:4326, 2177, 2180, a w projekcie mam ustawiony układ EPSG:3857, ponieważ program w którym chcę podłączyć mój własny WMTS nie obsługuje innych układów. Dlatego nie mogę bezpośrednio podpiąć WMTS geoportalu, tylko chcę to zrobić za pośrednictwem QGIS Server w celu transformacji warstwy. W QGIS DEsktop to bez problemu działą, widać że warstwa jest transformowana w locie. Powoduje to lekkie rozmazanie ortofotomapy, ale przy większym powiększeniu to nie przeszkadza mi.
W dokumentacji WMTS z QGIS Server przeczytałem wprawdzie, że w WMTS w odróżnieniu od WMS nie da się jednocześnie odwoływać do wielu warstw, klient musi rozdzielać zapytania i sobie połączyć wyniki. Ale jak odwołałem się do grupy warstw to warstwy rastrowe i wektorowe które sam sobie wczytałem z pliku nakładają mi się prawidłowo, poza tymi z geoportalu, więc nie wiem czy to jakiś problem.
Poniżej przykładowy kafel z wszystkimi warstwami - widać nałożone zdigitalizowane rastry z fragmentem starego zdjęcia lotniczego i mapką oraz wektor z granicami współczesnych osiedli wraz z etykietami, więc da się nakładać warstwy w WMTS. Jedyne co mnie martwi poza brakiem współczesnej ortofotomapy, która powinna być widoczna w pustym miejscu, to ucięte zdjęcie lotnicze u dołu kafla.


Załączone pliki Miniatury
   
05-04-2021, 17:20,
#10
RE: XAMPP + QGIS Server
QGIS nie jest najszczęśliwszym narzędziem do kaskadowania usług WMS.  Polecam bardziej np Mapproxy, że względu na wydajność w sumie.Dokumentacja informuje, że aby zapytać się o dodatkową warstwę z zewnętrznego WMS musisz dodać parametr.EXTERNAL_WMS:<layername>


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  QGIS Server jako serwer produkcyjny gsienko 0 451 06-03-2021, 15:18
Ostatni post: gsienko
  QGIS Server 3 i WMTS sebaq 1 2 653 01-09-2019, 21:03
Ostatni post: jerresso

Skocz do: