MapEdit

Z UMP

(Przekierowano z Mapedit)
Przykład fragmentu mapy w programie GPSMapedit
Przykład fragmentu mapy w programie GPSMapedit

Mapedit to program, którego używamy do rysowania map.

Spis treści

Wersje

  • GPSMapedit – program shareware, ale wystarcza wersja niezarejestrowana, działa także pod Linux/wine, choć z drobnymi kłopotami
  • MapEdit++ – wersja z kilkoma ciekawymi ulepszeniami
    • mapedit++ 1.0.29ru – działa, nie wymaga dodatków (DLL) wspomnianych poniżej, ale nie jest polecany jako dość stara wersja
    • mapedit++ 1.0.56.324 – pozwala na zmianę kolorów w kolorowaniu adresów, nie obsługuje typów 3-bajtowych (typy takie konwertujemy na czas edycji do 2-bajtowych, stosując opcję --extratypes w Makefile/mont-demont-multi2.pl), źle obsługuje skórki
    • mapedit++ 1.0.56.tb – działa poprawnie, obsługuje natywnie typy 3-bajtowe, a także oferuje różne inne udogodnienia, np. podczas edycji "Extras".
    • mapedit++ 1.0.61.tb – kolejne ułatwienia w zakładce Extras, możliwość korzystania z Bookmarków (np. do zaznaczania punktów wymagających uwagi, niestyków itp.). UWAGA na poprawne kodowanie w nagłówku mapy (w przeciwnym razie polskie znaki zostaną skonwertowane do ASCII).

Nowe wersje ME/ME++ radzą sobie poprawnie z edycją typów 3-bajtowych (używanych np. do linii tramwajowych albo dróg planowanych). W starszych wersjach wymagana jest ich konwersja na czas edycji z typów 3-bajtowych na 0x0 (oraz odpowiedni wpis OrigType= bądź _Type= ) stosując opcję --extratypes w Makefile lub bezpośrednio w programie mont-demont-multi2.pl a także bezobsługowo w narzędziach "batowych"

Zady i walety

MapEdit 1.x "standardowy"

  • z reguły najszybciej wprowadza nowe funkcje, choć sporo nowych pojawia się tylko w wersji ++
  • w wersji zarejestrowanej wyświetla podkład Google Maps
  • potrafi automatycznie tworzyć elementy wektorowe na bazie skanów (nie polecamy)
  • pozwala obejrzeć elementy 3D w 3D :) (po przełączeniu na typ Navitel)
  • wygodna obsługa parametrów extras (choć nie pozbawiona wad)
  • wada: słabo widoczne węzły (krzyżyki)
  • wada: ograniczone opcje przyciągania elementów

MapEdit 2.x "standardowy"

  • w wersji zarejestrowanej rozszerzona obsługa podkładów po przez skrypty JScript
  • numeracja dostała przyciski zwiększenia i zmniejszenia (dodatkowo brany jest pod uwagę +/-2 dla nieparzystych i parzystych)
  • edycja i dodawanie extrasów dla wielu zaznaczonych obiektów naraz


