Projekt inżynierski- prośba o pomoc

Potrzebuję pomocy w wykonaniu własnej nawigacji przy pomocy osm.

to żeś się rozpisał :slight_smile:

Projekt ma polegać na wykonaniu aplikacji w systemie android, która działa następująco:

  1. wchodzę na teren cmentarza
  2. wpisuje imie i nazwisko zmarłego
  3. system pokazuje lokalizacje grobu i prowadzi mnie w jego rejon

Ktoś, mógłby mi pomóc ogarnąć tą całą nawigację na mapach osm? Oczywiście ja wiem te usługi nie są tanie :slight_smile:

A po co do tego OSM?
Musisz mieć zmapowane wszystkie groby, tego w OSM nie będzie pewnie - ale miło jakbyś dorzucił do bazy. Do ww. wystarczą poi grobu ze współędnymi. Teraz z andka czytasz swoję XY i kompas, wyliczasz odległość i w którą stronę wyświetlić strzałkę i masz nawigację “na krechę”. Na obiekcie typu cmentarz nie bawiłbym się w turn by turn.

@serek: Jeśli to praca dyplomowa to wystarczy mu, że doda kilka grobów na najbliższym cmentarzu - nie musi mieć przecież wszystkich wprowadzonych.

@fabiangawel: Jeśli będziesz miał ochotę wprowadzać jakieś groby do OSM to zapytaj tutaj o schemat tagowania (oznaczania) - chodzi o to, żebyś zrobił to poprawnie.

To ma być praca inżynierska - może jednak musieć być “turn by turn”, ale ograniczone do obszaru cmentarza, żeby ilość danych nie zabijała bo i algorytm wyszukujący drogę nie musi być wtedy jakiś hiper sprytny ;).

@fabiangawel: program do nawigacji na mapach osm o otwartym kodzie, to np. navit, od jakiegoś czasu posiada port na systemy andorid. Być może wystarczy dorobić mu odpowiedni plik konfiguracyjny. Z całą pewnością jednak interesują Cię tagi wymienione tutaj: http://wiki.openstreetmap.org/wiki/Pl:Tag:landuse%3Dcemetery a konkretnie to zapewne sektory oraz aleje (możesz też zajrzeć do tomb na samym dole). Jeśli nie masz prawie żadnej wiedzy o osm to możesz też przejrzeć tę stronkę: http://wiki.openstreetmap.org/wiki/OSM_XML - wszystko na mapie jest albo punktem (node), albo linią (way) albo relacją (relation), który/a posiada odpowiednie tagi (pary klucz=wartość).

BTW. dane OSM nie są płatne. Taką aplikację można zrobić całkiem za darmo (nie licząc własnego czasu).

Dziękuję pięknie za zainteresowanie :wink: Dokładnie tak jak wspomniano to musi być aplikacja krok po kroku, po alejkach, a nie tak, że prowadzi mnie po wszystkich mogiłach. Schemat tagowania grobu i obiektów na cmentarzu już sobie ogarnąłem. Jednak nie bardzo wiem co robić po tym jak już narysuję alejki i zaznaczę kilka grobów- jak sprawić, aby możliwa była nawigacja po moich alejkach :slight_smile: Bardzo proszę o pomoc i wszelkie wskazówki. Jeśli jest ktoś kto mógłby mnie pokierować szczegółowo krok po kroku co jak wykonać jestem w stanie zapłacić za taką wiedzę. Bardzo proszę o odpowiedzi :slight_smile:

Napisanie od zera nawigacji to nie byle co. Może spróbujesz zrobić “forka” jakiejś nawigacji opensource?
Ja znam dwie (zresztą druga jest forkiem pierwszej):
http://www.navit-project.org/ - działa na wszystkim co ma procesor
http://zanavi.cc/ - działa na Androidzie

Pragnę przypomnieć, że kolega robi projekt inżynierski, więc chyba powinien umieć napisać takie rzeczy sam, od podstaw :slight_smile:

Wszystko zależy od uczelni i stanu wiedzy wykładowców. Uważam że szukanie pomocy w sytuacji gdy brak odpowiedniego wsparcia na uczelni jest jak najbardziej ok. :wink:

Eeee tam to co fabiangawel potrzebuje to kilka dni roboty (jesli sie wie jak zrobic). Pisałem Ci co musisz zrobić i nie chce za to pieniędzy, ale czytaj uważnie.

  1. Narysuj to co potrzebujesz na OSM
  2. Ściągnij plik OSM np. za pomocą JOSM w formacie np. XML dla Twojego obszaru

Teraz tak. Domyślam się, że nie będzie Ci przeszkadzać, że aplikacja długo się ładuje bo obszar jest na tyle mały, że nie powinno być problemu z czasem, więc na Twoim miejscu zrobiłbym to najprościej tak:

  1. Napisz parsowanie pliku OSM za pomocą parsera http://developer.android.com/training/basics/network-ops/xml.html
    Niech klasa parsera OSM zwraca obiekt klasy OSMData (przykładowa nazwa), który jako dane wejściowe dostanie tablice asocjacyjne węzłów, dróg, relacji (node, way, relation)

Oczekiwany efekt to np. funkcja print w OSMData, która wyświetli liczbę węzłów

  1. W klasie OSMData napisz funkcję getWays, która zwróci Ci wszystkie obiekty klasy Way.
    Oczekiwany efekt. Wyrysuj wszystkie way za pomocą canvas na ekranie używając czegoś w stylu:
    array = Way.getNodes(); potem pelta po tablicy i getLat, getLon na obiekcie klasy Node

Efekt wyrysowane wszystkie way na ekranie za pomoca linii

  1. Dodaj filtrowanie tak aby rysował tylko drogi z tagiem highway

Reszte napisze pozniej. Gdy zobacze, ze to co napisałem jest realizowane.

Masz jeszcze gratis przykładowe klasy, ktore powinny byc powiazane z efektem parsowania.