Zauważyłem, że pobieranie danych OSM za pomocą wtyczki i przeprowadzanie importu i eksportu jest bardzo uciążliwe. Dlatego napisałem inne rozwiązanie: http://anitagraser.com/2014/05/31/a-guide-to-googlemaps-like-maps-with-osm-in-qgis/
Podsumowanie:
Surowe pliki OSM mogą być dość duże. Dlatego zdecydowanie lepiej jest pobrać skompresowany binarny format .pbf zamiast formatu XML .osm. Jako źródło pobierania polecam Geofabrik .
W pierwszym etapie wstępnego przetwarzania: wyodrębnieniu interesującego nas obszaru, możemy użyć Osmozy:
C:\Users\anita_000\Geodata\OSM_Noirmoutier>..\bin\osmosis.bat --read-pbf pays-de-la-loire-latest.osm.pbf --bounding-box left=-2.59 bottom=46.58 right=-1.44 top=47.07 --write-xml noirmoutier.osm
Chociaż QGIS może również ładować pliki .osm, zauważyłem, że wydajność i dostęp do atrybutów znacznie się poprawią, jeśli plik .osm zostanie przekonwertowany na spatialite.
C:\Users\anita_000\Geodata\OSM_Noirmoutier>ogr2ogr -f "SQLite" -dsco SPATIALITE=YES noirmoutier.db noirmoutier.osm
W QGIS możemy ładować punkty, linie i wieloboki za pomocą Add Layer SpatiaLite. Podczas ładowania tabel przestrzennych pojawiają się pewne problemy:
- Nie ma wielokąta lądowego. Zamiast tego istnieją elementy linii „wybrzeża”.
- Brakuje większości wielokątów rzecznych. Zamiast tego istnieją elementy linii „brzeg rzeki”.
Tworzenie brakujących wielokątów rzecznych nie jest wielkim problemem:
- wybierz wszystkie linie, w których droga wodna = brzeg rzeki.
- użyj narzędzia Poligonizacja z przybornika przetwarzania, aby automatycznie utworzyć wielokąty z obszarów zamkniętych wybranymi liniami brzegów rzeki. (Uwaga: Przetwarzanie domyślnie działa tylko na wybrane funkcje, ale to ustawienie można zmienić w ustawieniach Przetwarzania).
Tworzenie wielokąta lądowego (lub wielokąta morskiego, jeśli wolisz, z jakiegoś powodu) jest nieco bardziej zaangażowane, ponieważ przez większość czasu linia brzegowa nie będzie zamknięta z tego prostego powodu, że często wycinamy kawałek ziemi z głównego kontynentu . Dlatego zanim będziemy mogli korzystać z narzędzi Poligonizowania, musimy zamknąć obszar. Aby to zrobić, sugeruję najpierw wybrać linię brzegową za pomocą „other_tags” LIKE '% „natural” => „coastline”% ”i utworzyć nową warstwę z tego wyboru (zapisz wybór jako…) i edytuj ją (nie zapomnij aby włączyć przyciąganie!), aby dodać linie, aby zamknąć obszar. Następnie poligonizuj.