MapEdit++ 1.0.61.tb

  • bogatsze opcje przyciągania (wyraźne, duże kolorowane węzły, konfigurowalna odległość przyciągania, podświetlanie najbliższych węzłów w trakcie edycji, przyciąganie do węzła, do przecięcia, pod kątem prostym i wiele innych), co też nie do końca jest zaletą bo musisz wybrać właściwe przyciąganie bo inaczej przyciąga nie tam gdzie chcesz.
  • obsługuje większe skany map (w stosunku do wersji nie zarejestrowanej)
  • wyświetla podkłady GoogleMaps (mapy i zdjęcia) oraz Bing -- od wersji 1.0.61-485, OSM, GeoPortal, PF (Navigo) i nawet UMP :-), można dokładać skrypty LUA do kolejnych
  • wspiera tworzenie skryptów LUA, za pomocą których można wykonywać przeróżne operacje na mapie (np. wybierać w skomplikowany sposób obiekty, dokonywać automatycznego przypisywania obiektów do plików, itp. itd.)
  • pozwala na edycję 3D bez przełączania na typ Navitel (wersja tb: możliwa jest też edycja parametrów 3D linii każdego typu – np. kolejowych)
  • wada: brak możliwości podglądu 3D w 3D
  • pozwala selektywnie włączać/wyłączać widoczność poszczególnych typów obiektów (osobno POI, linie, obszary), a także poszczególnych załączników (każdy z osobna – View/Show Layers Tree), ale już wyłączanie bookmarków jest gdzie indziej.
  • ułatwienia przy edycji właściwości elementów, np. podczas edycji "Extras" (wersja tb), możliwość edycji Label, Label2, Label3 na głównej zakładce (MEstd też to wprowadził od 1.0.68.1)
  • łatwe kopiowanie Extras z sąsiednich elementów (np. po dodaniu nowej ulicy – dwuklik i wybranie podpowiedzi z menu wypełnionego danymi z sąsiednich ulic) (MEstd też to wprowadził od 1.0.68.1)
  • łatwe kopiowanie danych adresowych z sąsiednich elementów (np. po dodaniu nowej ulicy – dwuklik i wybranie podpowiedzi w zakładce adresowej) (MEstd też to wprowadził od 1.0.68.1)
  • Możliwość grupowego dodawania komentarzy elementom (nie tylko ich zastępowania)
  • Rozbudowane operacje logicznego łączenia/rozłączania elementów (np. "Remove Polygons Intersections")
  • bookmarki respektują EndLevel
  • Kolorowanie śladów ze względu na prędkość, Wada: nie można sobie zdefiniować przedziałów wiec ślady rowerowe i piesze mają zwykle jeden kolor.
  • bug: skórki trzeba aktywować ręcznie po każdym uruchomieniu programu (View/Map Skins/...)(poprawione w 1.0.61)
  • wada: stare wersje wolniej wczytują mapy (poprawione w 1.0.56-340)
  • wada: z rzadka, ale potrafi się zawiesić (wersje przed 1.0.56-328 – w nowszych problem został zwalczony)

Instalacja

Ściągnij którąś wersję (zwykłą lub ++) i rozpakuj w katalogu, który Ci pasuje. W Linuksie nadaj plikowi mapedit.exe atrybut wykonalności.

Uruchom. Jeśli działa - ustaw parametry jak w kolejnym rozdziale.

Jeśli Mapedit (uruchamiany w wine) powoli działa, spojrzyj na http://wheart.bofh.net.pl/?page=mew lub używając narzędzia Winetricks odśwież pakiety vcrun2008, vcrun2010 i gdiplus. Niezależnie(?) od tego, ME czasem ma "zły okres" i działa wolniej szczególnie ze skórką i szczególnie na zbliżeniu. To mija po bliżej nieokreślonym czasie.

MapEdit++ wymaga do działania Microsoft Visual C++ 2008 Redistributable Package. Jeśli po rozpakowaniu i próbie uruchomienia MapEdit++ pojawiają się komunikaty typu "Wystąpił problem z uruchomieniem programu", albo o niemożności znalezienia bibliotek DLL, to trzeba zainstalować:

W systemie Linux z ME/ME++ uruchamianym pod Wine oznacza to konieczność zainstalowania odpowiednich bibliotek za pomocą programu winetricks. Szczegółowe instrukcje jak to zrobić można znaleźć na stronie Wojtka Penara. Ponadto zdarza się, że mimo to ME/ME++ nie chce uruchomić się pod wine, narzekając na brak "VCOMP90.DLL". Biblioteka ta jest zapewne poprawnie zainstalowana w podkatalogach wine, ale w takim miejscu, w którym nie zostaje znaleziona – wystarczy ją skopiować lub zrobić hardlinka do katalogu ~/.wine/drive_c/windows/system32/

Ustawienia

