GPS rádius – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

GPS rádius – MySQL – Fórum – Programujte.comGPS rádius – MySQL – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Soilis
~ Anonymní uživatel
3 příspěvky
22. 5. 2014   #1
-
0
-

Dobrý den, pro své uživatele by sem chtěl ukázat kdo je v okolí 10km. Tohle již řadu let není žádná novinka, ale já se o to pokouším prvně a upřímně moc nevím ani kde začít. Jestli se nepletu, tak dobrý začátek bude k psč získat GPS lokaci. Co ale potom? Koukal jsem se na aukční portál a tam jsem si pro test dal rádius 10km. Vyjela mi inzerce i 100km a výš. Jde toho docílit a pokud ano, tak moc prosím jak? Strašně moc děkuji za jakoukoli odpověď

Dopracoal jsem se na čtyři výsledky. Mám gps lokaci radiusu pro sever, jih, západ a východ ve formátu: 48.1416972,12­.3719233

Chci se zeptat zda mi někdo neporadí jak tyto 4 podmínky dát do sql.
Bude stačit třeba:

lokace < $sever or lokace > $jih or lokace < $zapad or lokace > $vychod

Nebo by se to dalo řešit lépe?

Nahlásit jako SPAM
IP: 193.86.205.–
Reklama
Reklama
Flowy0
Věrný člen
22. 5. 2014   #2
-
0
-

ak tam das or tak to bude fungovat nezmyselne

position > minSouth AND position < maxNorth AND position < maxEast AND position > minWest

pripadne otoc znamienka neviem na ktoru stranu gps stupa

v sql mas aj podmienku between: position BETWEEN minSouth AND maxNorth ktora to spravi trochu prehladnejsie

Nahlásit jako SPAM
IP: 91.148.1.–
https://github.com/Flowy
Soilis
~ Anonymní uživatel
3 příspěvky
22. 5. 2014   #3
-
0
-

Všechny hodnoty jsou maximální pro radius. Ty hodnoty, když se spojí, tak udělají kříž. To or byla blbost, teď mi to došlo. Prozatím sbírám teorii a pak se chci pustit do praxe.

Sever:49.9416972,13.3719233

jih:49.5416972,13.3719233
východ:49.7416972,13.5719233
západ:49.7416972,13.1719233

Prozatím jsem si na test nechal vypsat tyto hodnoty. Myslíte, že takhle docílím toho co potřebuji?

Nahlásit jako SPAM
IP: 193.86.205.–
Soilis
~ Anonymní uživatel
3 příspěvky
22. 5. 2014   #4
-
0
-

Našel jsem nějaký manuál a vypadá slibně. Moje řešení je úplně blbě :-(

Nahlásit jako SPAM
IP: 193.86.205.–
Flowy0
Věrný člen
22. 5. 2014   #5
-
0
-

z tohto by ti vysiel stvorec ale pre zaciatok by to stacilo ... ak chces radius tak musis pouzit vzorec pre kruh ... 

(x - xM)^2 + (y - yM)^2 ≤ r^2

za x a y dosadis suradnice ktore chces overit ... za xM a yM dosadis suradnice stredu ... r je polomer cize tvojich 10 km vyjadrenych v gps suradniciach (mam ale taky pocit ze suradnice niesu rovnomerne cize ked pojdes na sever/juh od rovniku tak namiesto kruhu budes dostavat elipsu) ... ak nerovnica plati tak sa nachadza bod v radiuse

Nahlásit jako SPAM
IP: 84.47.0.–
https://github.com/Flowy
peter
~ Anonymní uživatel
2528 příspěvků
23. 5. 2014   #6
-
0
-

A nebylo by jednodussi, nez to slozite pocitat, vzit proste ctverec o neco vetsi? Pres css se ten zbytek da schovat. Pokud to chces prepocitavat, tak bych to nechal az na javascriptu nebo php (google na to ma jiste funkce v maps enginu). A nebo to udelat pres dvojity dotaz, kdy prvni vybere ctverec, pac to bude rychlejsi a druhy to prepocita na oval zeme.

http://www.scribd.com/doc/2569355/Geo-Distance-Search-with-MySQL

 set @orig_lat=122.4058; set @orig_lon=37.7907;set @dist=10;
SELECT *,
 
3956 * 2 * ASIN(SQRT( POWER(SIN((@orig_lat -
abs( 
dest.lat)) * pi()/180 / 2),2) + COS(@orig_lat * pi()/180 ) * COS( 
abs
(dest.lat) *  pi()/180) * POWER(SIN((@orig_lon – dest.lon) *  pi()/180 / 2), 2) ))
 
as distanceFROM hotels desthaving distance < @distORDER BY distance limit 10;
Lat can be negative!

4s, na dalsi strankach provadi upravy na 0.6-1s pro 800.000 zaznamu pres procedury. Tez to filtruje treba nejdriv pomoci ZIP kod oblasti. Mno, a pak je tu moznost si proste predem vypocitat ctverce a ulozit do db pri insertu. Pak si vyberes vsechno, co odpovida ctvercum z okoli a odfiltrujes tim slozitym vypoctem, co nechces. Rzhodne je rychlejsi najit cislo 5678 nez 49.3567842.
google = gps counting radius formula
(Calculate distance, bearing and more between Latitude/Longitude points)
http://www.movable-type.co.uk/…latlong.html

Nahlásit jako SPAM
IP: 2001:718:2601:258:906b:4b...–
Flowy0
Věrný člen
23. 5. 2014   #7
-
0
-

ak vypocet prenesies na klienta tak to urcite nebude lepsie ... vypocet v databaze by nemal byt o moc pomalsi ako vypocet v apache alebo inom kontainery ... ak to chces zrychlit tak sprav ten vypocet nahrubo (napr radius ohranic stvorcom ... cez stvorec si odfiltruj zaznamy ktore tam urcite nebudu ... z ostatnych spravis novu tabulku a na tejto uz budes pocitat priamo radius

pouzitie nejakeho predpocitaneho listu sposobi viac problemov ako uzitku

Nahlásit jako SPAM
IP: 91.148.1.–
https://github.com/Flowy
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 29 hostů

Podobná vlákna

GPS matematika — založil SagTo

ASUS P535 s GPS navigací — založil plasmo

GPS souřadnice do floating point number — založil Anonymní uživatel

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý