Výpočet trasy

Zvolené téma obsahuje celkem 13 odpovědí. Do diskuze (3 účastníci) se naposledy zapojil uživatel  Speedi a poslední změna je stará 11 let, 8 měsíců.

Aktuálně je na stránce zobrazeno 14 příspěvků - 1. až 14. (z celkem 14)
  • Autor
    Příspěvky
  • #1692

    Speedi
    Participant

    Ahoj,

    řeším ve svém firemním webu takový problém.

    Chtěl bych aby si zákazník mohl sám spočítat náklady na dopravu.

    Představou je že bude daný pevně start a cíl dopíše do políčka a dá hledat.. a google už to zařídí.. Já pak potřebuji dostat zpátky kilometry které se znásobí 2 (tam a zpět) krát cena za kilometr.

    Googlil jsem a našel jen http://www.planovactras.vaniweb.eu/ ze kterého by se to možná dalo vysekat ale mé znalosti php už nejsou tak dostačující a nebo článek kde se slibovalo ale nic není (zatím) http://www.rechberg.net/clanky/google-maps-planovac-trasy-1

    Díky za každou pomoc :-)

    #11612

    Lukenzi
    Participant

    Použil bych API pro Google mapy, konkrétně měření vzdáleností (https://developers.google.com/maps/documentation/distancematrix/)

    Do URL adresy (třeba pomocí PHP) vložíme Start, cíl například

    http://maps.googleapis.com/maps/api/distancematrix/json?origins=Ostrava&destinations=Praha&sensor=false

    a Google nám vrátí toto

    {

    "destination_addresses" : [ "Praha, Česká republika" ],

    "origin_addresses" : [ "Ostrava, Česká republika" ],

    "rows" : [

    {

    "elements" : [

    {

    "distance" : {

    "text" : "378 km",

    "value" : 378163

    },

    "duration" : {

    "text" : "3 hod, 35 min",

    "value" : 12920

    },

    "status" : "OK"

    }

    ]

    }

    ],

    "status" : "OK"

    }

    a z tohodle už snadno přes PHP vykucháme třeba tu vzdálenost (vynásobit ji dvěma už problém asi nebude :) )

    #11613

    admin
    Keymaster
    Web

    Pěkné, ale co toto:

    Use of the Distance Matrix API must relate to the display of information on a Google Map; for example, to determine origin-destination pairs that fall within a specific driving time from one another, before requesting and displaying those destinations on a map. Use of the service in an application that doesn’t display a Google map is prohibited.

    Je ale možné využít i OpenStreetMap, kde mají povedené API např. MapQuest či CloudMade, ale je tam třeba posílat místa nikoli jako název, ale souřadnice GPS, takže je potřeba cíl ještě nějakým způsobem zgeokódovat (1, 2). Je třeba také dořešit “detaily”, zda konkrétní API vrací vzdušnou vzdálenost nebo reálnou vzdálenost (dojezd autem). Určitě by šlo možná využít i API map od Seznamu, alespoň pro geokódování. Chce to detailně zkoumat, prohlédnout licence a podmínky používání a pak to dát nějak jednoduše dohromady.

    Případně pokud je potenciálních cílů pouze několik, tak by stačilo naplnit tabulku start – cíl počtem kilometrů a brát si je vždy odtud. Ale to asi není moc ideální řešení…

    #11614

    Lukenzi
    Participant

    admin: tak já předpokládal, že jako zákazník který si chce sám spočítat náklady chci taky po zadání startu a cíle vidět kudy že to vlastně pojedu (né každá zobrazená trasa je v reálném světě ta nejvhodnější), takže nějaký menší náhled zadané trasy by mi vůbec nevadil spíš naopak, a tím bych se vyhnul restrikcím v licenci.

    OpenStreetMap je sice taky možnost, ale co se týče funkčnosti konkrétně u nějakého zapadákova v Horní dolní, je podle mně spolehlivější Google.

    Na API od Seznamu jsem popravdě zapomněl :) a pro ČR bude asi ještě vhodnější než Google, ale netuším jak to je s použitelností. Každopádně to chce zkoušet a najít tu nejvhodnější variantu…

    #11615

    Speedi
    Participant

    Tak jsem ještě napsal na seznam a napsali mi že to jde.. Více info na http://api4.mapy.cz/view?page=route .. dostal jsem se na http://jsfiddle.net/smap/fQ3R9/light/ a tam jsem taky zkončil.. Moc tu jejich aplikaci nechápu.. Kdyby někdo poradil budu rád. :-)

    #11616

    Lukenzi
    Participant

    1. Četl jsem to až po

    pokud chceme podporovat všechny prohlížeče

    Tohle je myslím v dnešní době samozřejmost…

    2. Už při pohledu na ten script bych se tím vůbec nezabýval, protože než pochopím funkčnost a co všechno s “tím” můžu dělat za kouzla, měl bych to komplet udělané s Google API…i když sami to tam napsali:

    Komplikované je však zpracování získaných dat

    Ale to je jen můj názor. Google bych použil, protože mi způsob získání dat a následná práce s nimi příjde až trapně jednoduché (oproti seznamu). Nemluvě o tom, že tento způsob bude fungovat i při vypnutém JS v prohlížeči což u Seznamu nebude. A taky proto, že jiné API jsem nezkoušel ;)

    #11617

    Speedi
    Participant

    To ano ale u google jsem se setkal s problémem že neuvažuje nad tím že některé města nebo obce mají stejný název. A i když tam zadám název obce se směrovacím číslem nebo cokoli tak už nepracuje. :-(

    #11618

    Lukenzi
    Participant

    A jiná API snad poznají které město nebo obec zrovna uživatel chce (pokud jich je více se stejným názvem)?

    Co když jsem třeba z Lyse hory? Co myslíte, že mi ukáže Seznam? V tomto případě vede Google 1:0 protože mi nevnucuje něco co nechci. Ale určitě se najde místo kde zase vyhraje Seznam.

    Tohle je prostě problém všech API a jediné řešení je nevkládat názvy ale rovnou GPS souřadnice což je ale blbost z pohledu uživatele…

    Edit: Jinak PSČ mi normálně funguje, ale musí být u něj uveden název

    http://maps.googleapis.com/maps/api/distancematrix/json?origins=Ostrava%2070800&destinations=Praha&sensor=false – Stejný výsledek jako na klasické mapě http://goo.gl/maps/lmS2

    #11619

    Speedi
    Participant

    No představoval jsem si že když tedy bude více míst pod jednním názvem zobrazí se nějáká upozornující hláška a vybere se ze seznamu okresů jako má seznam.

    S gps je to blbost protože na to se zákazník vykašle aby si své místo ještě převáděl.

    Čili opět jsem na začátku.. :-(

    #11620

    Lukenzi
    Participant

    To je prostě API, odešleme někam data podle kterých se nám vrátí data jiná, nic jiného to není.

    Pokud by mělo jít o nějaký výběr “odkud že to vlastně ten uživatel je” asi by bylo mnohem jednoduchšší použít rovnou odkazy na trasy v mapách místo API (např https://maps.google.cz/maps?saddr=70800+Ostrava&daddr=Praha&hl=cs) kde přímo vidí i kudy má jet atd… (Do proměnných saddr a daddr by se vkládaly uživatelem zadané hodnoty)

    EDIT: Google byl jen příklad to samé jde i u Seznamu

    EDIT2: A i kdyby byl nějaký způsob jak vyřešit problém se stejnými názvy stejně to neřeší to, že bych jel úplně jinudy protože to je kratší :D (příklad Ostrava – Praha)

    #11621

    Speedi
    Participant

    Ano to by šlo, jen jsem si představoval že všechno bude na mém webu. Začátek trasy pevně zadán a zákazník si zadá jen své město a vyhodí to na něj počet km a cenu za dopravu. Mapu jsem vůbec zobrazovat nechtěl.

    #11622

    Speedi
    Participant

    Tak tady jsem našel něco co bych přesne potřeboval.. Jen ze zdrojáku se toho moc vyčíst nedá..

    http://www.ubytovaniluhacovice.cz/cz/plan-cesty

    #11623

    admin
    Keymaster
    Web

    Podle mě to je právě ukázka napojení pomocí výše zmiňovaného Google Maps API?

    #11624

    Speedi
    Participant

    Ano, ještě jsem to zkoušel a i města které mají stejný název když se to trošku specifikuje tak to krásně vyhledá. Nyní bych potřeboval aspoň ten základní script který je tam použit..

Aktuálně je na stránce zobrazeno 14 příspěvků - 1. až 14. (z celkem 14)

Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.

WordPress – novinky, návody a zajímavosti