• 0
  • cytuj |

  • Potrzebuje pomocy napisania na papierze algorytmu tzw pseudokod, opisowo.
    Mam wymyśłeć algorytm do autoamtycznej generalizacji map wektorowych,
    tak aby nasze mapy w gpsach były dokładniejsze, chodzi o drogi i rzeki,
    jakie propozycje mozna przedstawić?
    Na podstawie mapy polski w mapedit.
    Prosze o jakies rady, wsazowki, pomozcie!

    [ Dodano: 2012-01-26, 23:57 ]
    Witam!

    Potrzebuje pomocy, napisania pseudokodu takiego algorytmu . Mam juz opisowo opracowany mniej wiecej moj algorytm do pracy , tylko
    musze go przedstawić za pomoca pseudokodu tylko, pomoze mi ktos? A wiec to jest ten moj algorytm:

    W taki sposób tworze algorytm:

    - usuwamy drogi i rzeki najniższej kategorii,
    if warunek then
    ciąg instrukcji:
    for rodzaj drogi na mapie
    {
    for odpowiedni dla konkretnej drogi odpowiedni punkt drogi na mapie
    {
    if usuwamy drogi najniższej kategorii
    jeżeli droga ma kategorię mniejszą niż minimalna kategoria dla skali to
    usuń drogę
    then zostają nam drogi, które będziemy rozpatrywać
    else wynik nas zadawala
    W taki sam sposób robimy takie czynności:
    - usuwamy ronda i łączymy drogi prowadzące do ronda,
    - usuwamy rampy,
    - usuwamy krótkie odcinki dróg i łączymy węzły tych odcinków,
    Teraz używamy algorytmu grupowania gdyż:
    - grupujemy drogi o podobnych typach i nadajemy im jeden wspólny typ
    if
    jeżeli droga ma typ drogi ekspresowej to ustawiamy taki typ drogi
    Następnie po uzyskaniu grupowania robimy kolejny krok:
    - łączymy odcinki ze wspólnym węzłem i identycznym typem drogi.
    A więc na wejściu mamy tak:
    po znalezieniu dwóch odcinków ze wspólnym węzłem (końcowym) i
    identycznym typem sprawdzamy:
    - czy wspólny punkt jest w pierwszym odcinku ostatni, a w drugim odcinku
    czy jest pierwszy
    - jeśli nie, zamieniamy je miejscami (nazwami) i wracamy do sprawdzania -
    albo zamieniamy tylko ich określenie /pierwszy/drugi
    - jeśli nadal nie, odwracamy kolejność punktów w tym, który tymczasem
    uznamy za „pierwszy”.
    Możemy to sprawdzanie zrobić jeszcze tak:
    - sprawdzamy, które punkty "pierwszy-ostatni" się pokrywają, i
    zależnie od tego nazywamy je sobie "pierwszy-drugi" i robimy
    odwracanie kolejności punktów nazwanego jako pierwszy
    - kasujemy (pomijamy) w jednym z nich jedno z powtarzających się
    wystąpień tej współrzędnej wspólnej
    - łączymy ciągi współrzędnych "jeden+drugi".
    Powstaje nam wyjście - jeden odcinek połączony.
    Tak robimy dla kolejnych odcinków dróg, aż uzyskamy zamierzony cel.

    Poniżej widzimy zalecaną „gradacje” typów, poziomów i symboli dla
    dróg:
    TYPE 0x01
    12345 4 ~[0x2b]a4 # autostrada
    TYPE 0x02
    23456 4 ~[0x2c]s7 # droga szybkiego ruchu/krajowe >=2 pasy w 1
    stronę
    TYPE 0x03
    34567 3 ~[0x2c]12 # krajowe 1- i 2-cyfrowe
    45678 3 ~[0x2d]345 # niektóre ważniejsze 3-cyfrowe
    TYPE 0x04
    56789 2 ~[0x2d]345 # większość 3-cyfrowych
    TYPE 0x05
    67890 2 # lokalne, bez numerów
    TYPE 0x06
    78999 1 # osiedlowe w miastach, zupełnie boczne we wsiach itp.

    Rozwiązanie dla każdej linii typu rzeka:
    - bierzemy współrzędne pierwszego punktu,
    - przeglądamy wszystkie punkty innych rzek czy są takie same
    (porównując xx.yy,zz.ww),
    - jeśli znajdziemy jako pierwszy lub ostatni punkt, ale raz, to są to
    kolejne odcinki tej samej rzeki (można współrzędne ustawić w
    odpowiedniej kolejności zależnie które punkty się pokrywają),
    - jeżeli znajdziemy dwa punkty, to jest to rozwidlenie rzek lub rzeki
    spływają się (wtedy pozostawiamy to bez zmian).
    Można to opisać tak:
    dla każdego pierwszego i ostatniego punktu rzeki (linii typu rzeka jest
    kilka) szukamy punktu położonego w tych samych współrzędnych, w
    promieniu (może być kwadratowo) 0.001 stopnia = około 100 metrów.
    Jeśli znajdziemy, i on będzie końcowym dla innego odcinka, to są to
    kolejne odcinki tej samej rzeki. Można sklejać w odpowiedniej kolejności
    (ale musimy pamiętać czasem kolejność punktów rzeki jest "pod
    prąd"). Jeżeli będzie jakimś "środkowym", to mamy
    ostatni odcinek dopływu tej drugiej rzeki. Do tego możemy dołożyć
    kilka przypadków szczególnych, np. rzeka rozpływa się na dwa koryta, a
    potem spływa, albo dwie rzeki łączą się w trzecią (unikalne, ale
    teoretycznie możliwe), albo rzeka do której wpada nie ma narysowanego w
    tym miejscu punktu. Rzeki są rysowane liniami łamanymi.

    Spróbuje mi Pan to jakoś w pseudokodzie przedstawić, z góry dziekuje.
    d41d8cd98f00b204e9800998ecf8427e

Powered by phpBB modified by Przemo © 2003 phpBB Group. Then, after many years modified again, this time by Piotrek © 2014
Strona wygenerowana w 14,7ms. Zapytań do SQL: 15