Korzystając z Google Maps API chcę rysować trasę między dwoma punktami. Załóżmy, że będzie to trasa Kraków - Warszawa.
Dodatkowo będę miał listę potencjalnych adresów (kodów pocztowych), które chciałbym odwiedzić po kolei - czyli dodawanie przystanków w trasie.

Problem w tym, że kodów pocztowych może być kilkadziesiąt, a dana lokalizacja dowolna. Może to być "Częstochowa, Szczecin, Wrocław, Rzeszów, Łódź itp"
I tutaj pytanie.
Jak sprecyzować aby do listy przystanków na tej zdefiniowanej trasie dodawane zostawały tylko te lokalizacje, które są w miarę blisko (czasowo bądź kilometrów - to bez znaczenia)
Czyli bazując na opisywanym przykładzie chciałbym dodać tylko "Częstochowa, Łódź", bo jest w miarę po drodze.

To co jest wg mnie "w miarę po drodzę" może być definiowane poprzez wydłużenie trasy o określony czas lub określony dystans.
Czyli zakładam - szukaj przystanków, które po dodaniu do trasy macierzystej wydłużą czas podróży o max 60min / wydłużą trasę o max 50km

Czy jest jakieś bardziej optymalne rozwiązanie niż:
a) Wyznacz trasę z pkt A do pkt B
b) Po kolei, dla każdego z dostępnych adresów, oblicz o ile przystanek w tym punkcie wydłuży trasę
c) Odrzuć rezultaty powyżej określonego limitu (np dłuższe niż 60min/50km)
d) Z pasujących adresów wybierz ten, który wydłuży trasę najmniej i dodaj go do listy przystanków
e) Odrzuć rezultaty powyżej limitu (pomniejszonego o dopasowane wcześniej adresy)
f) powtarzaj d-e do czasu braku rezultatów.

Widzę tutaj dużo problemów

  • dużo obliczeń (zależy od ilości potencjalnych przystanków)
  • może okazać się że najpierw dodamy miasto bliżej pkt B (końca trasy), bo będzie mniej czasu/km do nadłożenia i w konsekwencji będziemy mieć coś na zasadzie Kraków - Łódź - Częstochowa - Warszawa zamiast bardziej optymalnej trasy Kraków - Częstochowa - Łódź - Warszawa

Szukam jakichś wskazówek, dokumentacji, fraz pod jakimi szukać. Może jakieś inne rozwiazanie?