Home

Xastir i mapy wektorowe
Trochę tekstuTrochę zdjęć i nie tylko
Kto raz miał w ręku Garmina i korzystał z niego to z całą pewnością doceni
zalety map wektorowych. Możliwość ich skalowania bez utraty jakości i szczegółów
bije na głowę mapy rastrowe.

Tak się akurat składa, że linuksowy program Xastir potrafi obsługiwać mapy wektorowe
w formacie SHP.

Niestety na tym dobre wiadomości się kończą ;-(

Map wektorowych jako takich ogólnie dostępnych nie ma, a jeżeli już to za ciężkie pieniądze.
Jedynym znanym mi  źródłem takich map jest projekt UMP (darmowa mapa samochodowa dla urządzeń garmina)
tworzona przez zapaleńców i użytkowników wszelkiej maści garminów.
Grzechem było by nie wspomnieć o doskonałych mapach turystycznych tworzonych
przez GPSManiaka do których i ja dołożyłem też swoją cząstkę.

Mapy te dostępne są w postaci źródłowej (pliki *.mp) oraz w formacie garmina img.
Dzięki pogramowi cgpsmapper możliwe jest przerobienie map w formacie mp na mapy
w formacie shp.

I takie mapy xastir potrafi już otworzyć i wyświetlić.
Jak widać na załączonym obrazku mapa jest, ale raczej mało użyteczna. Nie można odróżnić warstwic od od dróg, rzek, jezior itp... Wszystko jednolite w smutnym szarym kolorze...
Dzieje się tak dlatego, że program xastir nie potrafi obsłużyć typów obiektów zawartych w plikach shp.
Kliknij, aby powiększyć
Twórcy Xastir poradzili sobie z tym w ten sposób, że obsługują TYPY obiektów za pomocą dodatkowgo pliku DBFAWK, który już niestety musimy stworzyć sobie sami ;-(
Do dyspozycji twórcy przygotowali nam takie komendy za pomocą, których możemy sterować sposób wyświetlania poszczególnych obiektów (typów) na ekranie.  Sposób tworzenia tego pliku jest opisany tutaj.

należy wspomnieć również, ze do prawidłowego wyświetlania należy w programie xastir zaznaczyć opcję:
  • Map->Enable Map Levels
  • Map->Enable Map Labels
  • Map->Enable Area Color Fills

Dzięki temu uzyskamy mozliwość sterowania wyświetlaniem na ekranie, zupełnie tak jak w urządzeniach garmina, a więc poszczególne detale zaczynają się pokazwyać w zależności od stopnia powiększenia.
# This dbfawk file is used to map arbitrary dbf data that accompanies 
# a shapefile into Xastir canoncical values of: 
#   key     - szukaj klucza
#   lanes   - szerokość lini (usually a road but applies to rivers,
#   color   - color to draw the road
#   name    - name of the road for labels
#   filled  - czy polygon ma być wypełniony, czy nie
#   fill_color - color to fill polygon with
#   pattern - line pattern for road, river, etc. (0 - solid; 1 - dash;  2 - double dash)
#   display_level - highest zoom level at which to display the feature
#   label_level - highest zoom level at which to display the label
#   symbol  - 3 char 'TIO': table, ID, overlay  ver, etc. (0 - solid; 1 - dash;  2 - double dash)
#   display_level - highest zoom level at which to display the feature
Efekt końcowy możemy zobaczyć po prawej stronie.
Daje się tutaj zauważyć parę niedoskonałości. Pierwsze co rzuca się w oczy to krzyżujące się nazwy ulic. Obawiam się niestety, że to już sam xastir tak to interpretuje.  Nazwy wyświetlają się zawsze na "przedłużeniu" drogi/ulicy, a nie na jej środku.
Centrum Krakowa

Ulice Poznania
Czasami chcemy wiedzieć co dzieje się na terenie całego kraju bez dokładnego śledzenia poruszających się stacji. W tym celu właśnie stworzyłem PL_topo_lite, która obejmuje zasięgiem obszar całego kraju z podziałem na województwa, powiaty i z zaznaczenim większych miast i głownych dróg. Topo lite
Do poprawnego wyświetlania potrzebne są wspomniane wcześniej pliki DBFAWK.
Dla tego projektu stworzyłem 3 pliki line.dbfawk, point.dbfawk oraz polygon.dbfawk
Za pomocą tych plików obsługuję całą mapę Polski. Ponieważ każda mapa wymaga tych plików w swoim katalogu, więc aby ich nie powielać niepotrzebnie umieściłem je w katalogu /usr/local/share/xastir/config a do poszczególnych katalogów z mapami utworzyłem po prostu miękie dowiązanie. Gotowe pliki DBFAWK do pobrania leżą tutaj.
Oczywiście pliki te można w dowolny sposób modyfikować, aby osiągnąć zadowalający cel.

Szczegółowa mapa całej Polski to już są megabajty pamięci i wyświetlanie naraz więcej niż 2-ch województw mija się z celem ze względu na znaczne spowolnienie w przerysowywaniu mapy na ekranie.
Poszczególne województwa (odpowiadające podziałowi z projektu UMP) można pobrać klikając na odpowiednie miasto.
Mapy mają oczywiście sporo niedociągnięć (chociażby problemy z polskimi literkami),
ale i tak myślę, że sprawuje się całkiem nieźle.

Oczywiście w samym programie xastir możemy sobie sami wybrać tło, czcionkę itp...


Zachęcam do wypróbowania i rozwijania projektu.
cd