Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Połączenia między-przystankowe, Skrypt?
Chillout
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 24.01.2011

Ostrzeżenie: (0%)
-----


Witam

Chciałem zapytać jakie trzeba zbudować zapytanie do bazy żeby wyświetlało kolejno autobusy i przesiadki...
Budowanie takiego skryptu nie jest ciężkie... chodzi o sam fakt zapytania do bazy jak go zbudować...

Na tej stronie jest wstępny szablon jak by to miało wyglądać... http://autobusy-miejskie.com.pl/test.php
Proszę o pomoc co byście mi poradzili nie w sensie kodu tylko w sensie projektowym... jak można połączyć te rzeczy w jednym zapytaniu żebym później mógł spokojnie to połączyć i rozpisać

Gotowe coś takiego jest tutaj http://rozklady.kzkgop.pl/index.php dokładnie jeśli weszła wam strona rozkładu to kliknijcie w górnym menu wyszukaj i konkretnie to chciałem zrobić samemu (IMG:style_emoticons/default/smile.gif) i proszę was o pomoc :]
Go to the top of the page
+Quote Post
posiadacz
post
Post #2





Grupa: Zarejestrowani
Postów: 46
Pomógł: 2
Dołączył: 2.04.2009

Ostrzeżenie: (0%)
-----


Proponuję tabele:
- przystanek
- linia
- przystanek_linia

Jeśli chcesz się dowiedzieć jaką linię możesz wykorzystać to wystarczy zapytać o wszystkie linia które mają oba przystanki i posortować po ilości przystanków pomiędzy przystankami które cię interesują albo odległości pomiędzy nimi.

Generowanie tras z przesiadkami jest trudniejsze i nie przychodzi mi do głowy żaden sprytny sposób. Proponuję więc dla każdego przystanku z linii przystanku początkowego pytać czy jeździ nim linia przystanku końcowego - otrzymamy wyniki z jedną przesiadką.
Go to the top of the page
+Quote Post
everth
post
Post #3





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

Ostrzeżenie: (0%)
-----


Cytat
Budowanie takiego skryptu nie jest ciężkie...
. Można by się o to kłócić. Pierwsze co mi przychodzi do głowy to algorytm najkrótszej ścieżki Dijkstry (url="http://www.artfulsoftware.com/infotree/queries.php?bw=1680#766"]tutaj[/url] masz przykładową implementację w MySql) i późniejsze dopasowanie do niej połączeń. Ale w dłuższej perspektywie może to produkować dziwne wyniki i nie sprawdzać się.

Zainteresuj się algorytmami trasującymi (artykuł w zasadzie odnosi się do sieci komputerowych, niektóre rozwiązania da się zastosować w sieci komunikacyjnej). Bardziej zbliżony do zagadnienia opis jest na stronie OpenStreetMap. Z tego co wyszczególnili to w PHP nie ma żadnej otwartej implementacji takiego systemu.
Go to the top of the page
+Quote Post
Chillout
post
Post #4





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 24.01.2011

Ostrzeżenie: (0%)
-----


Wymienię jakie mam zbudowane tabele...

am_linie_zkkm - przechowuje dane na temat każdej z linii jest tu wpisywane z jakiego przystanku rusza i na jakim kończy
am_przystanki_zkkm - przechowuje dane na temat każdego przystanku odpowiednio miasto i nazwa przystanku
am_objaśnienia - przechowuje dane na temat objaśnień, kiedy autobus ma jakiś dopisek przy godzinie ze jedzie inaczej
am_linie_przystanki_zkkm - Przechowuje dane na temat struktury linii, którędy przejeżdża i również objaśnienia są dodawane dla poszczególnej trasy
am_start_kursy - oczywiście tutaj konkretnie opisany kurs danego autobusu, zawiera dane id linii, przystanku, dnia, kierunku, rodzaju trasy oraz o której godzinie wyjeżdża z konkretnego miejsca.

Wszystko to dodawane jest automatycznie poprzez pętle zbudowaną typowo pod dodawanie kursów.

