Format PNT

Z UMP

Spis treści

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

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 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:


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

Płock

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

Poznań

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

Rybnik

?

Warszawa

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

(grupa przystankowa 4009, przystanek 01 -> link do http://ztm.waw.pl/rozklad_nowy.php?c=183&l=1&a=4009)

Wrocław

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

(numer słupka: 85512, linia 120. 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 -> link do http://rozklad.sitkol.pl/bin/stboard.exe/pn?ld=hw1&input=5100065&boardType=dep&ignoreMasts=1&start=yes&E=0

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 umnieszczanie danych o godzinach otwarcia w komentarzach. Dane takie nie są na razie kompilowane do mapy dostępnej dla odbiorników, ale są widoczne na WWW po odszukaniu obiektu. Standaryzacja formatu pozwoli umieszczać takie dane także w mapach kompilowanych, być może jako rozszerzenie danych adresowych.

Format danych:

  • średnik, opcjonalna spacja, 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. "Mo-Fr", "Mo,We,Fr", "Sa"
  • specyfikacja godzin: "24h" lub [h]h:mm-hh:mm, bez wiodącego zera, np. 7:00-15:00, 0:00-24:00, 24h
  • skróty dni tygodnia: Mo, Tu, We, Th, Fr, Sa, Su
  • specyfikacja dni i godzin: dni (spacja) godziny; opcjonalnie średnik i spacja oraz kolejna specyfikacja

Przykłady:

; otwarte: 24h
; otwarte: Mo-Fr 7:00-19:00; Sa-Su 10:00-18:00
; otwarte: Mo-Fr 7:00-19:00; Sa,Su 10:00-18:00
; otwarte: Mo-Fr 7:15-14:45

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

Format GPX

Specyfikacja formatu: u Garmina.