Policzenie ilości kresek w danym miejscu

Odpowiedz Nowy wątek
2019-04-19 23:56

Rejestracja: 3 lata temu

Ostatnio: 1 dzień temu

0

Dzięki programowi GPSMapEdit udało mi się nanieść wiele moich rowerowych tras na jednej zbiorczej mapce.
Teraz chciałbym pójść krok dalej. Chcę sprawdzić ile razy przejechałem przez dane miejsce. W przypadku dużej ilości śladów nie jest to możliwe by zrobić to ręcznie. W przykładzie załączonym (link z obrazkiem) jest już nieco gorzej, a przy większej ilości danych to już jest niemożliwe.
Już tłumaczę. Niebieska kreska czemu służy? Chciałbym policzyć przecięcie tej niebieskiej kreski z ilością czerwonych kresek - czyli ile razy przejechałem przez to dane miejsce.
Dodałem zdjęcie, jak najbardziej mam świadomość tego, że konieczny byłby właściwy plik:)

Ma Ktoś pomysł jak takie coś zrobić?
przyklad.ilerazydanemiejsce.png

Dzięki :)

edytowany 9x, ostatnio: matiz17, 2019-04-20 00:04

Pozostało 580 znaków

2019-04-20 00:05

Rejestracja: 2 lata temu

Ostatnio: 1 dzień temu

0

Jeśli każdą trasę masz w postaci par liczb (x, y) to sprawdź, czy są one w bliskim otoczeniu interesujących się punktów. W tym przypadku (x, y) mogą oznaczać współrzędne geograficzne lub kartezjańskie.

Pozostało 580 znaków

2019-04-20 00:08

Rejestracja: 3 lata temu

Ostatnio: 1 dzień temu

0

"Jeśli każdą trasę masz w postaci par liczb (x, y)"
Nie rozumiem, nie mam chyba tak. Są to pliki .gpx , .tcx lub od pewnego czasu .fit
Natomiast są współrzędne geograficzne w tym pliku zapisywane - co 1 czy tam 2 sekundy, w zależności :)

No i masz dostęp do tych współrzędnych? Z jaką dokładnością są one zapisywane? - Pyxis 2019-04-20 00:09

Pozostało 580 znaków

2019-04-20 00:11

Rejestracja: 3 lata temu

Ostatnio: 1 dzień temu

0

Ciężko powiedzieć z jaką dokładnością, bo musiałbym to sprawdzić. Na pewno pewien odchył jest, ale myślę, że dość dokładnie :)

Pozostało 580 znaków

2019-04-20 00:25

Rejestracja: 2 lata temu

Ostatnio: 1 dzień temu

1
  • Ustalasz sobie jakieś miejsce, które Cię interesuje. Na przykład przejazd kolejowy o współrzędnych (x0, y0),
  • Zakładasz jakieś niewielkie otoczenie wokół tego miejsca (dx, dy),
  • Bierzesz pojedynczą trasę i dla każdego punktu (x, y) sprawdzasz, czy zachodzi:
    x > (x0 - dx) i x < (x0 + dx) i y > (y0 - dy) i y < (y0 + dy).
  • Jeśli choć jeden punkt (x, y) spełnia ten warunek, to znaczy że jadąc tą trasą minąłeś to miejsce.

Pozostało 580 znaków

2019-04-20 02:07

Rejestracja: 3 lata temu

Ostatnio: 1 dzień temu

0

A z pliku z GPSMapEdit nie ma szans tego zrobić?

Przecież @Pyxis nie wspomniał ani słowa o formacie - nie ma on znaczenia dla algorytmu. Potrzebujesz mieć spis punktów - a to skąd je weźmiesz (czy z GPSMapEdit, czy może rand()-em) jest drugorzędne. - Patryk27 2019-04-20 10:32

Pozostało 580 znaków

2019-04-20 13:00

Rejestracja: 1 rok temu

Ostatnio: 2 godziny temu

0

To tego typu dane? https://ridewithgps.com/trips/1.json (link z innego Twojego wątku).
Tam zdarzają się 9 sek. odstępy czasu. Nie wiem jak to się przekłada na przejechaną odległość w tym czasie ale:

  1. możesz zwiększyć odpowiednio dx, dy w algorytmie @Pyxis
  2. potraktować punkty jako odcinki i badać ich przecięcia z zadanym odcinkiem, prostokątem lub okręgiem

Jeżeli podczas jednego przejazdu robisz "kółka" to licz przecięcia tylko gdy minął jakiś ustalony czas od poprzedniego znalezionego przecięcia.

Pozostało 580 znaków

2019-04-20 15:58

Rejestracja: 3 lata temu

Ostatnio: 1 dzień temu

0

"potraktować punkty jako odcinki i badać ich przecięcia z zadanym odcinkiem, prostokątem lub okręgiem"
Dokładnie chodzi mi o takie coś... chcę potraktować odcinki jako punkty i zbadać ich przecięcie z zadanym odcinkiem (no bo prosta to już w nieskończoność)

Pozostało 580 znaków

2019-04-20 16:09

Rejestracja: 1 rok temu

Ostatnio: 2 godziny temu

2019-04-23 17:16

Rejestracja: 3 lata temu

Ostatnio: 1 dzień temu

0

Ktoś pomoże na przykładzie?

Pozostało 580 znaków

2019-04-23 18:35

Rejestracja: 2 lata temu

Ostatnio: 1 godzina temu

Lokalizacja: Kraków

0

Zainstaluj sobie Pythona, do niego bibliotekę geopandas i/lub shapely, tam możesz wczytywać wszelkiej maści mapy numeryczne i na pęczki metod w stylu cośtam.intesects(srośtam) dla właściwie dowolnego obiektu geometrycznego:

  • punktu
  • linii
  • multilinii np. jakichś łamanych
  • poligonów
  • multipoligonów

Jak interesuje Cię też "bliskie sąsiedztwo" czegoś, dają też gotowe metody które pozwalają zrobić np. obrys wokół interesującej Cię geometrii i wtedy też łatwo sprawdzisz, czy jakieś linie są tożsame. Do wyboru, do koloru. A, no i generalnie mają wsparcie dla różnych projekcji, więc omijają Cię zagadki w stylu "na mapie A 0.001 to 20cm, a na mapie B odległość 0.001 to już 200m" :D


Nie znam się, ale się wypowiem

Pozostało 580 znaków

Odpowiedz

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