WAŻNE: po instalacji ME/ME++, przy pierwszym uruchomieniu (najlepiej ręcznie z katalogu, gdzie jest zainstalowany, a nie w procesie montowania plików) należy koniecznie z menu Narzędzia wybrać Opcje, a następnie w zakładce Edytuj odznaczyć Dociągnij do siatki. Pozostawienie tej opcji włączonej powoduje automatyczne dociąganie koordynat z plików UMP do siatki (także przy ładowaniu pliku). Dostaniesz więc zmiany we wszystkich plikach, a nie tylko w tych, które świadomie zmieniasz. Wynik będzie bezużyteczny dla innych edytorów. Tak popsutych danych nie ma sensu wysyłać nigdzie.

Warto też po pierwszym wczytaniu źródeł włączyć, i nie wyłączać już nigdy, kilka opcji:

  • Wyświetlanie / Pokaż numerację budynków – wyświetlanie numeracji
  • Wyświetlanie / Pokaż poziomy 3D – wyświetlanie danych wysokościowych przy węzłach (wiadukty, mosty, tunele)
  • Wyświetlanie / Show Layers Tree – dodatkowe okienko do selektywnego włączania/wyłączania poszczególnych warstw
  • Narzędzia / Opcje / Edycja / Dociągnij do innych obiektów – przyciąganie do sąsiadów (ME++: "Stick distance: 8", ale to już zależy od upodobań)
  • Narzędzia / Opcje / Load & Save / Ustawienia dla Formatu Polskiego: używanie [POI] i podobnych zamiast [RGNxx], "zachowuj wspólną sekcję [Cities]" (ME++: ale z odhaczonym kwadracikiem "save district name", Save zip... "as [Zip]= attribute per object").

Grafika:ME_SaveToMP.jpg

W wersji ME++ 1.0.61 wprowadzono możliwość wyświetlania śladów kolorowanych zależnie od chwilowej prędkości. W projekcie UMP kolorów śladów używany raczej dla pojedynczych plików *.plt, dla odróżnienia rzeczy nowych/starych/zmienionych. Dla przywrócenia takiej funkcjonalności w opcjach konfiguracji w zakładce "View" należy wybrać "single color" dla plików PLT.

ME++ 1.0.61.485 i dalsze pozwalają na korzystanie z podkładów takich jak GoogleMaps. W "Tools/Options" należy wybrać zakładkę "Web Layers", "Add", z "Providers" wybrać odpowiednio "Bing maps", "Google sat" lub "Google maps" (jeśli ich nie widać, kursor w dół lub kółkiem myszy). Warto też keszować lokalnie ściągane z sieci kafle: wybrać "Cache type: SAS Planet" i określić katalog, w którym te kafle mają być przechowywane. Jeśli definiujemy kilka profili (Google maps/sat), to każdy powinien mieć osobny katalog. Warstwy map wystarczy zdefiniować raz, następnie aby je włączyć w trakcie edycji mapy – w okienku "Layers Tree" klikamy na kolorową ikonę map i dodajemy odpowiednią warstwę.

Dla ułatwienia, w cvs (ściągnąłeś już) w katalogu narzedzia znajduje się przygotowany odpowiednio plik rejestru gpsmapedit.reg. Wystarczy go uruchomić i zgodzić się na wprowadzenie zmian do rejestru. Ustawia on wszystkie wymagane opcje dla ME.

Skórka Jeśli instalowałeś ręcznie, pobierz plik skórki i w Mapedit wskaż go: menu Wyświetlanie - Zarządzaj skórkami.

Krótka instrukcja How-To na temat pożenienia MapEdit++ z podkładami mapowymi online

Poniższy opis dotyczy programu MapEdit++ w wersji 1.0.61.497tb lub wyższej.

Aby w programie MapEdit++ cieszyć się podkładami z map on-line niezbędne są dwa kroki:

  1. Stworzenie warstwy (lub warstw) z podkładem (to robimy tylko raz)
  2. Uaktywnienie tejże warstwy w oknie edycji (przy każdym otwarciu pliku z mapą, jeśli chcemy korzystać z podkładu)

Rozdzielenie tych dwóch mechanizmów znacznie ułatwia pracę – tworzymy sobie kilka warstw podkładów z map on-line (co wiąże się bezpośrednio z konfiguracją środowiska pracy), a następnie przystępując do edycji wybieramy te, których będziemy chcieli używać (a więc uproszczona konfiguracja "per sesja").


