Problem z pewnymi liniami w granicy Polski

Cześć,

Próbuję załadować do QGIS granicę Polski i ma ona przerwy. Nie ściągają się pewne linie i podam przykład jednej pary:

Linia poprawna to linia 816307126. Na południe od niej jest linia 816313678 i z tą linią jest problem, gdyż nie jest zwracana przez overpass turbo mimo tego, że jest w relacji “Polska (ląd)”.

Różnicę można zobaczyć nawet klikając na mapę z włączoną “szukaczką”. Jeśli klikniemy na poprawną linię, to w “Obiekty w pobliżu” widać jej id. Jeśli klikniemy ciut niżej, w niepoprawną linię, to nie ma jej id w “Obiekty w pobliżu”. Co z tą linią jest nie tak?

przy jakim zapytaniu?

Zapytanie:

[out:xml] [timeout:25];
(
relation["admin_level"="2"]["land_area"="administrative"]["name"="Polska (ląd)"]({{bbox}});
);
(._;>;);
out body;

zwraca w danych linię 816307126 ale nie zwraca w danych linii 816313678. Natomiast zapytanie:

[out:json][timeout:25];
way(816313678)->.w;
rel(bw.w);
out tags;

zwraca, że linia 816313678 należy do relacji “Polska (ląd)”.

Przeprowadziłem obserwacje i wyciągam następujące wnioski:

  • Pierwsze zapytanie zwraca zarówno relację z informacją, że należą do niej te dwie problematyczne linie, jak i szczegółowe informacje dotyczące obu tych linii. Drugie zapytanie prawidłowo i zgodnie z oczekiwaniami zwraca relacje, których linia nr 816313678 jest członkiem; wśród nich jest relacja “Polska (ląd)”. Podejrzewam chwilowy błąd Overpassa lub błędne sformułowanie innego, podobnego do pierwszego, zapytania (np. brak fragmentu (._;>;);).
  • Podejrzewam, że linia nr 816313678 nie pojawia się w wynikach “Obiektów w pobliżu”, gdyż nie ma tagów, w przeciwieństwie do linii nr 816307126.

Rzeczywiście może jest to problem braku tagów.

Aktualnie wygląda to tak:

Czy prawidłowym rozwiązaniem byłoby dodanie tagów, na przykład jak dla linii 560165333 (oprócz source)?

A my nie kasowaliśmy tych znaczników z linii? @Mateusz_Konieczny

testowałem

[out:xml][timeout:180];

relation
  ["admin_level"="2"]
  ["land_area"="administrative"]
  ["name"="Polska (ląd)"];

out geom;

i to działa, zwraca obie (nie wiem czy to dobry zamiennik tego wyższego)

Jak w

[out:xml] [timeout:25];
(
relation["admin_level"="2"]["land_area"="administrative"][` `"name"="Polska (ląd)``"]`({{bbox}});
);
(._;>;);
out body;

zlikwidowałem ({bbox}}) (po co on tam jest?) to też zadziałało.

Hmm, dałem oryginalne zapytanie i dalej tam ta linia jest. Co jest grane?

wątpię, rekursja powinna działać i bez tego

(._;>;); nie ma prawa po tagach filtrować, z tego co wiem

To jest jednak problem z tagami. Użyłem zapytania:

out:xml][timeout:180];
relation
["admin_level"="2"]
["land_area"="administrative"]
["name"="Polska (ląd)"];
(._;>;);
out body;

Wyeksportowałem wynik do pliku osm. Zaimportowałem ten plik w QGIS jako nową warstwę i nie widać linii 816313678. Ta linia w pliku nie ma tagów, więc zmieniłem tą linię w pliku dodając do niej tag. Po zaimportowaniu pliku linia się pojawiła.

Zatem to jest problem QGIS, że pomija linie bez tagów.

1 Like

W sumie wszystkie linie tworzące granicę Polski mogły by mieć jakiś source=*