Jak narysować i wizualizować niestandardowe mapy na podstawie danych OSM?

35

Chciałbym móc używać danych openstreetmap dla określonego regionu jako źródła i „czerpać” z tego mapę ulepszeń infrastruktury - głównie dróg.

Chcę, aby była hostowana samodzielnie (nie psując żadnych danych na prawdziwych serwerach OSM), chcę mieć dość dużą elastyczność i poziom szczegółowości w procesie edycji i dobrze byłoby renderować to w ładny sposób.

Nie znam wielu programów GIS. Właściwie nie jest tak ważne, aby mieć dane OSM jako źródło, może to być również zdjęcie satelitarne. Ważne rzeczy - elastyczny rysunek związany z rzeczywistymi współrzędnymi i wizualizacja mapy.

Od czego moge zaczac

Mam nadzieję, że to pytanie ma sens tutaj :)

arconaut
źródło
Na jaką platformę patrzysz? Czy możesz używać Map Google do rysowania kształtów?
Jared Updike,
Jared, masz na myśli prosty interfejs „Moich map” w Mapach Google? To mi nie wystarcza :) Potrzebuję dużo większego poziomu szczegółowości. Czy masz na myśli coś innego?
arconaut
Dla jakiej części świata chcesz to zrobić? Istnieje wiele danych o drogach w domenie publicznej, w niektórych częściach świata.
djq

Odpowiedzi:

16

Typ danych OpenStreetMap .osm XML można analizować i renderować w wielu pakietach oprogramowania. W przypadku niestandardowej szuflady na niestandardowe kafelki mapy sugeruję: http://tiledrawer.com --- produkt, który korzysta z EC2 Amazona i Michała Migurskiego - który zapewnia inne wskazówki w tym wątku :)

Możesz także sprawdzić „Zbuduj swój własny serwer OpenStreetMap” http://weait.com/content/build-your-own-openstreetmap-server Używa stosu Ubuntu 10.04 / PostGIS / Mapnik.

Oczywiście, proszę spojrzeć na licencję OpenStreetMap przed budowaniem. http://wiki.openstreetmap.org/wiki/OpenStreetMap_License .

glennon
źródło
Dzięki, raz spotkałem się z TileDrawer, ale rozumiem, że muszę mieć do tego instancję Amazon EC2. Na razie nie chcę tego robić, może jestem po prostu zbyt leniwy :)
arconaut
Przeczytałem, że możesz uruchomić obraz EC2 na swoim komputerze za pomocą VirtualBox.
James
Witryna Tiledrawera została porzucona, repozytorium Github wciąż tam jest, ale także nieaktywne: github.com/migurski/Tile-Drawer (patrz także na stronie OSM Wiki )
chrki
11

Znalazłem dokładnie to, czego potrzebowałem: Maperitive . Ta aplikacja może ładować dane OSM (* .osm może być zapisany przez JOSM fi) i renderować ładne obrazy w oparciu o bardzo elastyczne i konfigurowalne reguły.

arconaut
źródło
Znalazłem, że Maperitive zawiesza się, gdy próbuję załadować plik .osm.bz2 lub nawet plik .osm.pbf. Pliki, które próbowałem, miały rozmiar około 185 MB, więc nic nie jest tak duże, jak rozmiar pliku planet.osm.bz2 (19 GB!), Którego naprawdę potrzebuję. Jak załadowałeś pliki?
Drew Noakes,
Drew, myślę, że próbowałem tylko o wiele mniejszych obszarów.
arconaut
Maperitive jest zamkniętym źródłem, zbudowanym na .Net, nie działa na Linuksie. Ale zdecydowanie ma jedną zaletę w stosunku do Mapnika: łatwiejszą stylizację.
Vanuan
3
Sugeruję TileMill jako alternatywę typu open source.
Vanuan
9

Dwie możliwości, w zależności od tego, ile samych danych OSM chcesz edytować.

Jednym z nich jest hostowanie własnego serwera OSM z kopią danych, którą można dowolnie edytować. Oprogramowanie do tego znane jest jako „The Rails Port”, można znaleźć tutaj: http://wiki.openstreetmap.org/wiki/The_Rails_Port