Bing i OSM – natywne wsparcie w ME++

Aby utworzyć warstwę "podkładu" z mapy on-line należy wykonać następujące kroki:

  1. Z menu "Tools" wybrać pozycję "Options", w oknie dialogowym, które się otworzy, wskazać kartę "Web Layers"
  2. Kliknąć przyciśk "Add..." u dołu karty, wyświetli się okno dialogowe "Web Layer Properties"
  3. Z listy "Provider" wybrać "Bing Maps" lub "Osm Maps"
  4. Wybrać typ cache "SAS Planet"
  5. Opcjonalnie: w polu poniżej można wybrać folder, w którym przechowywany będzie cache kafelków (jeśli zostanie puste – ME++ sam o to się zatroszczy – umieści cache w katalogu użytkownika)
  6. Klikając "OK" zatwierdzić utworzenie nowej warstwy.

Uwaga: zaleca się włączenie opcji cache (ustawienie "SAS Planet" w miejsce "None". Autorzy nie ponoszą odpowiedzialności za wysokość rachunków za internet ;)


Uwaga nr 2: cache działa naprawdę & jeden z użytkowników, który przez pewien czas miał ograniczony dostęp do Internetu (500MB na miesiąc) chodził z laptopem do pracy, montował mapę i w wybranym miejscu mapy włączał podkład, pobierał kafelki, przybliżał i oddalał się, przesuwał, a w domu spokojnie rysował.

Uwaga nr 3: To, że cache działa, oznacza także, że raz ściągnięty kafelek pozostaje w nim aż do momentu, gdy zostanie skasowany, czyli... na zawsze, bo nie ma jak na razie żadnej automatycznej metody kasowania - w razie potrzeby trzeba to robić ręcznie. A trzeba na przykład wtedy, gdy oglądaliśmy wcześniej jakiś obszar, a właśnie otwarto nową drogę i mogły się pojawić nowe ślady tam, gdzie ich wcześniej w ogóle nie było. W takim wypadku trzeba albo usunąć wszystkie pliki, albo selektywnie. Na uniksach na przykład możemy usunąć wszystkie pliki ściągnięte w ciągu ostatnich 3 dni, albo wylistować starsze niż 14:

 find ./masstrack_cache -type -f -mtime -3 -exec rm {} \;
 find ./masstrack_cache -type -f -mtime +14 -ls

Na Windows porównywalny efekt można uzyskać poleceniami:

 forfiles /P d:\garmin\cache\masstracks /S /M * /D +3 /C "cmd /c del /q @file"
 forfiles /P d:\garmin\cache\masstracks /S /M * /D -14 /C "cmd /c echo @file"

Google, UMP i duże możliwości – wsparcie poprzez skrypty LUA

MapEdit++ wyposażony został w mechanizm interpretera skryptów LUA. W prosty sposób można go wykorzystać do utworzenia własnej warstwy podkładu mapowego. Przykładowe skrypty można pobrać ze strony naszego kolegi ;)

  1. Z menu "Tools" wybieramy pozycję "Options", a w oknie dialogowym, które się otworzy – kartę "Web Layers"
  2. Klikając przycisk "Add..." u dołu karty, wyświetlimy okno dialogowe "Web Layer Properties"
  3. Z listy "Provider" należy wybrać "User Defined Maps". Jeśli nie widzimy takiej opcji (widać tylko Bing, a kliknięcie nie rozwija listy), to zmieniamy opcję klawiszem kursor-w-dół, klikając na ikonki scrollbara po prawej, albo scrollbarem myszki
  4. W polu "Provider options:" po znaku równości uzupełniamy ścieżkę do odpowiedniego skryptu LUA (najbezpieczniej jest podać ścieżkę bezwzględną). Przykładowo u mnie linia ta ma postać:
