Format PNT

Z UMP

Spis treści

Nowe pliki semi-xml (przyszłość porzucone)

Uwaga

To jest propozycja, w fazie planowania bądź częściowego wdrożenia.

cała dyskusja i przygotowanie do konwersji jest na http://ump.fuw.edu.pl/flyspray/index.php?do=details&task_id=6499&project=2

W stosunku do tego co poniżej jest kilka różnic :

52.00000,21.00000,PIZZA,Pinacoteca,UL=Bukowińska,NR=12,MIASTO=Warszawa,URL=www.pinacoteca.pl

Jest propozycja zmiany zapisu plików z punktami z formatu pnt na krzyżówkę csv/xml:

52.00000,21.00000,Pinacoteca,PIZZA,ulica=Bukowińska,dom=12,miasto=Warszawa,url=www.pinacoteca.pl
52.00010,21.00010,Euronet,ATM,miasto=Warszawa,telefon=+4822997,kartyID=93275

(cztery pierwsze pola obowiązkowe i stałe, reszta dowolna obecność, kolejność i tak wymuszą ME/skrypty-demont).

Wymagania/zyski:

  • trzymamy dowolne "atrybuty" (godziny otwarć itd)
  • trzymamy indeksy obcych spisów (nadzieja na karty.pl)
  • jednolita (i jedna) tablica tłumaczeń alias<->typhex.

Możliwe nazwy atrybutów, w celu oskryptowania (tłumaczone na atrybuty znane MapEditowi) (małe/Duże nieważne?)

  • miasto
  • kodpoczt (kod?)
  • ulica
  • dom
  • tel (telefon?)

pozostałe nie są zamieniane przez skrypty, i ME też ich nie rusza.

Do dyskusji:

  • automatyczny rozdział POI na poszczególne pliki (sprawdź cvs:narzedzia/pnt2poi.txt)
  • Skrypty będą ostrzegały przy edycji o konieczności podjęcia dodatkowych akcji dla zewnętrznych źródeł danych. Jakiś marker?
  • bez nagłówków
  • komentarze w tej samej linijce.

Obecne pliki .pnt (także cities, radary)

W projekcie ump spotykamy dwie wersje plików PNT. W dużym skrócie, znaczenie pól przedstawia ten dokument:

City.pnt

nagłówek

OziExplorer Point File Version 1.0
WGS 84
Reserved 1
Reserved 2
255,65535,3,8,0,0,CITY obszar

przykładowy wiersz:

  52.23175,  21.00552, 10,Warszawa
       lat,       lon, wielkość,nazwa miasta

wytłumaczenia wymaga wielkość miasta. Jest ona brana z liczby mieszkańców, a przedziały to odpowiednio:

0,1000,2000,5000,10000,20000,50000,100000,200000,500000,1000000,2000000
 0    1    2    3     4     5     6      7      8      9      10      

i tak od 0 do 999 jest wielkość=0 ; od 1000-1999 wielkość=1 ; itd

w chwili obecnej, znaczenie przedziałów jest trochę inne:

  • 0 - części wsi/miast, niesamodzielne przysiółki itp
  • 1 - wsie
  • 2 - wsie duże, gminne, z urzędami gmin, itp (nie przesadzać!, na ~30k wsi, tu powinno trafić około 2-3000 max)
  • 3-10 - miasta wg liczby mieszkańców (z mniejszą ilością trafiają do 3)

w nagłówku napis CITY jest obowiązkowy

POI.pnt

nagłówek

OziExplorer Point File Version 1.0
WGS 84
Reserved 1
Reserved 2
255,65535,3,8,0,0,nazwa.pnt

wiersze:

  52.17811,  20.98254,  lvl,Nazwa,Ulica,Miasto,TYP,kod_pocztowy
  52.17811,  20.98254,  lvl,Nazwa,Ulica,Miasto,TYP
; komentarz do wiersza poniżej
  52.30318,  20.67741,  1,Ławska Góra,96,,GORA

Komentarz jest wykorzystywany przez mapkę www:

  • komentarz będzie wypisywany w dymku po wyszukaniu punktu
    • nie będzie wypisany "zakomentowany komentarz" czyli linijka zaczynająca się od ;;
  • numer zgłoszenia FS# będzie klikalny
  • adres http:// będzie klikalny
  • jeżeli w linijce komentarza będzie wyłącznie adres http:// to będzie on przeniesiony podczas demontażu w odpowiednie miejsce, tj. czwarty segment danych adresowych.


lvl to level, na którym się kończy wyświetlanie POI (0-4). Np. wartość 2 oznacza, że POI wyświetlany będzie na poziomach 0, 1 i 2.