Myślę żeby zrobić to tak zebrać dane na temat tego jaki autobus przejeżdża przez przystanek początkowy, następnie sprawdzić czy dojeżdża do przystanku końcowego, jeśli tak to brak przesiadek i jednym autobusem dotrzemy do celu oczywiście obliczyć czas między przystankiem końcowym a początkowym. Jeśli jednak nie dojeżdża do przystanku końcowego, to zebrać dane na temat tego jakie autobusy przejeżdżają przez przystanek końcowy. Następnie zbadać czy te 2 linie przecinają jakoś swoją trasę. Jeśli tak to ten przystanek ustalić jako przesiadkę, jeśli nie to już gorzej bo trzeba szukać 3 autobusu co oznacza 2 przesiadki. Tylko że takie coś już nie bardzo wiem jak zbudować (IMG:style_emoticons/default/biggrin.gif) .
Go to the top of the page
+Quote Post
iwosz
post
Post #5





Grupa: Zarejestrowani
Postów: 62
Pomógł: 3
Dołączył: 30.07.2009

Ostrzeżenie: (0%)
-----


Cytat(Chillout @ 25.01.2011, 18:36:40 ) *
Myślę żeby zrobić to tak zebrać dane na temat tego jaki autobus przejeżdża przez przystanek początkowy, następnie sprawdzić czy dojeżdża do przystanku końcowego, jeśli tak to brak przesiadek i jednym autobusem dotrzemy do celu oczywiście obliczyć czas między przystankiem końcowym a początkowym. Jeśli jednak nie dojeżdża do przystanku końcowego, to zebrać dane na temat tego jakie autobusy przejeżdżają przez przystanek końcowy. Następnie zbadać czy te 2 linie przecinają jakoś swoją trasę. Jeśli tak to ten przystanek ustalić jako przesiadkę, jeśli nie to już gorzej bo trzeba szukać 3 autobusu co oznacza 2 przesiadki. Tylko że takie coś już nie bardzo wiem jak zbudować (IMG:style_emoticons/default/biggrin.gif) .



Hmm, to dość kiepski pomysł lub kiepsko to opisałeś (IMG:style_emoticons/default/wink.gif) "Następnie zbadać czy te 2 linie przecinają jakoś swoją trasę" to sugeruje że szukasz jakiejkolwiek trasy, a przecież użytkownikowi zależy na znalezieniu najkrótszej/najszybszej trasy, więc powinieneś wyznaczyć sobie jakiś mianownik, np. odległość w metrach pomiędzy przystankami i wyznaczać optymalną trasę. Dodatkowo można brać pod uwagę ilość skrzyżowań, świateł itd (podpatrz jak to realizują nawigacje GPS)

ps. polecam przyjrzeć się działaniu jakdojade.pl (oni po prostu wykorzystują dane ZTM/MPK...itd)

Ten post edytował iwosz 12.04.2011, 14:30:46
Go to the top of the page
+Quote Post
everth
post
Post #6





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

Ostrzeżenie: (0%)
-----


O ile się nie mylę to jakdojade.pl jest oparte o OpenTripPlanner - na pierwszy rzut oka to świetny kawał softu, tylko że to głównie Java + kawałki w Pythonie i chyba Perlu.

@iwosz - nie orientujesz się może w jakim formacie (czy w ogóle) ZTM/MPK ma przygotowane rozkłady jazdy?
Go to the top of the page
+Quote Post
iwosz
post
Post #7





Grupa: Zarejestrowani
Postów: 62
Pomógł: 3
Dołączył: 30.07.2009

Ostrzeżenie: (0%)
-----


Cytat("everth")
@iwosz - nie orientujesz się może w jakim formacie (czy w ogóle) ZTM/MPK ma przygotowane rozkłady jazdy?


Obstawiam XML ale nie sprawdzałem/korzystałem (IMG:style_emoticons/default/wink.gif)

Ten post edytował iwosz 12.04.2011, 15:31:03
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 18:05