UserProviderScript=G:\MapEdit-alpha\GoogleSatProv.lua
  1. Wybieramy typ cache "SAS Planet", w polu poniżej można wskazać położenie cache (analogicznie - jeśli lista się nie rozwija, to scrollbar)
  2. Zatwierdzamy utworzenie warstwy przyciskiem "OK"

Uwaga: zaleca się włączenie opcji cache (ustawienie "SAS Planet" w miejsce "None". Autorzy nie ponoszą odpowiedzialności za wysokość rachunków za internet ;)

Uwaga nr 2: (patrz Uwaga nr 2 w poprzednim punkcie)

Przykład podkładu MassTracks w mieście Słupca
Przykład podkładu MassTracks w mieście Słupca

Podkład MassTracks

Dzięki uprzejmości firmy Media-Lab, która to firma udostępniła ślady w formie podkładu (wątek na forum OSM) możemy rysować, porównywać, uzupełniać i korygować drogi na podstawie śladów od wielu anonimowych użytkowników. Jeżeli pojawia się zgłoszenie o nowej obwodnicy, o nowym rondzie i jest to przydatne ludziom to z dużym prawdopodobieństwem będzie to na MassTracks. Oczywiście trzeba włączyć skrypt MassTracks.lua.

Uwaga: zaleca się włączenie opcji cache (ustawienie "SAS Planet" w miejsce "None". Autorzy nie ponoszą odpowiedzialności za wysokość rachunków za internet ;)

Uwaga nr 2: (patrz Uwaga nr 2 w poprzednim punkcie)

Uaktywnienie warstwy podkładu

Aby widzieć utworzoną wcześniej warstwę należy wykonać kilka kroków:

  1. Otwieramy okno "Layers Tree" (z menu View, lub skrótem Shift + L)
  2. Wybieramy narzędzie "Add Web Layer".
  3. W oknie dialogowym jakie się ukaże wybieramy interesującą nas warstwę – wymienieni są providerzy oraz opcje, z jakimi będą działali.
  4. Przyciskiem "Select" zatwierdzamy wybór i... jeśli się nie dzieje, to z głównego paska narzędzi wybieramy przełącznik "Show Web Layers" (pomiędzy przełącznikiem "spinacz"/"Show Attachments" a przyciskiem "Undo")

Aby podkład się wyświetlał, musi być włączone wyświetlanie podkładów (ikonka "Show Weblayers" wspomniana powyżej) ale także wyświetlanie załączników (ikonka "spinacz"/"Show Attachments" albo skrót klawiszowy "e"). Poszczególne załączniki lub warstwy podkładów można indywidualnie włączać/wyłączać w okienku "Layers tree". Można uaktywnić sobie kilka warstw z podkładami i opcjami widoczności przełączać się między nimi. Każda w danej chwili "widoczna" warstwa będzie ładowana – im więcej warstw, tym (na słabym łączu) dłużej będą się one ładować. Aby to miało sens, warto jeszcze ustawić stopień przezroczystości poszczególnych warstw:

  1. W okienku "Layers Tree" klikamy prawym klawiszem na nazwie warstwy pokładu i wybieramy "Properties"
  2. W polu "Opacity" zmieniamy 255 na inną wartość z zakresu 100-200 (0 to całkowita przezroczystość, 255 – nieprzezroczystość)

Przesuwanie podkładu

Domyślnie warstwa podkładu jest zablokowana. Po jej odblokowaniu (Prawy przycisk na warstwie w okienku "Layers Tree", opcja "Unlock") możliwej jest jej przesunięcie celem "kalibracji" – celowo piszę w cudzysłowie, bo w żadnym wypadku nie jest to uczciwa kalibracja mapy – wiele map online ma z założenia rozmaite dystorsje (efekt "naciąganie" brzegów zdjęć lotniczych) czy przekłamania (duży budynek z dziedzińcem wewnętrznym ów dziedziniec utracił, za to widzimy trzy jego ściany zewnętrzne...) – pozostałości zabiegów mających sprawić, że mapa będzie ładnie się prezentowała w przeglądarce.

Inne

Zespół UMP ma zniżkową cenę na Mapedit. Zgłaszać się do Alf/red/a.