Styl do Maperitive dla map drukowanych

Można też eksportować do bitmapy, można poradzić sobie wtedy bez Mobaca (Tools | Export to bitmap) i drukujemy plik. Stosuję to jak chcę mieć jakiś konkretny kawałek terenu do jednorazowego wykorzystania.

Przydaje się też umiejętność drobnego zmieniania stylu - np. pokaż specjalnie wszystkie drogi bez surface=*, wtedy ma się ładnie pokazane co chce się zmapować.

Małe jednorazówki może i faktycznie szybciej i wygodniej będzie przez export-bitmap. Przy czym tu chyba trzeba dać Set printing area (czy jak to się zwało, coś z print w każdym razie). Tu trzeba dodać zoom=poziom (np. 16) i stanowczo zalecam dodać dpi=300 oraz file=nazwa.png, np.

export-bitmap zoom=16 dpi=300 file=mapa.png

Ale jednak będę upierał się, że “poważniejszą” mapę szczególnie interesującego nas obszaru lepiej przygotować do druku przez Mobaca.

Oczywiście, takie mapki robię jak wiem że gdzieś w mieście będę czekał przez kilka/kilkanaście minut. I dzięki za info o Mobacu, myślę że przyda się.

Dość wylegiwania się, czas wrócić do grzebania. :slight_smile:

Wstępnie dodane (jeszcze wymagają szlifu/znalezienie lepszej ikonki):

  • paśnik (amenity=game_feeding OR amenity=feeding_place): ⟰
  • ambona myśliwska (amenity=hunting_stand): Ħ
  • krzyże i kapliczki (historic=wayside_cross OR man_made=cross OR historic=wayside_shrine): :latin_cross:
  • schronienie (amenity=shelter): :umbrella:
  • fixme (fixme=*): ❢ treść ❢

Ikonki czcionką DejavuSans:

Do wieczora postaram się napisać porządną instrukcję tworzenia mapy (i muszę w końcu wrzucić styl na wiki).

Dadaj jeszcze “highway=street_lamp”

Dodano (jak zwykle wstępnie, do doszlifowania):

  • highway=street_lamp: آ
  • emergency=fire_hydrant: н
  • emergency=suction_point: ⇡

Z tymi wszystkimi nowymi tagami coraz bardziej zaczyna mi brakować znaków na ikonki, chyba będzie trzeba niedługo zaakceptować konieczność rozwinięcia stylu o ikonki graficzne…

Wstępna wersja łopatologicznej instrukcji drukowania map z Maperitive. Później jeszcze dodam zrzuty ekranu oraz przykładowy atlas. A jeszcze później dodatkowe sztuczki typu kieszonkowy atlas A5/A6, oskryptowanie Maperitive celem wygenerowania mapy jednym kliknięciem.

I wybaczcie, że tyle mi to zajęło. :slight_smile:

1. Instalacja i pierwsze uruchomienie

Pobieramy najnowszą wersję Maperitive ze strony projektu: http://maperitive.net/download/Maperitive-latest.zip

Następnie pobieramy i instalujemy (oczywiście jeśli już nie mamy) środowisko uruchomieniowe .NET (Windows) lub Mono (Linux, chyba również Mac OS X). W przypadku Windows udajemy się na stronę http://www.microsoft.com/net/downloads, w przypadku Linuksa pakiet powinien znajdować się w repozytorium i wystarczy zainstalować go menedżerem pakietów (w Debianie, Ubuntu, Mincie i pochodnych należy zainstalować pakiet mono-complete).

W końcu możemy uruchomić Maperitive.exe (Windows) lub Maperitive.sh (Linux), po chwili ukaże się następujące okno:

maperitive_pierwsze_uruchomienie.png

Po zamknięciu okna asystenta, będziemy mieli przed oczami ulubione okolice autora programu. Jeśli ktoś nie lubi, może wyłączyć przy okazji wyświetlanie siatki geograficznej (w menu: Map > Show Grid) oraz skali (Map > Show Map Scale).

2. Renderowanie mapy

2.1. Załadowanie stylu

