Policzenie ilości kresek w danym miejscu

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

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.

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

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

2
  • 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.
0

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

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.

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ść)

0

Ktoś pomoże na przykładzie?

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

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