Autor | Zpráva | ||
---|---|---|---|
Tomasekkk Profil * |
#1 · Zasláno: 13. 7. 2010, 09:03:37
Ahoj, na inzertním serveru bazos, jsem si při inzerování všiml jedné vychytávky a to te, že lze hledat podle PSČ a zadat okolí např. do 50km, rád bych se zeptal, jakým způsobem se toto dá řešit, existuje snad nějaká databáze, kde jsou uvedena všechna PSČ a vzdálenost mezi nimi? Nebo jakým způsobem si myslíte, že toto může být řešeno. Díky za Váš čas a informaci
|
||
nightfish Profil |
#2 · Zasláno: 13. 7. 2010, 09:13:37
Každé PSČ je přiřazeno k nějaké obci, každá obec má nějaké WGS84 souřadnice, vzdálenost mezi dvěma sadami souřadnic se dá vypočítat.
|
||
Vid Profil * |
#3 · Zasláno: 13. 7. 2010, 09:14:02
No myslím si že stačí mít uloženou db PSC čísel a jejich GPS souřadnic a pak jen mezi nimi počítat vzdálenosti skriptem
|
||
Tomasekkk Profil * |
#4 · Zasláno: 13. 7. 2010, 09:24:21
Aha, tak to mne nenapadlo, ze takto to lze vypočítat, existuje nějaký manuál kde bych se dočetl jak vypočítat ty vzdálenosti mezi souřadnicemi? :-)
|
||
xmark Profil |
#5 · Zasláno: 13. 7. 2010, 09:26:40
Tomasekkk:
Manuál nevím, ale Pythagorova věta se za nás učila myslím v páté třídě. |
||
Chamurappi Profil |
#6 · Zasláno: 13. 7. 2010, 09:27:05
Reaguji na Tomasekkka:
Ano, v učebnici matematiky pro základní školy, Pythagorova věta. |
||
Tomasekkk Profil * |
#7 · Zasláno: 13. 7. 2010, 09:32:13
No já vím jak se počítá přes pythagorovu větu, ale myslel jsem, že WGS84 souřadnice jsou poněkud jiné a pythagorouvou větou je nespočítám, což jsem nevěděl a omlouvám se.
|
||
xmark Profil |
#8 · Zasláno: 13. 7. 2010, 09:34:55
Tomasekkk:
Ať jsou ty souřadnice v jakémkoli tvaru, musíš je převést na normální číslo. A pak použít Pythagora. |
||
ninja Profil |
#9 · Zasláno: 13. 7. 2010, 09:51:39 · Upravil/a: ninja
Záleží na přesnosti. Pythogorova věta vám dá velmi orientační vzdálenost, nepřesnost se zvětšuje se vzdáleností. Je spousta komplikovanějších způsobů, jak vzdálenost počítat. Namátkou:
(((acos(sin(('.$gps_lang.'*pi()/180)) * sin((kl.gps_lang*pi()/180))+cos(('.$gps_lang.'*pi()/180)) * cos((kl.gps_lang*pi()/180)) * cos((('.$gps_long.'- kl.gps_long)*pi()/180))))*180/pi())*60*1.1515*1.609344) round (sqrt (pow (abs ($lang1 - $lang2),2) + pow (abs ($long1 - $long2),2))*91.9867*1000,0) 3958.75 * acos( sin($Lat1/57.2958) * sin($Lat2/57.2958) + cos($Lat1/57.2958) * cos($Lat2/57.2958) * cos($Lon2/57.2958 - $Lon1/57.2958)) (sin(deg2rad($Lat1)) * sin(deg2rad($Lat2))) + (cos(deg2rad($Lat1)) * cos(deg2rad($Lat2)) * cos(deg2rad($Lon1 - $Lon2))) |
||
Bubák Profil |
#10 · Zasláno: 13. 7. 2010, 09:52:00 · Upravil/a: Bubák
xmark:
„Manuál nevím, ale Pythagorova věta se za nás učila myslím v páté třídě.“ Pokud budeme Zemi pokládat za placku, tak to jednoduché je. A v našich zeměpisných končinách bych takové zjednodušení pro tebou zamýšlené užití doporučil. Dodatek: a pak použít větu starého Pytagora. Dodatek 2: Tak jsem si to testnul (vzdálenosti jsem kontroloval na webu IZGARD) a v extrémním případě je. při zjednodušení Země na placku na území naší republiky rozdíl oproti přesné vzálenosti, +/- 5km. |
||
Tomasekkk Profil * |
#11 · Zasláno: 13. 7. 2010, 10:20:46
Děkuji Vám za Vaše rady a nastínění případných problémů.
|
||
Chro Profil |
#12 · Zasláno: 13. 7. 2010, 12:06:14
Tomasekkk:
PHP skript, který zjišťuje souřadnice místa na Zemi a o jaké místo se jedná (i PSČ): <?php $misto = 'Beverly Hills 90210'; $misto = strtr($misto, ' ', '+'); $link = 'http://maps.google.com/maps/geo?q='.$misto.'&output=csv&oe=utf8&sensor=false'; $data = explode(',', (file_get_contents($link)); $misto = strtr($misto, '+', ' '); if ($data[0] == 200) { $presnost = (1 + $data[1]) * 2; $zem_sirka = $data[2]; $zem_delka = $data[3]; if ($presnost > 17) { $presnost = 17; } switch ($presnost) { case 2: $co = 'světadíl'; break; case 4: $co = 'stát'; break; case 6: case 8: $co = 'stát - kraj'; break; case 10: $co = 'město - obec'; break; case 12: $co = 'PSČ'; break; case 14: $co = 'ulice'; break; case 16: $co = 'uzel'; break; case 17: $co = 'adresa'; break; } echo 'Z.Š.: '.$zem_sirka.', Z.D.: '.$zem_delka.'<br>Místo '.$misto.' je '.$co.'.'; } else { echo 'Místo '.$misto.' nenalezeno nebo chyba serverů Google.'; } ?> |
||
Tomasekkk Profil * |
#13 · Zasláno: 13. 7. 2010, 12:21:47
Chro:
Moc díky, někde jsem viděl, že to umí i google řešit, toto mi hodně pomůže. Děkuji |
||
Tomasekkk Profil * |
#14 · Zasláno: 13. 7. 2010, 12:24:19
Jediné co teď budu muset vymyslet je celý tento systém, protože pokud budu tahat data, které potřebuji zobrazovat v okruhu např. 20km od zadaného PSČ, budu muset asi do DB zapisovat také jejich souřadnice a dle nich SELECTovat dotaz z mysql
|
||
Časová prodleva: 16 dní
|
|||
Bubák Profil |
#15 · Zasláno: 29. 7. 2010, 14:17:40
http://zdrojak.root.cz/zpravicky/js-pocitame-vzdalenosti-mezi-body-na-zemi/
Do diskuse Jakub Vrána vložil odkaz na výpočet vzdáleností v PHP. Třeba se to bude někomu hodit, když bude potřebovat spočítat vzdálenost dvou míst podle GPS souřadnic. |
||
Časová prodleva: 14 let
|
0