wyznaczanie punktu z GPS

0
 :[  8-O Mam napisać program który zczytuje dane z pliku textowego i rysuje w delphi miejsce na mapie
0

Czy to było pytanie, albo prośba o pomoc? Ja mam do napisania program... i mógłym wymieniać i co z tego?

0

To jest prośba czy ktoś może dać jakieś wskazówki

0

napisz cos wiecej... daj fragment pliku txt...
w ogole napisz dokladnie co i jak...

0

Ma wyglądać to tak
1.Wczytać z pliki txt współrzędne ściągnięte z jakiegoś GPS
2.Na mapie np.Gorzów Wlkp. wyznaczyć ten punkt tzn. pomiarów jest np.20 to jest
rysowana kreska od pierwszego aż do ostatniego

0

$GPGGA,181811.855,5244.5847,N,01516.5176,E,1,08,1.2,103.7,M,,,,000006
$GPRMC,181811.855,A,5244.5847,N,01516.5176,E,19.98,190.36,190306,,,A
50
$GPVTG,190.36,T,,M,19.98,N,37.0,K,A0D
$GPGGA,181812.854,5244.5796,N,01516.5158,E,1,08,1.2,103.8,M,,,,0000
04
$GPGSA,A,3,13,27,02,04,23,08,16,24,,,,,1.9,1.2,1.534
$GPGSV,3,1,09,13,64,071,28,27,58,185,23,02,39,261,27,04,32,223,29
7E
$GPGSV,3,2,09,08,28,200,25,23,27,080,33,10,22,304,33,16,16,038,2570
$GPGSV,3,3,09,24,09,188,17
48
$GPRMC,181812.854,A,5244.5796,N,01516.5158,E,17.74,193.11,190306,,,A57
$GPVTG,193.11,T,,M,17.74,N,32.9,K,A
0B
$GPGGA,181813.854,5244.5750,N,01516.5144,E,1,07,1.4,104.2,M,,,,000006
$GPRMC,181813.854,A,5244.5750,N,01516.5144,E,16.69,187.41,190306,,,A
5C
$GPVTG,187.41,T,,M,16.69,N,30.9,K,A04
$GPGGA,181814.854,5244.5708,N,01516.5140,E,1,08,1.2,105.6,M,,,,0000
04
$GPRMC,181814.854,A,5244.5708,N,01516.5140,E,14.12,177.01,190306,,,A57
$GPVTG,177.01,T,,M,14.12,N,26.1,K,A
0E
$GPGGA,181815.854,5244.5673,N,01516.5148,E,1,07,1.4,107.7,M,,,,00000A
$GPRMC,181815.854,A,5244.5673,N,01516.5148,E,12.60,167.37,190306,,,A
54
$GPVTG,167.37,T,,M,12.60,N,23.3,K,A0E
$GPGGA,181816.854,5244.5649,N,01516.5174,E,1,07,1.4,108.8,M,,,,0000
0F
$GPRMC,181816.854,A,5244.5649,N,01516.5174,E,10.91,145.37,190306,,,A5D
$GPVTG,145.37,T,,M,10.91,N,20.2,K,A
00
$GPGGA,181817.854,5244.5631,N,01516.5216,E,1,07,1.4,109.1,M,,,,00000E
$GPGSA,A,3,13,27,02,04,23,08,16,,,,,,2.4,1.4,2.0
3C
$GPGSV,3,1,09,13,63,071,26,27,58,184,32,02,39,261,26,04,32,223,357A
$GPGSV,3,2,09,08,28,200,31,23,27,081,24,10,22,304,24,16,16,038,24
75
$GPGSV,3,3,09,24,08,188,1648
$GPRMC,181817.854,A,5244.5631,N,01516.5216,E,11.19,128.32,190306,,,A
5B
$GPVTG,128.32,T,,M,11.19,N,20.7,K,A0A
$GPGGA,181818.854,5244.5625,N,01516.5288,E,1,07,1.4,110.9,M,,,,0000
03
$GPRMC,181818.854,A,5244.5625,N,01516.5288,E,13.40,107.95,190306,,,A*58

to jest przykładowy plik txt tylko nie wiem z jakich współrzędnych

0

po pierwsze jak się o coś pyta to trzeba konkrety przedstawić (to tak na przyszłość)

dane z GPSa są w konkretnej postaci (to widać gołym okiem :P) ale nie wiadomo co oznaczo pojedyńczy "rekord"

$GPGGA,181811.855,5244.5847,N,01516.5176,E,1,08,1.2,103.7,M,,,,0000*06

to musisz wiedzieć bo inaczej to sobie możesz

druga sprawa - piszesz "rysuje w delphi miejsce na mapie" to ja się pytam co to jest ta mapa (co to jest mapa wiem, ale dla Ciebie co to jest? Baza z danymi, plik graficzny z mapą jakiegoś miejsca, coś innego)

0

Jest to ciągła linia rysowana na siatce współrzędnych

0

Poszukaj opisu protokołu NMEA 0183, tam jest wszystko opisane. Z tego co pamiętam, to współrzędne są w rekordzie GGA - czas, szerokość, długość, czy pozycja jest prawidłowa, ilość satelitów, wysokość, suma kontrolna

mak22

0
Łopusiewicz napisał(a)

Jest to ciągła linia rysowana na siatce współrzędnych

ta odpowiedz tyczy się czego??? Jak już wcześniej pisałem chcesz pomocy - przestań pisać ogólniki bo w końcu wszystkim się znudzi ciągnąć Cię za język. Zauważ, że to tobie zależy na rozwiązaniu, nie nam.

Pytałem Cię w jakiej formie masz mapę. Dane z GPSa to wsp. geograficzne + pewnie czas + coś jeszcze. Ale to powinieneś wiedzieć Ty i to napisać a nie ja gdybając ...

0

Po pierwsze to jest tp standard NMEA - doczytaj to się dowiedz co kokretne watrtość znaczą. Rozkłada się go prosto bo ma zawsze odpowiednia ilość pól o zmiennej długości. Czyli, szukasz wartości pomiędzy odpowiednimi przecinkami.
Co do rysowania na mapie - albo wczytasz sobie mapę, przekalibrujesz rysunek i będziesz sam zaznaczał, albo skorzystasz z internetowych serwerów mapy - tam masz ichni protokół dość łatwy wysyłasz dostajesz odpiwedz itd itp Nie wiem jak aktualnie, ale część jest bezpłatna, a część płatna.
Andrzej Dąbrowski

0

Zarejestrować strumień danych w kodzie NMEA 0183
Skopiować pliki z fragmentem trasy zapisanej przez Data Logger oraz napisać program , który

  • wczyta plik wejściowy
  • wyświetli bieżącą pozycję geograficzną i wysokość n.p.m odbiornika, odświerzając ją w tępie co 1 sekundę lub regulowanym
    -wyświetli prędkość poruszania się odbiornika oraz czas zapisu
    -na siatce współrzędnych geograficznych wykreśli trasę porzuszania się odbiornika
  • na tle zeskanowanego fragmentu mapy lub planu miasta wykreśli trasę poruszającego się odbiornika.

<font size="3"></span>
Przepraszam że dopiero teraz dokładnie opisuję problem ale do tej pory nie miałem dostępu do treści zadania

0

Jedyna trudnośc to prawidłowe przeskalowanie mapy, a raczej przeliczenie pozycji geograficzne na pixele. Ale ten problem jest techniczny. Musisz wczytać mapę, potem ustalić współrzędne krawędzi na ich podstawie policzyć ile stopni,minut i sekund wyświetlasz w widzianym obrazku, przeliczyć na pixele i po problemie. Dalej traktujesz swój rysunek jak układ współrzędnych masz Xi Y i tylko odpowiedni przelicznik z pozycji na X/Y (czyli pixele).
Andrzej Dąbrowski

0

nie wiem jak inni ale ja mam wrażenie, że autor wątku nie zadał żadnego konkretnego pytania ani nie napisał gdzie leży problem. Jego "odpowiedzi" wyglądają raczej jak ogólne założenia, co program ma robić.

Poja prośba do autora jest taka:
sprecyzuj się chłopie czego od nas chcesz, jak napisania całego programu to zacznijmy może od ustalenia stawki, a jak po prostu pomocy w czymś to może się sprecyzuj w czym.

0

Mam już napisany program który wczytuje mi mapę ale nie wiem jak ustawić na niej siatke współrzędnych

0

procedure TForm1.wczytajClick(Sender: TObject);
begin
if OpenPictureDialog1.Execute = true then
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;

tym wczytuję jakąś tam mapę i dalej stoje jakaś małapodpowiedż

0
Łopusiewicz napisał(a)

procedure TForm1.wczytajClick(Sender: TObject);
begin
if OpenPictureDialog1.Execute = true then
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;

tym wczytuję jakąś tam mapę i dalej stoje jakaś małapodpowiedż

chłopie jak będziesz odpowiadał w ten sposób ("jakąs tam") to jedyne co Ci można odpowiedzieć to rysuj jakoś tam!!!

Dla mnie EOT bo jak Ty nie chcesz to ja Cię zmuszał nie będe ...

0

Ręce opadają, ale co mi tam.

  1. Musisz poznać współrzędne górnego i dolnego końca mapy, czyli max północ i max południe.
  2. Potem odejmujesz maxN-maxS= delta np. delta=22'30"
  3. Sprawdzasz wielkość obrazka w pixelach - np. 600
  4. Oblcizasz przelicznik 1 "/pixel=(22*60+30)/600=2.25
    z niego wynika ze na 1 pixel przypada 2.25"
  5. Ustalasz układ współrzędnych (na razie liczymy szerokość geograficzą)
    w punkcie dolnym masz maxS, górnym maxN.
  6. Pojawia się punkt o wspolrzxednych z zakresu który wyswietlasz (innymi sie nie przejmujesz) , to jego wartosc na obrazku liczymy nastepujaco.
    wzgledne polozenie=wsp.punktu-maxS
    teraz liczysz to na pixele: liczba pixeli=wzglednepolozenie/przelicznik
    otrzymujesz wartosc w pixelach gdzie jest twoja wspolrzedna.
    Co dalej? jak bedzie wygladal znacznik czy umiesciesz go centralnie na kropce, czy z boku itd itp to juz sam sie pobaw - wskazalem ci jak obliczyc punkt.
    Dla długości geograficznej robisz analogicznie.

Koniec bomba kto nie zakumał ten trąba.
Andrzej Dąbrowski

PS. Najpierw policz sobie i poćwicz na kartce, aż zrozumiesz dlaczego właśnie tak i co zrobić gdy wyjdą minusy:)

0

Delphi to dla mnie nowy program którego chyba będę musiał się nauczyć a na forum jestem I raz i niewiem jak opisywać problemy dopiero uwagi mnie naprowadzają
ALE DUŻE DZIĘKI

1 użytkowników online, w tym zalogowanych: 0, gości: 1