Ulica może mieć rozszerzoną postać:

ulica;nr domu
ulica;nr domu;telefon
ulica;nr domu;telefon;klucz=wartość

ulica Nazwa ulicy lub skrzyżowanie w formacie ulica1/ulica2. Może też być specyfikacja obiektu, np. "Pasaż handlowy° poziom 2° ulica" - znaki ° w kompilacji zostaną zamienione na przecinki, ulica powinna być ostatnia, bo do niej zostanie doklejony numer domu.

nr domu Format 12, 12a, 3/5 (uwaga: nie stosować minusów)

telefon Format +48115551234 lub ze spacjami w "typowych" miejscach (np. +48 11 5551234 dla stacjonarnych, +48 601 123456 dla komórkowych i infolinii)

klucz=wartość Cokolwiek co zawiera = i nie zawiera średnika. Używane w szczególności do:

  • trzymania numeru stacji Orlenu (idOrlen=5467)
  • linków do stron www danego punktu (url=http://coscos.pl)
  • skróconego linku do polskiej wikipedi (wiki=Uzupełniająca_Mapa_Polski)


TYP to zalecana nazwa z tego dokumentu, może też przyjmować wartości numeryczne wg konwencji Polish Format np 0x0012, ale taka forma nie jest zalecana.

kod_pocztowy jest nieobowiązkowy

reszta pól musi wystąpić (jeżeli pole nie ma wartości, to jest puste)

Wyjątki dla typów:

  • GORA w polu "Ulica" przechowuje wysokość w metrach (zaokrąglona do pełnych metrów)
Są pewne komplikacje z wysokościami szczytów przełęczy poziomnic itp.
Oryginalnie wysokość definiowało się w następujący sposób:
Jeśli Label obiektu ( nazwa ) miała fragment ~[0x1f] po którym była liczba
to kompilator traktuje to jako wysokość w jednostkach mapy ( u nas metry )
Np.Rysy~[0x1f]2499
U nas jest tak że można albo wpisywać w ten sposób (0x1f), albo (preferowane) użyć pola Ulica.
Wtedy nasz skrypt montujący przerabia przed kompilacją na formę oczekiwaną przez kompilator.
Niestety GPSMapEdit uznaje pole Ulica dla szczytów za niepotrzebne i je wyszarza.
Wniosek.
1) Możesz rysować tak jak teraz (ktoś kiedyś poprawi)
2) Rysować w mapedicie tak
- utworzyć pkt z adresem np. apteka
- wpisać w pole ulica 2499
- w pole nazwa Rysy
- w pole extras skopiować Ctrl-C Ctrl-V
Plik=src\NOWY_SACZ.geografia.pnt
Typ=GORA
- wpis Typ= jest ważniejszy niż typ punktu, więc mamy góry
3) Poprawiać wysokości edytorem tekstu w pliku pnt.


  • BUS,TRAM, PKP w polu "nr domu" przechowują fragment odnośnika do strony www z rozkładami - patrz kolejny rozdział
  • fotoradary FA,FP,FS,KD,RA,NM,OP,PK - kod_pocztowy to dodatkowy komentarz, w polu Nazwa po znaku @ definiuje ograniczenie prędkości

mogą występować kolejne znaki @ ich znaczenie: Nazwa[@predkosc[@dwukierunkowy@kąt_patrzenia_radaru]]

Linki do rozkładów jazdy

Jeśli dane miasto udostępnia rozkłady jazdy na www, to do punktów przystanków można dodać informację zamienianą na link do strony z rozkładem jazdy dla konkretnego przystanku. Identyfikator przystanku umieszczany jest tam, gdzie normalnie znalazłby się numer budynku przy ulicy. Przykłady:

Kraków

 50.02991,  19.93602,  0,Łagiewniki,pętla 10-11-18° Brożka/Wadowicka;0553-T,Kraków,TRAM

-> link do rozklady.mpk.krakow.pl

Płock

 52.54975,  19.69425,  0,Jachowicza Dworzec,Jachowicza;1,Płock,BUS

Nazwa przystanku "Jachowicza Dworzec" -> link do www.kmplock.eu

Poznań

 52.41006,  16.88880,  0,Bukowska,7° Przybyszewskiego;BUKO-01,Poznań,TRAM

Nazwa przystanku "BUKO-01" -> link do www.mpk.ipoznan.pl

Rybnik

 50.12199,  18.53042,  0,Ryb. Kuźnia Szkoła,12°13°14°32°41° Rybacka;75,Rybnik,BUS

Przystanek numer 75 -> link do www.ztz.rybnik.pl