Innym jest użycie kartografii OSM jako tła dla własnych danych. Nie mam odpowiednich kwalifikacji, aby odpowiedzieć na to pytanie, ale może się okazać, że narzędzia takie jak QGIS (http://www.qgis.org) mogą zapewniać śledzenie nowych kształtów na podstawie mapy podstawowej OSM.

Michał Migurski
źródło
8

Tworzenie mapy dzieli się na kilka kroków:

  • wprowadzanie geodanych (które są punktami, liniami i wielokątami z odpowiednimi znacznikami)
  • stylizacja (określ wygląd obiektu na mapie)
  • renderowanie w obraz rastrowy (przekształcaj dane geodezyjne i styl w obraz za pomocą oprogramowania do renderowania)

Chciałbyś mieć narzędzie, które robi wszystkie dziwactwa za łatwym w użyciu interfejsem użytkownika. Ale niestety nie ma takiego narzędzia (mam nadzieję, że będzie). Musisz wybrać dedykowane narzędzie dla każdego kroku.

Używam następującej kombinacji narzędzi / przepływu pracy:

Wprowadzanie / pobieranie geodanych

  • Edytor JOSM :
    • pobierz mapę z serwera osm
    • edytować mapę
    • prześlij swoje zmiany na serwer osm (dlaczego nie udostępnisz swojej pracy?)
    • zapisz mapę w pliku * .osm
  • PostGIS / osm2pgsql
    • w razie potrzeby zaktualizuj plik stylu importu
    • zaimportuj mapę do lokalnego serwera

Jeśli nie chcesz udostępniać swojej pracy, możesz skonfigurować lokalny serwer OSM i zmusić JOSM do pracy z nim (dzięki czemu zapisywanie mapy do pliku * .osm i używanie osm2pgsql nie jest konieczne). Mimo to pamiętaj o licencji, jeśli korzystasz z części danych OSM.

Stylizacja

Stylizacja składa się z dwóch kroków:

  • ustaw warstwy / źródło danych
  • dostosuj linie / poligony / punkty / tekst.

Istnieją dwa formaty stylizowania mapy: „surowy” plik stylu mapnik i CartoCSS.

  • Mapnik to biblioteka renderująca, która zasila stronę OSM.
    • Skonfiguruj i edytuj plik stylu mapnika
    • otwórz plik stylu w przeglądarce mapnik

„Surowy” plik w stylu Mapnika jest trudny do edycji, a CartoCSS jest prostszą alternatywą. CartoCSS (wcześniej Cascadenik) można przekonwertować do pliku w stylu mapnik. Tilemill to narzędzie, którego używam do edycji / podglądu CartoCSS.

  • Tilemill .
    • Styl / podgląd mapy w tilemill
    • eksport do pliku mapnik * .xml.

Wykonanie

  • Niestandardowy skrypt Pythona dla mapnika
    • Zaktualizuj obwiednię / poziom powiększenia / rozmiar
    • renderuj mapę do pliku * .png.

[Opcjonalnie] Ustaw swoją mapę online

Oczywiście możesz po prostu użyć dużego pliku * .png do mapy, ale wyobraź sobie, ile czasu zajmie jej pobranie! Więc podzieliłeś mapę na kafelki przy różnych poziomach powiększenia.

  • Tilemill -> Mapnik -> MBTiles -> Mapbox

    • Możesz wprowadzić swoją mapę do Internetu za pomocą Tilemill i MapBox.

Niestety, aby zaktualizować mapę zgodnie z nowymi modyfikacjami OSM, nadal musisz pobrać i renderować ją lokalnie.

Jest więc lepsze rozwiązanie: CartoDB. CartoDB obsługuje CartoCSS. Dzięki temu nie musisz niczego instalować lokalnie. Wystarczy zaimportować do niego swoje dane, nadać styl CartoCSS i kliknąć przycisk udostępniania. Istnieje jednak limit wielkości bezpłatnej bazy danych. Ale ponieważ jest to oprogramowanie typu open source, możesz go hostować samodzielnie. Jest jeszcze jedno ograniczenie: możesz wizualizować tylko punkty, linie lub wielokąty.

PS

Każde narzędzie ma swoje ograniczenia, więc spróbuj eksperymentować.

Vanuan
źródło
3

Jeśli szukasz dobrego niestandardowego edytora map, spójrz na OCAD , to profesjonalne oprogramowanie do rysowania map. Na stronie pobierania dostępna jest bezpłatna starsza wersja.

Nie ma żadnego specjalnego wsparcia dla OSM, ale zawsze możesz użyć obrazu wyeksportowanego z OSM jako tła.

Jonas
źródło
3

Istnieje prostsza opcja do zabawy z danymi Open Street Map w formacie OSM. Możesz wypróbować FME z Safe Software (www.safe.com)

Aby uzyskać więcej informacji, przeczytaj o obsłudze OSM tutaj: http://blog.safe.com/2010/03/sharing-your-data-on-openstreetmap/

Kilka razy korzystałem z FME do tworzenia zestawów danych demonstracyjnych do szkolenia w moim regionie z wykorzystaniem danych FME i OSM

~ SRG

SRG
źródło
3

Domyślne kafelki OSM mają format „Google kafelkowy”, nazywane są Tile Map Service (TMS). W tej chwili nie można używać QGIS dla TMS. Ale możesz uzyskać dostęp do WMS pochodzącego z OSM, patrząc na inne usługi stron trzecich. Niektóre są powiązane tutaj: http://wiki.openstreetmap.org/wiki/WMS#Public_WMS_Servers

grzywka
źródło
1
Możesz użyć wtyczki OpenLayers ( github.com/sourcepole/qgis-openlayers-plugin ) w QGIS, aby pobrać kafelki OSM.
mattwigway 24.11.11
2

Możesz użyć The Style Editor z Cloudmade (komercyjne ramię OSM)

Bezpłatnie zarejestrować się i używać jako osoba prywatna.

Dzięki bardzo dobremu interfejsowi użytkownika będziesz mógł stworzyć swój własny styl mapy. Po dostosowaniu mapy za pomocą kolorów itp. Możesz użyć jej do osadzenia lub utworzenia łącza do strony z dostosowaną mapą.

Zobacz post na blogu http://mapperz.blogspot.com/2009/03/cloudmade-map-editor.html (więcej aktualizacji tam)

Mapperz
źródło
Cloudmade nie jest częścią OpenStreetMap: Czy CloudMade jest częścią OpenStreetMap?
scruss
1

Oficjalne mapy OSM są stylizowane za pomocą TileMill i renderowane za pomocą Mapnika. Oba narzędzia są niezwykle wydajne i elastyczne. Co jest dobre dla OSM, powinno być dla ciebie dobre!

Niestety procedura konfiguracji TileMill jest skomplikowana, przynajmniej jeśli chcesz renderować dane OSM. Istnieje wiele opisów Ubuntu lub Mac , ale komentarze na forach pokazują, że procedura jest trudna w systemie Windows.

Szczegółowy opis renderowania map za pomocą TileMill w systemie Windows znajduje się na Wiki TopoMapCreator .

Postępuje zgodnie z klasyczną procedurą:

  • Krok A: Pobieranie i instalowanie wymaganego oprogramowania (głównie bazy danych Postgresql / PostGis)
  • Krok B: Pobieranie i importowanie danych OSM do bazy danych
  • Krok C: Pobieranie i przetwarzanie wielokątów lądowych
  • Krok D: Tworzenie projektu TileMill
  • Krok E: Stylizacja i eksport mapy za pomocą TileMill

Więcej na Wiki TopoMapCreator .

Günter Schmudlach
źródło
1

Innym sposobem tworzenia niestandardowych map z danymi OSM jest biblioteka Mapsense.js i kafelki wektorowe Mapsense Earth. Interfejs do wybierania kolorów znajduje się na stronie http://styler.mapsense.co/, a wersje demonstracyjne pokazujące css i javascript na stronie developer.mapsense.co/examples/

Jedną z zalet takiego interfejsu API jest to, że możesz dodać wszystko, co chcesz za pomocą javascript / d3 (zdjęcia satelitarne, inne geo / topojson itp.).

Pełne ujawnienie: pracuję w Mapsense. :)

jmk
źródło
0

Jeśli chcesz po prostu utworzyć obraz mapy statycznej, możesz sprawdzić w ten sposób, aby utworzyć plik inkscape .svg z .osm s, jednak jest to trochę powolne. Następnie możesz otworzyć .svg, lub jeśli chcesz przekonwertować go na inny format (png?) Lub nawet załadować go do 3d studio lub Blendera:) ...

(Ponadto JOSM wydaje się mieć wtyczkę, która obsługuje osmarendera, ale nie udało mi się uruchomić go za jednym razem, gdy próbowałem ...)

ntg
źródło