Úvodní stránka › Fórum podpory WordPressu › Problémy s WordPressem › Výpočet trasy
Štítky: Geokódování, Google Maps, Měření vzdálenosti, OpenStreetMap
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ů.
-
AutorPříspěvky
-
31. května 2012 (14:14) #1692
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 :-)
31. května 2012 (17:27) #11612Použ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 :) )
1. června 2012 (8:42) #11613Pě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í…
2. června 2012 (8:15) #11614admin: 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…
4. června 2012 (13:22) #11615Tak 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. :-)
4. června 2012 (13:50) #116161. Č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 ;)
4. června 2012 (14:03) #11617To 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. :-(
4. června 2012 (15:26) #11618A 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
4. června 2012 (15:36) #11619No 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.. :-(
4. června 2012 (16:05) #11620To 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)
4. června 2012 (16:33) #11621Ano 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.
27. srpna 2012 (12:32) #11622Tak tady jsem našel něco co bych přesne potřeboval.. Jen ze zdrojáku se toho moc vyčíst nedá..
27. srpna 2012 (12:58) #1162327. srpna 2012 (13:55) #11624Ano, 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..
-
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.