Jeśli interesuje nas renderowanie jednej konkretnej mapy, najprościej będzie zapisać styl (np. paper.mrules w pliku Default.mrules, który jest domyślnym stylem (dla porządku warto zachować jego kopię). Dzięki temu nie będzie trzeba wykonywać dodatkowych czynności aby go wczytać.

W przeciwnym razie będzie trzeba wczytywać styl wpisując w wierszu poleceń (Command prompt):

use-ruleset Rules/paper.mrules as-alias=Paper

aby dodać go do dostępnych styli, a następnie wybierając go w menu Map > Switch to Rules > Nazwa.

2.2. Pobranie danych OpenStreetMap

Dane OSM można pobrać bezpośrednio w Maperitive lub wcześniej zapisać je na dysku i wczytać w Maperitive. Pierwsza metoda sprawdza się idealnie jeśli chcemy na szybko sprawdzić lub opracować dane miejsce bez specjalnych przygotowań. Jednak jeśli mamy specjalnie interesujące nas miejsce, które dość często renderujemy, testujemy własne zmiany w stylu lub z innych powodów wielokrotnie renderujemy ten sam fragment mapy — wtedy lepiej jest pobrać dane raz do pliku (lco jakiś czas go odświeżając oczywiście), niż ciągle pobierać te same dane przy każdym uruchomieniu Maperitive.

Aby pobrać dane do pliku najlepiej udać się na osm.org, kliknąć Eksport na górnej belce, po czym w menu bocznym Ręcznie zaznacz inny obszar, ustawić granice obszaru na mapie i pobrać przez wygenerowany link “Overpass API”. Jeśli obszar będzie pobierany wielokrotnie można sobie ów zapisać link (np. zakładka w przeglądarce, polecenie wgeta).

Aby pobrać dane w Maperitive wystarczy wybrać w menu Map > Download OSM Data (Overpass API). Domyślnie pobierze się obszar widoczny na podglądzie mapy, można go zmienić klikając na mapie prawym przyciskiem myszy (PPM), klikając na Place Geometry Bounds Here i rozciągając granicę do pożądanego obszaru.

Po wczytaniu danych OSM dowolną metodą na podglądzie mapy wyświetli się wstępnie wyrenderowana mapa. Możemy teraz wyłączyć podgląd mapy OSM kilkając na gwiazdkę przy nazwie warstwy w okienku Map Sources w prawym dolnym rogu.

2.3. Wyrenderowanie mapy

Mapę można wyrenderować na kilka sposobów: pojedynczy plik rastrowy PNG, pojedynczy plik wektorowy SVG, kafelki lub kafelki w kontenerze SQLite (tzw. MBTiles). Tutaj omówimy tylko pojedynczy plik rastrowy oraz kafelki, informacje o reszcie można znaleźć w dokumentacji Maperitive.

2.3.1. Pojedynczy plik rastrowy PNG

Metoda jest dobra do tworzenia na szybko niewielkich fragmentów mapy. Wystarczy kliknąć na mapie Place Printing Bounds Here, rozciągnać obszar do pożadanego rozmiaru i w wierszu poleceń wpisać:

# mapa w powiększeniu 16
export-bitmap zoom=16 dpi=300 file=nazwa_pliku.png
# mapa w konretnej skali, np. 1:25000
export-bitmap map-scale=25000 dpi=300 file=nazwa_pliku.png

Jeśli chcemy utworzoną mapę wydrukować należy dodać opcję dpi=*, do druku najlepiej przynajmniej 300. Jeśli plik ma być wyświetlany wyłącznie na ekranie komputera można tę opcję pominąć.

2.3.2 Kafelki

Jeśli chcemy przygotować mapę staranniej polecam jednak wyrenderować kafelki, a następnie przy pomocy Mobaca złożyć mapę PDF (o czym za chwilę). Ponadto kafelki można użyć w innych programach do wyświetlania map, planowania tras itd.

Aby je wyrenderować należy zaznaczyć granicę obszaru przy pomocy PPM > Place Geometry Bounds Here (można wykorzystać wcześniej ustawioną granicę podczas pobierania danych w Maperitive), po czym w wierszu poleceń wpisać:

generate-tiles minzoom=10 maxzoom=17

Oczywiście minimalne i maksymalne zbliżenie można podać własne (przy czym warto mieć na uwadze, że im większe zbliżenie tym dłużej się one generują, odradzam podawanie wartość 18+ dla większego obszaru). Kafelki utworzą się w katalogu Tiles. Można też podać własny katalog za pomocją opcji tilesdir={ścieżka}.

3. Mobac

Mobac to program do tworzenia atlasów i map dla najróżniejszych programów. Ponadto pozwala on też na przygotowanie map papierowych, z czego skrzętnie za chwilę skorzystamy.

3.1. Instalacja i konfiguracja

Najpierw należy pobrać oraz rozpakować Mobaca ze strony projektu, do jego uruchomienia potrzebne będzie jeszcze środowisko uruchomieniowe Java lub OpenJDK. Ponadto musimy dodać wygenerowane kafelki do źródeł programu — w tym celu tworzymy plik mapsources/maperitive.xml o treści:

<?xml version="1.0" encoding="UTF-8"?>
<localTileFiles>
   <name>Maperitive</name>
   <sourceType>DIR_ZOOM_X_Y</sourceType>
   <sourceFolder>{/ścieżka/do/Maperitive/Tiles/}</sourceFolder>
   <backgroundColor>#000000</backgroundColor>
</localTileFiles>

Oczywiście należy podać właściwą ścieżkę do katalogu z wygenerowanymi kafelkami. Dobrze będzie też uruchomić Javę z maksymalną ilością dostępnej pamięci (Windows, flaga -Xms64m -Xmx1024Mw Linuksie — znów należy podać odpowiednią wartość).

Przy pierwszym uruchomieniu Mobaca zostaniemy poproszeni o podanie nazwy atlasu (dowolny) oraz jego rodzaj (Paper Atlas (PDF)). Od razu możemy ukryć prawy panel GPX, który do niczego nam się nie przyda: Menu > Panels > Show/Hide GPX Panel. Następnie dokonamy kilku zmian w ustawieniach — na dole lewego panelu klikamy na przycisk Settings, gdzie:

  • w zakładce Display możemy ustawić kolor i krój czcionki siatki (jeśli z niej będziemy korzystać)
  • w zakładce Paper Atlas możemu ustawić:
    • format oraz orientację papieru (w większości przypadków A4, ale można sobie też przygotować np. ścienną mapę B1)
    • marginesy (jeśli chcemy trzymać mapy w segregatorze sugeruję lewy margines (oraz prawy jeśli drukujemy dwustronnie) ustawić na 1,70 cm, aby zrobić miejsce na dziurkacz)
    • pokazywanie lub nie siatki (WGS 84 Grid)
    • pokazywanie lub nie numerów stron i odnośniki do stron na górze i na dole (Page numbers)
    • pokazywanie lub nie skali (Scale bar)
    • pokazywanie lub nie róży wiatrów (Compass)

Osobiście zalecam włączenie numeracji stron w przypadku kilkustronicowych atlasów, zwłaszcza jeśli atlas ma kilka „rzędów” stron, reszta ustawień wg własnych upodobań.

Bardzo ważnym ustawieniem jest jeszcze Resolution — dla druku powinniśmy ustawić odpowiednio duże, najlepiej przynajmniej 300. Ponadto można ustawić Overlap (na ile sąsiednie kartki mają na siebie zachodzić) oraz Crop (minimalna powierzchnia jaka musi być zajęta na stronie, aby została ona do atlasu dodana — tu sugeruję ustawić 100%, dzięki czemu unikniemy drukowania niepełnych stron, a podczas zaznaczania obszaru mocno przesadzić w prawym dolnym rogu).

3.2. Przygotowanie atlasu

Korzystając z ogólnej wartswy (np. MapQuest) zbliżamy do obszaru, dla którego przygotowaliśmy kafelki. Następnie:

  • w zakładce Map Source w lewym panelu zmieniamy warstwę na Maperitive (czy jakkolwiek nazwaliśmy warstwę),
  • przeciągając PPM na mapie zaznaczamy interesujący nas obszar,
  • w zakładce Zoom Levels wybieramy interesujące nas zbliżenia,
  • w zakładce Atlas Content nadajemy nazwę warstwie atlasu (cokolwiek) i klikamy Add selection

Po czym możemy w końcu wygenerować PDF(-y) klikając w lewym panelu Create Atlas.

Dzięki wielkie w imieniu całej społeczności, Psadk! :slight_smile:

Czy mógłbyś zrobić z tegosamego tekstu istrukcji stronkę Wiki, żeby to nie umknęło towprzyszłości w gąszczu jakim jest nasze Forum?
No i serdeczna prośba, aby ktoś to wypróbował czy instrukcja jest wystarczająco łopatologiczna.

Oczywiście. Jak porobię zrzuty (pewnie jutro, dziś mi się już szczerze powiedziawszy nie chce) to wrzucę styl i opis na wiki.

Przyłączam się do prośby. :slight_smile:

Pod linuxem, pierwszy raz korzystałem z tych programów więc do oceny się nadam.

2.1

Brak podanej lokalizacji gdzie to dodajemy.

Potrzebna pełna ścieżka. use-ruleset /home/user/Pulpit/Maperitive/Rules/paper.mrules as-alias=Paper

Map > Switch to Rules > Paper
2.2

Warto użyć pełnego adresy będzie bardziej widoczne i czytelne. http://www.openstreetmap.org
2.3.1. 2.3.2
Pod linuxem domyślnie zapisuje się w Katalogu domowym.

3.1
Warto dodać gdzie na stronie znajduje się plik do pobrania.
Warto dodać że uruchamia się przez Mobile_Atlas_Creator.jar

Może jestem upierdliwy ale warto dodać że robimy to w katalogu z programem.

3.2.

Przy zmianie wyświetla, błąd że nie znaleziono ścieżki. Usunięcie nawiasów klamrowych w maperitive.xml naprawiło błąd.

A po kliknięciu Create Atlas, coś się wiesza i atlasu nie tworzy :/. Jest za późno by przy tym siedział więc sprawdzę to jutro.

Dzięki za uwagi, uwzględnię za chwilę. Jakby ktoś na Windows mógł jeszcze przetestować, to byłoby fajnie.

Prawdopodobnie zależy to od sposobu uruchamiania, ja przechodzę w konsoli do katalogu z Maperitive i tam uruchamiam. Wtedy widocznie wystarczy ścieżka względna i zapisuje się w katalogu Maperitive.

Witam, proboje stworzyc mape na sciane dosyc duza (1630mmx2330mm) w Mapertive. Mam taki problem ze nie moge wygenerowac mapy w skali 1:3000 lub w powiekszeniu 16 bo niby mapa jest za duza (ERROR: Could not generate the bitmap, it is probably too big.). Pobralem Mobac i stralem sie utworzyc mape w pdf za pomoca kafelek z Mapertive lecz utworzony plik html cos mi nie dziala:

<?xml version="1.0" encoding="UTF-8"?> Maperitive DIR_ZOOM_X_Y {C:\Documents and Settings\Mirek\Pulpit\Maperitive\Maperitive\Tiles\16\35566} #000000

Z gory dziekuje. :roll_eyes:

No rzeczywiście zamieszałem z tymi nawiasami klamrowymi :slight_smile:

Prawidłowo:

<?xml version="1.0" encoding="UTF-8"?>
<localTileFiles>
   <name>Maperitive</name>
   <sourceType>DIR_ZOOM_X_Y</sourceType>
   <sourceFolder>C:\Documents and Settings\Mirek\Pulpit\Maperitive\Maperitive\Tiles\</sourceFolder>
   <backgroundColor>#000000</backgroundColor>
</localTileFiles>

Czyli prawie 4A0? Z góry uprzedzam, że będzie potrzeba spoooooooro RAM-u, żeby to wygenerować.

PS
Przenoszę powoli opis na wiki: https://wiki.openstreetmap.org/wiki/User:Psadk/Maperitive. Zaraz będę robił i dodawał zrzuty.

Super. Ten plik juz dziala jak nalezy ale teraz mam problem z wyeksportowaniem mapy pdf. Plik pdf ma 0 kb i nie wiem dlaczego, nie mozna go odtworzyc a robie wszystko zgdonie z poleceniami. Czy to moze byc wina tak duzego rozmiaru? Czy problem lezy gdzie indziej?

Ciężko powiedzieć. Miałeś jakiś błąd?

“Zaraz” porobię jeszcze zrzuty ekranu jak poszczególne kroki wyglądają.

Tymczasem może spróbuj zrobić testowo mniejszy atlas A4.

Edycja: na początku źle napisałem, że zakres mapy w Mobacu się zaznacza “prawą myszą” — należy zaznaczyć “lewą myszą” (taki różowawy prostokąt będzie). Może jest 0kB, bo nie zaznaczyłeś mapy?

Błędu żadnego nie było. Wydaje mi się ze mam za mało Ramu na tak dużą mapę, spróbowałem a4 zrobić i dało rade przy 2GB Ramu lecz już a3 nie chciało. W Mapertivie zrobiłem ta mapę na taki rozmiar tylko jest problem z dps, mianowicie jest 96dps a to stanowczo za mało i jest problem z wydrukowaniem jej.

Hę? Zdaje się, że nie przydzieliłeś dla Javy całej pamęci. Ja na 1 GB bez problemu do A1 dochodzę przy 300 DPI. Przy odrobinę większym B1 muszę już trochę zmniejszyć (przy 250 DPI się generuje, dokładnej granicy nie szukałem).

Niestety nie wiem dokładnie jak zmienić przydział pamięci dla Javy w Windowsie. Niby jakąś instrukcję znalazłem i zalinkowałem, ale szczerze nie wiem czy działa.

Zmienilem w Javie ten przydzial pamieci (type -Xms2048m - that assigns 2GB memory for the Java.) jak w linku do win7, to samo zrobilem na xp i dalej robi mapy po 0 Kb ( oczywiscie a4 robi normalnie ) , ktorych nie moza otworzyc. Tak samo jest na 200 dpi jak i na 300 dpi.

A spróbuj -Xmx2048m lub -Xmx2048M

Dalej nic nie wychodzi, zmienilem dpi na 200 i okazalo sie ze juz a3 tez moge wygenerowac lecz a2 juz nie. Ustawilem na (-Xmx2048m lub -Xmx2048M), zaden z nich nic nie pomogl.