Mam dane ciężarówek ( http://www.chorochronos.org/ ).
Te dane są współrzędnymi GPS wielu trajektorii ciężarówek w Atenach.
Muszę obliczyć podobieństwo między trajetoriami, aby usunąć te, które są bardzo podobne!
Czerwony i zielony są podobne, ale niebieski, czarny i (czerwony lub zielony) to różne trajektorie. Chcę usunąć jeden z podobnych, czerwony lub zielony.
Dane są w punktach (geometria, szerokość i długość, x i y) (współrzędne gps), obraz to przykłady trajektorii
postgis
postgresql
similarity
użytkownik 2883056
źródło
źródło
Odpowiedzi:
Naprawdę łatwym, ale nie fantastycznym miernikiem jest uzyskanie odległości Hausdorffa między każdą kombinacją, co odbywa się za pomocą funkcji ST_HausdorffDistance . Używając przybliżonych ciągów liniowych z twojej figury, wszystkie są pokazane na niebiesko, a odległość Hausdorffa pokazana jest dla jednej z par linii na czerwono:
I zapytanie o sortowanie 6 kombinacji w kolejności malejącej:
Tak więc działa dobrze w tym przykładzie, ale nie jest to świetna ani solidna technika dla grupowania linii, ponieważ jedyną miarą jest pojedynczy punkt o największej odległości, zamiast porównywania różnic pełnych linii. Istnieją znacznie lepsze metody, ale będą bardziej skomplikowane.
źródło
Nie mam dostępu do PostGres / PostGIS, ale oto, jak bym to zrobił w ArcGIS (lub innym).
źródło