Autor Zpráva
Tomasekkk
Profil *
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
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 *
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 *
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
Tomasekkk:
Manuál nevím, ale Pythagorova věta se za nás učila myslím v páté třídě.
Chamurappi
Profil
Reaguji na Tomasekkka:
Ano, v učebnici matematiky pro základní školy, Pythagorova věta.
Tomasekkk
Profil *
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
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
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
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 *
Děkuji Vám za Vaše rady a nastínění případných problémů.
Chro
Profil
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 *
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 *
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
Bubák
Profil
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.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0