Warszawa

  52.19567,  20.96337,  0,1 Sierpnia 01,aleja Krakowska;400901,Warszawa,BUS

Grupa przystankowa 4009, przystanek 01 -> link do ztm.waw.pl

Wrocław

 51.094960,  17.128165,  0,OPATOWICE,120° Opatowicka;85512,Wrocław,BUS

Numer słupka 85512 -> link do mobi.wroclaw.pl

Ze względu na automatyzację, istotne pola to współrzędne, poziom widoczności, numer słupka, miasto i typ (BUS/TRAM) - pozostałe pola są automatycznie uzupełniane/nadpisywane przez skrypty przetwarzające uaktualnione rozkłady jazdy)

PKP

 52.22883,  21.00290,  2,Wwa Centralna,Aleje Jerozolimskie;5100065,Warszawa,PKP

Kod HAFAS stacji według spisu -> daje na mapie link do rozkładów, a wprowadzanie kodów do źródeł śledzimy na Flyspray.

uwagi

W miastach, w których stosujemy odwołania do rozkładów jazdy przystanki BUS i TRAM trzymamy w osobnych plikach, co ułatwia ich edycję, automatyczne przetwarzanie oraz badanie kompletności. Są to odpowiednio POI-Miasto-busstops.pnt i POI-Miasto-tramstops.pnt. Ponadto linie tramwajowe (POLYLINE typu 0x1e010) trzymamy w plikach MIASTO.tramwaje.txt

Jak dotąd automatyzacja uaktualniania opisów działa tylko we Wrocławiu, ale nic (z wyjątkiem Wolnego Czasu) nie stoi na przeszkodzie, by ją wprowadzić także gdzie indziej. We Wrocławiu automatyczne (ale uruchamiane ręcznie od czasu do czasu) skrypty na podstawie aktualnych rozkładów jazdy pobranych ze stron UM/ZDiK potrafią:

  • uaktualnić listę linii zatrzymujących się na danym przystanku
  • wygenerować raport z listą brakujących oraz nieczynnych przystanków.
  • na podstawie wygenerowanych wcześniej list linii dla przystanków oraz specjalnych komentarzy w pliku WROCLAW.tramwaje.txt -- automatycznie uaktualnić opisy linii tramwajowych

Godziny otwarcia

Na razie panuje pełna dowolność i bałagan w tym względzie, ale powoli trzeba to standaryzować. Obecnie stosowany sposób to umieszczanie danych o godzinach otwarcia w komentarzach. Dane takie nie są na razie kompilowane do mapy dostępnej dla odbiorników garmin, ale są widoczne na WWW po odszukaniu obiektu, oraz są dostępne w programach 7ways i osmAnd. Standaryzacja formatu pozwoli umieszczać takie dane także w mapach kompilowanych i np: wyświetlać je, w sposób przewidziany przez producenta navi, być może jako rozszerzenie danych adresowych.

Format danych w pliku PNT:

  • średnik, opcjonalna spacja(niezalecane), słowo "otwarte:" zakończone dwukropkiem i spacją, następnie specyfikacja dni i godzin
  • specyfikacja dni: dzień tygodnia (2-literowy skrót), zakres X-Y lub lista X,Y,Z, np. "Pn-Nd", "Pn-Pt", "Pn,Śr,Pt", "Wt-Pn", "Nd"
  • specyfikacja godzin: "24h" lub [h]h:mm-hh:mm, opcjonalnie bez wiodącego zera, np. 7:00-15:00, 00:00-24:00, 24h
  • skróty dni tygodnia: Mo, Tu, We, Th, Fr, Sa, Su Pn Wt Śr/Sr Cz Pt So/Sb Nd/Ni, dopuszczalne są, angielskie skróty dni tygodnia, ale nie zalecane.
  • specyfikacja dni i godzin: dni (spacja) godziny; średnik i spacja oraz kolejna specyfikacja
  • w ME proszę nie dodawać średnika na początku napisu otwarte

Przykłady:

;otwarte: 24h
;otwarte: Pn-Nd 6:00-24:00
;otwarte: Pn-Pt 7:00-19:00; So-Nd 10:00-18:00
;otwarte: Pn-Pt 7:00-19:00; So,Nd 10:00-18:00
;otwarte: Pn-Pt 7:15-14:45
;otwarte: Pn-Cz 18:00-22:00; Pt-Nd 17:00-2:00

Komentarz występuje przed definicją POI i dotyczy wyłącznie POI następującego bezpośrednio za nim (pomiędzy nimi dopuszczalne są jedynie inne komentarze)

Adresówki

Opisane tutaj

Format GPX

Specyfikacja formatu: u Garmina.