Oṣu yii Mo ti ṣe siseto eto diẹ ni PHP ati MySQL pẹlu ọwọ si GIS. Lilọ kiri ni ayika apapọ, Mo ni akoko lile lati wa diẹ ninu awọn iṣiro Ilẹ-ilẹ lati wa aaye laarin awọn ipo meji nitorinaa Mo fẹ lati pin wọn nibi.
Ọna ti o rọrun lati ṣe iṣiro aaye laarin awọn aaye meji ni lilo agbekalẹ Pythagorean lati ṣe iṣiro hypotenuse ti onigun mẹta kan (A² + B² = C²). Eyi ni a mọ bi awọn Ijinna Euclidean.
Iyẹn jẹ ibẹrẹ ti o nifẹ ṣugbọn ko waye pẹlu Geography nitori aaye laarin awọn ila ti latitude àti Longitude wa kii ṣe aaye to dogba yato si. Bi o ṣe sunmọ sunmọ equator, awọn ila ti latitude wa siwaju si iyatọ. Ti o ba lo iru idogba onigun mẹta kan ti o rọrun, o le wọn iwọn ijinna deede ni ipo kan ati pe o jẹ aṣiṣe nla ni ekeji, nitori iyipo ti Earth.
Ilana Haversine
Ijinna nipa lilo iyipo ti Earth ni a dapọ ninu Agbekalẹ Haversine, eyiti o lo trigonometry lati gba aaye fun iyipo ti ilẹ. Nigbati o ba n wa aaye laarin awọn aaye 2 ni ilẹ (bi kuroo ti n fo), ila laini jẹ aaki.
Eyi wulo ni fifo afẹfẹ - ṣe o ti wo maapu gangan ti awọn ọkọ ofurufu ti o ṣe akiyesi pe wọn ti lọ? Iyẹn nitori pe o kuru ju lati fo ni oju-ọna laarin awọn aaye meji ju taara si ipo naa.
PHP: Ṣe iṣiro Ijinna Laarin Awọn aaye 2
Lonakona, eyi ni agbekalẹ PHP fun iṣiro iṣiro aaye laarin awọn aaye meji (pẹlu Mile la. Iyipada Kilomita) ti yika si awọn aaye eleemewa meji.
function getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2, $unit = 'miles') {
$theta = $longitude1 - $longitude2;
$distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta)));
$distance = acos($distance);
$distance = rad2deg($distance);
$distance = $distance * 60 * 1.1515;
switch($unit) {
case 'miles':
break;
case 'kilometers' :
$distance = $distance * 1.609344;
}
return (round($distance,2));
}
SQL: Gbigba Gbogbo Awọn Igbasilẹ Laarin Ibiti Nipasẹ Iṣiro Ijinna Ni Awọn Maili Lilo Latitude ati Longitude
O tun ṣee ṣe lati lo SQL lati ṣe iṣiro kan lati wa gbogbo awọn igbasilẹ laarin ijinna kan pato. Ni apẹẹrẹ yii, Mo n beere MyTable ni MySQL lati wa gbogbo awọn igbasilẹ ti o kere ju tabi dogba si iyipada $ ijinna (ni Awọn Maili) si ipo mi ni $ latitude ati $ longitude:
Ibeere fun gbigba gbogbo awọn igbasilẹ laarin kan pato ijinna nipa iṣiro iṣiro ni awọn maili laarin awọn aaye meji ti latitude àti ìgùn ni:
$query = "SELECT *, (((acos(sin((".$latitude."*pi()/180)) * sin((`latitude`*pi()/180)) + cos((".$latitude."*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((".$longitude."- `longitude`)*pi()/180)))) * 180/pi()) * 60 * 1.1515) as distance FROM `table` WHERE distance <= ".$distance."
Iwọ yoo nilo lati ṣe akanṣe eyi:
- $ ìgùn - eyi jẹ iyipada PHP nibiti Mo n kọja gigun ti aaye naa.
- $ latitude - eyi jẹ iyipada PHP nibiti Mo n kọja gigun ti aaye naa.
- $ ijinna - eyi ni aaye ti iwọ yoo fẹ lati wa gbogbo awọn igbasilẹ kekere tabi dogba si.
- tabili - eyi ni tabili… iwọ yoo fẹ lati rọpo iyẹn pẹlu orukọ tabili rẹ.
- latitude - eyi ni aaye ti latitude rẹ.
- jijin - eyi ni aaye ti gigun gigun rẹ.
SQL: Gbigba Gbogbo Awọn Igbasilẹ Laarin Ibiti Nipasẹ Iṣiro Ijinna Ni Awọn Kilomita Lilo Latitude ati Longitude
Ati pe eyi ni ibeere SQL nipa lilo awọn ibuso ni MySQL:
$query = "SELECT *, (((acos(sin((".$latitude."*pi()/180)) * sin((`latitude`*pi()/180)) + cos((".$latitude."*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((".$longitude."- `longitude`) * pi()/180)))) * 180/pi()) * 60 * 1.1515 * 1.609344) as distance FROM `table` WHERE distance <= ".$distance."
Iwọ yoo nilo lati ṣe akanṣe eyi:
- $ ìgùn - eyi jẹ iyipada PHP nibiti Mo n kọja gigun ti aaye naa.
- $ latitude - eyi jẹ iyipada PHP nibiti Mo n kọja gigun ti aaye naa.
- $ ijinna - eyi ni aaye ti iwọ yoo fẹ lati wa gbogbo awọn igbasilẹ kekere tabi dogba si.
- tabili - eyi ni tabili… iwọ yoo fẹ lati rọpo iyẹn pẹlu orukọ tabili rẹ.
- latitude - eyi ni aaye ti latitude rẹ.
- jijin - eyi ni aaye ti gigun gigun rẹ.
Mo lo koodu yii ni pẹpẹ maapu ti ile-iṣẹ ti a lo fun itaja itaja pẹlu awọn ipo ti o ju 1,000 kọja Amẹrika ariwa ati pe o ṣiṣẹ daradara.
O ṣeun pupọ fun pinpin. Eyi jẹ ẹda ti o rọrun ati iṣẹ lẹẹ ati ṣiṣẹ nla. O ti fipamọ igba pupọ fun mi.
FYI fun ẹnikẹni ti n gbe ni C:
ilọpo meji deg2rad (ilọpo meji) {deg pada * (3.14159265358979323846 / 180.0); }
Nkan ti o dara pupọ ti ifiweranṣẹ - ṣiṣẹ dara julọ - MO ni lati yi orukọ tabili nikan dani lat-gun. O ṣiṣẹ ni iyara si .. Mo ni nọmba kekere ti o ni oye ti lat-longs (<400) ṣugbọn Mo ro pe eyi yoo ṣe iwọn daradara. Aaye ti o wuyi paapaa - Mo ti ṣafikun rẹ si akọọlẹ del.icio.us mi ati pe yoo ṣayẹwo nigbagbogbo.
O ṣeun pupọ Peter ati Kerry! Ti o ba fẹ ṣiṣẹ lori awọn iṣẹ GIS, Emi yoo ṣeduro:
O ṣeun pupọ… 😀
Mo wa gbogbo ọjọ fun awọn iṣiro ijinna ati ri algorithm harversine, o ṣeun fun ọ fun fifun apẹẹrẹ lori bi a ṣe le fi sii ninu alaye sql kan. O ṣeun ati kí, Daniel
Dun lati ṣe iranlọwọ, awọn afowodimu ọrẹ!
Nisisiyi Mo wa iṣẹ ‘in Polygon’ PHP iṣẹ ti yoo gba ọpọlọpọ ti latitude ọkọọkan ati awọn ipoidojosi gigun ati ṣayẹwo boya aaye miiran wa laarin tabi ita polygon.
Mo ti ri awọn idogba lati mọ boya aaye ninu polygon kan!
Mo ro pe SQL rẹ nilo alaye nini.
dipo IBI ijinna <= $ ijinna o le nilo lati
lo IBI jijin <= $ ijinna
bibẹkọ ti o ṣeun fun fifipamọ mi opo ti akoko ati agbara.
Hi Dafidi,
Ti o ba n ṣe eyikeyi iru ẹgbẹ nipasẹ alaye, iwọ yoo nilo N you. Emi ko ṣe bẹ ninu apẹẹrẹ loke.
Doug
Gẹgẹ bi ti MySQL 5.x, o ko le lo inagijẹ kan lori ibi ti o wa ni gbolohun wo http://dev.mysql.com/doc/refman/5.0/en/problems-with-alias.html
Lo NV dipo ti Nibo ni awọn querys ti o wa loke
O ṣeun pupọ. O ti ṣe iṣẹ nla Iyẹn ni ohun ti MO fẹ gangan. O ṣeun lọpọlọpọ.
O ṣeun pupọ fun pinpin koodu yii. O ti fipamọ mi ni akoko idagbasoke pupọ. Pẹlupẹlu, o ṣeun fun awọn oluka rẹ fun titọka pe alaye HAVING jẹ pataki fun MySQL 5.x. Iranlọwọ pupọ.
Mo ni ibukun lati ni awọn onkawe si ọlọgbọn ju emi lọ!
🙂
Agbekalẹ ti o wa loke n fipamọ mi ni akoko pupọ. O ṣeun pupọ.
Mo tun ni lati yipada laarin ọna kika NMEA ati Awọn Iwọn. Mo wa agbekalẹ kan ni URL yii ni isalẹ ti oju-iwe naa. http://www.errorforum.com/knowledge-base/16273-converting-nmea-sentence-latitude-longitude-decimal-degrees.html
Ṣe ẹnikẹni mọ bi a ṣe le ṣayẹwo eyi?
E dupe!
Harry
Pẹlẹ o,
Ibeere miiran. Ṣe agbekalẹ kan wa fun awọn okun NMEA bii eyi ti o wa ni isalẹ?
1342.7500, N, 10052.2287, E
$GPRMC,032731.000,A,1342.7500,N,10052.2287,E,0.40,106.01,101106,,*0B
o ṣeun,
Harry
Mo tun rii pe NIBI ko ṣiṣẹ fun mi. Yi pada si NV ati pe ohun gbogbo n ṣiṣẹ ni pipe. Ni akọkọ Emi ko ka awọn asọye ki o tun kọwe rẹ nipa lilo aṣayan itẹ-ẹiyẹ. Awọn mejeeji yoo ṣiṣẹ daradara.
O ṣeun pupọ fun iwe afọwọkọ ti a kọ sinu MySQL, o kan ni lati ṣe awọn atunṣe kekere diẹ (NV)
Iṣẹ Gret
Iranlọwọ iyalẹnu, o ṣeun pupọ! Mo ni awọn iṣoro diẹ pẹlu “NIGBA” tuntun, dipo “NIBI”, ṣugbọn ni kete ti Mo ka awọn asọye nibi (lẹhin to idaji wakati kan ti lilọ awọn eyin mi ni ibanujẹ = P), Mo gba pe o ṣiṣẹ daradara. O ṣeun ^ _ ^
o ṣeun pupọ ṣiṣẹ nla
Ranti pe alaye yiyan bii iyẹn yoo jẹ kikankikan iṣiro pupọ ati nitorinaa o lọra. Ti o ba ni ọpọlọpọ awọn ibeere wọnyẹn, o le fa awọn nkan mọlẹ ni kiakia.
Ọna ti ko nira pupọ julọ ni lati ṣiṣe yiyan akọkọ (robi) ni lilo agbegbe SQUARE ti o ṣalaye nipasẹ ijinna iṣiro ie “yan * lati tablename nibiti latitude laarin lat1 ati lat2 ati longitude laarin lon1 ati lon2”. lat1 = targetlatitude - latdiff, lat2 = targetlatitude + latdiff, bakanna pẹlu lon. latdiff ~ = ijinna / 111 (fun km), tabi ijinna / 69 fun awọn maili lati igba 1 iwọn latitude jẹ ~ 111 km (iyatọ diẹ nitori aye jẹ ofali diẹ, ṣugbọn o to fun idi eyi). londiff = ijinna / (abs (cos (deg2rad (latitude)) * 111)) - tabi 69 fun awọn maili (o le gba square ni kekere ti o tobi pupọ lati le ṣe akoto fun awọn iyatọ). Lẹhinna mu abajade iyẹn ki o jẹun sinu yiyan radial. O kan maṣe gbagbe lati ṣe akọọlẹ fun awọn ipoidojuko ti aala-ie ibiti ibiti gigun-itẹwọgba itẹwọgba jẹ -180 si +180 ati ibiti latitude itẹwọgba itẹwọgba jẹ -90 si +90 - bi o ba jẹ pe latdiff rẹ tabi londiff rẹ n sare ni ita agbegbe yii . Akiyesi pe ni ọpọlọpọ awọn ọran eyi le ma wulo nitori o kan awọn iṣiro lori ila kan nikan nipasẹ okun pacific lati polu si polu, botilẹjẹpe o pin apakan apakan ti chukotka ati apakan alaska.
Ohun ti a ṣaṣepari nipasẹ eyi jẹ idinku nla ninu nọmba awọn aaye ti o fi ṣe iṣiro yii. Ti o ba ni awọn aaye kariaye miliọnu kan ninu ibi ipamọ data ti a pin ni aijọju ati pe o fẹ lati wa laarin 100 km, lẹhinna iṣawari akọkọ rẹ (yara) jẹ ti agbegbe 10000 sq km ati pe yoo jasi fun ni awọn abajade 20 (da lori paapaa pinpin lori agbegbe ti o fẹrẹ to 500M sq km), eyi ti o tumọ si pe o nṣiṣẹ iṣiro ijinna idiju 20 awọn akoko fun ibeere yii dipo awọn akoko miliọnu kan.
Aṣiṣe kekere ni apẹẹrẹ… iyẹn yoo wa laarin 50 km (kii ṣe 100) nitori a n wo “radius” ti… onigun mẹrin wa.
Imọran ikọja! Mo ṣiṣẹ gangan pẹlu olugbala kan ti o kọ iṣẹ kan ti o fa igun inu ati lẹhinna iṣẹ atunkọ kan ti o ṣe ‘awọn onigun mẹrin’ ni ayika agbegbe lati ṣafikun ati ya awọn aaye ti o ku silẹ. Abajade jẹ abajade iyara iyalẹnu - o le ṣe iṣiro awọn miliọnu awọn ojuami ninu awọn iṣẹju-aaya.
Ọna mi loke jẹ dajudaju 'robi' ṣugbọn o lagbara. Mo dupe lekan si!
Doug,
Mo ti n gbiyanju lati lo MySQL ati PHP lati ṣe iṣiro boya aaye to gun lat laarin polygon kan. Njẹ o mọ boya ọrẹ Olùgbéejáde rẹ ṣe atẹjade eyikeyi awọn apẹẹrẹ lori bii o ṣe le ṣe iṣẹ yii. Tabi ṣe o mọ awọn apẹẹrẹ ti o dara eyikeyi. O ṣeun siwaju.
Bawo gbogbo eniyan eyi ni alaye SQL idanwo mi:
SELECT DISTINCT area_id, (
(
(
acos( sin( ( 13.65 * pi( ) /180 ) ) * sin( (
`lat_dec` * pi( ) /180 ) ) + cos( ( 13.65 * pi( ) /180 ) ) * cos( (
`lat_dec` * pi( ) /180 )
) * cos( (
( 51.02 - `lon_dec` ) * pi( ) /180 )
)
)
) *180 / pi( )
) *60 * 1.1515 * 1.609344
) AS distance
FROM `post_codes` WHERE distance <= 50
ati Mysql n sọ fun mi pe ijinna, ko si tẹlẹ bi ọwọn kan, Mo le lo aṣẹ nipasẹ, Mo le ṣe laisi IBI, o si n ṣiṣẹ, ṣugbọn kii ṣe pẹlu rẹ…
Rọpo “NIBI jijin” pẹlu “jijinna jijin”.
Ṣiṣẹ bi ifaya kan, o ṣeun, Douglas!
Eyi jẹ nla, sibẹsibẹ o jẹ gẹgẹ bi awọn ẹiyẹ ti n fo. Yoo jẹ ohun nla lati gbiyanju ati ṣafikun awọn maapu google API si ọna yii (boya ni lilo awọn ọna abbl.) O kan lati fun ni imọran ni lilo ọna gbigbe miiran. Mo tun ni sibẹsibẹ lati ṣe iṣẹ ifasita afarawe ni PHP ti yoo ni anfani lati funni ni ojutu ti o munadoko si iṣoro olutaja arinrin-ajo. Ṣugbọn Mo ro pe Mo le ni anfani lati tun lo diẹ ninu koodu rẹ lati ṣe bẹ.
Bawo ni Douglas,
o ṣeun pupọ fun nkan yii - o kan ti fipamọ mi ni ọpọlọpọ akoko.
o dabọ,
nimrod @Israẹli
O dara nkan! Mo wa ọpọlọpọ awọn nkan ti o ṣe apejuwe bi o ṣe le ṣe iṣiro aaye laarin awọn aaye meji ṣugbọn Mo n wa snippet SQL gaan.
O ṣeun pupọ ṣiṣẹ dara
O ṣeun pupọ fun agbekalẹ yii. O fari diẹ ninu akoko lori iṣẹ akanṣe ipo itaja kan ti o njẹun si mi.
O ṣeun lapapo kan. Laini koodu kekere yii ti fipamọ mi ni akoko akude ni iṣẹ akanṣe ipo itaja kan!
# 1054 - Ọwọn ti a ko mọ 'ijinna' ni 'ibiti o ti sọ fun'
gbawọ
Bakanna nibi! Kini iṣoro naa: - /? bawo ni a ṣe le yanju “ijinna” - Iṣoro Ọwọn? Jọwọ ṣe iranlọwọ fun wa !! 🙂
Gbiyanju lilo NIPA dipo NIBI
Awọn ọjọ 2 ti iwadi lati wa ni oju-iwe ni ipari ti o yanju iṣoro mi. O dabi pe mo dara igbamu jade WolframAlpha mi ki o fẹlẹ lori awọn mathimatiki mi. Iyipada lati NIBI si N HA ni iwe afọwọkọ mi ni aṣẹ ṣiṣẹ. E DUPE
dipo NIGBATI gbolohun ọrọ lo:
Nini ijinna <50
O ṣeun Georgi. Mo ti n gba iwe ‘ijinna’ ti a ko rii. Ni kete ti Mo yipada NIBI si N HA o ṣiṣẹ bi ifaya kan!
Mo fẹ pe eyi ni oju-iwe akọkọ ti Mo rii lori eyi. Lẹhin igbidanwo ọpọlọpọ awọn ofin oriṣiriṣi eyi nikan ni ọkan lati ṣiṣẹ daradara, ati pẹlu awọn ayipada ti o kere ju ti o nilo lati ba data data mi lọ.
O ṣeun lọpọlọpọ!
Mo fẹ pe eyi ni oju-iwe akọkọ ti Mo rii lori eyi. Lẹhin igbidanwo ọpọlọpọ awọn ofin oriṣiriṣi eyi nikan ni ọkan lati ṣiṣẹ daradara, ati pẹlu awọn ayipada ti o kere ju ti o nilo lati ba data data mi lọ.
O ṣeun lọpọlọpọ!
O ṣeun lọpọlọpọ!
O ṣeun lọpọlọpọ!
Emi ko ro pe koodu naa n farahan mọ. Boya o jẹ Firefox?
Mo kan dan idanwo mejeeji ni Firefox ati Chrome ati pe o n han. Gbiyanju lẹẹkansi?
Bawo. O ṣeun lọpọlọpọ. Eyi ṣiṣẹ bi ifaya kan.
O ṣeun pupọ Douglas. Eyi n ṣiṣẹ ni pipe.
Mo mọ pe agbekalẹ yii n ṣiṣẹ, ṣugbọn Emi ko le rii ibiti a ṣe ka rediosi ti aye si akọọlẹ. Jọwọ, ẹnikẹni ha le tàn mi loju?
Tim, fun alaye ni kikun ti agbekalẹ Haversine (iyẹn kii ṣe koodu), ṣayẹwo nkan Wikipedia: http://en.wikipedia.org/wiki/Haversine_formula
Lẹwa! Eyi ti ṣe iranlọwọ fun mi pupọ!
Nla nkan Douglas. Njẹ o ti gbiyanju lati gba aaye ikorita ti a fun Long / Lat / Bearing ti awọn aaye meji?
Ko tii ṣe iyẹn sibẹsibẹ, Khanh!
O ṣeun Douglas, Ibeere SQL jẹ ohun ti Mo nilo gangan, ati pe Mo ro pe Emi ni lati kọ funrarami. O ti fipamọ mi lati ṣee ṣe awọn wakati ti ọna eko jijin latitude!
Mo n gba Errormage: Aimọ aimọ 'Ijinna' ni 'ibiti o ti ṣe gbolohun ọrọ' lori Ibeere MySQL.
Peter, jọwọ ka nipasẹ awọn asọye miiran. O han pe diẹ ninu awọn eniyan ni lati lo iṣọpọ oriṣiriṣi fun NIBI / N HA.
O ṣeun fun nkan nla yii! Kan ṣe idanwo koodu lori DB mi ati ṣiṣẹ nla!
Douglas, o ṣeun fun koodu iyalẹnu yii. Ti wa ni ori mi lori bi a ṣe le ṣe eyi lori oju-ọna agbegbe GPS mi. O ti fipamọ awọn wakati mi.
Nla lati gbọ, Ash!
o ṣeun fun fifiranṣẹ nkan iranlọwọ yii,
ṣugbọn fun idi kan Emi yoo fẹ lati beere
bawo ni a ṣe le gba aaye laarin awọn isomọ inu mysql db ati awọn ifibọ ti a fi sii si php nipasẹ olumulo?
fun apejuwe diẹ sii ni kedere:
1. olumulo ni lati fi sii [id] fun yiyan data pàtó lati db ati awọn iṣakoso olumulo funrararẹ
2. faili php gba data afojusun (awọn isomọ) ni lilo [id] ati lẹhinna ṣe iṣiro aaye laarin olumulo ati aaye ibi-afẹde
tabi o kan le gba ijinna si koodu ti o wa ni isalẹ?
$ qry = “Yan *, (((acos (sin ((.. $ latitude.” * pi () / 180)) * sin ((“Latitude` * pi () / 180)) + cos ((“. $ latitude. ”* pi () / 180)) * cos ((“ Latitude` * pi () / 180)) * cos (((“. $ longitude.” - “Longitude`) * * pi () / 180) ))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) bi ijinna LATI “MyTable`NIGBATI ijinna> =“. Ijinna $. ” >>>> Ṣe Mo le “mu” ijinna lati ibi?
mo dupe lekan si,
Timmy S.
maṣe lokan, Mo ti ṣe akiyesi bii “iṣẹ” ṣe n ṣiṣẹ ni php
$ dis = getDistanceBetweenPointsNew ($ userLati, $ userLongi, $ lati, $ longi, $ unit = 'Km')
o ṣeun lọpọlọpọ!!
ok, ohun gbogbo ti Mo ti gbiyanju ko ṣiṣẹ. Mo tumọ si, ohun ti Mo ni awọn iṣẹ, ṣugbọn awọn ijinna wa ni pipa.
Ṣe ẹnikẹni le rii kini aṣiṣe ninu koodu yii?
ti (ipilẹṣẹ ($ _ POST ['ti fi silẹ'])) {$ z = $ _POST ['zipcode']; $ r = $ _POST ['radius']; iwoyi “Awọn abajade fun“. $ z; $ sql = mysql_query (“Yan DISTINCT m.zipcode, m.MktName, m.LocAddSt, m.LocAddCity, m.LocAddState, m.x1, m.y1, m.verified, z1.lat, z2.lon, z1. ilu, z1.state LATI mrk m, zip z1, zip z2 NIBI m.zipcode = z1.zipcode ATI z2.zipcode = $ z AND (3963 * acos (truncate (sin (z2.lat / 57.2958)) sin (m. y1 / 57.2958) + cos (z2.lat / 57.2958) * cos (m.y1 / 57.2958) * cos (m.x1 / 57.2958 - z2.lon / 57.2958), 8))) <= $ r ") tabi ku (mysql_error ()); lakoko ($ kana = mysql_fetch_array ($ sql)) {$ store1 = $ row ['MktName']. ””; $ itaja = $ kana ['LocAddSt']. ””; $ itaja. = $ kana ['LocAddCity']. ”,“. $ kana ['LocAddState']. ” “. $ Kana ['zipcode']; $ latitude1 = $ kana ['lat']; $ longitude1 = $ ìlà ['lon']; $ latitude2 = $ kana ['y1']; $ ìgùn2 = $ ìlà ['x1']; $ ilu = $ kana ['ilu']; $ ipinle = $ kana ['ipinle']; $ dis = getnew ($ latitude1, $ longitude1, $ latitude2, $ longitude2, $ unit = 'Mi'); // $ dis = ijinna ($ lat1, $ lon1, $ lat2, $ lon2); $ wadi = $ kana ['wadi']; ti o ba ($ wadi == '1') {iwoyi “”; iwoyi “”. $ itaja. ””; iwoyi $ dis. ”Maili (s) kuro”; iwoyi “”; } miran {iwoyi “”. $ itaja. ””; iwoyi $ dis. ”Maili (s) kuro”; iwoyi “”; }}}
koodu function.php mi
iṣẹ tuntun ($ latitude1, $ longitude1, $ latitude2, $ longitude2, $ unit = 'Mi') {$ theta = $ longitude1 - $ longitude2; $ ijinna = (sin (deg2rad ($ latitude1)) * sin (deg2rad ($ latitude2))) + (cos (deg2rad ($ latitude1)) * cos (deg2rad ($ latitude2)) * cos (deg2rad ($ theta)) ); $ ijinna = acos ($ ijinna); $ ijinna = rad2deg ($ ijinna); $ ijinna = $ ijinna * 60 * 1.1515; yipada ($ kuro) {ọran 'Mi': fọ; ọran 'Km': ijinna $ = ijinna $ * 1.609344; } pada (yika ($ ijinna, 2)); }
Ṣeun ni ilosiwaju
O ṣeun fun nkan yii. Ṣiṣẹ daradara pẹlu koodu mi. 🙂
Hey Douglas, nkan nla. Mo ti rii alaye rẹ ti awọn imọran lagbaye ati koodu ti o nifẹ si gaan. Imọran mi nikan yoo jẹ si aaye ati tẹ koodu sii fun ifihan (bii Stackoverflow, fun apẹẹrẹ). Mo loye pe o fẹ lati ṣetọju aaye, ṣugbọn aye ti koodu aṣa / itọsi yoo jẹ ki o rọrun pupọ fun mi, gẹgẹ bi komputa kan, lati ka ati pinpin. Lọnakọna, iyẹn jẹ nkan kekere. Tọju iṣẹ nla naa.
O ṣeun! Mo ti ṣe atunṣe ifiweranṣẹ diẹ diẹ… ṣugbọn awọn idogba gba yara pupọ ati pe wọn pẹ to pe Emi ko rii daju pe o ṣe iranlọwọ pupọ.
Mo dupe lowo yin lopolopo.
nibi lakoko lilo pẹlu iṣẹ a n gba iru ijinna kan..nipasẹ lilo ibeere iru ọna jijin miiran ti n bọ
Emi ko ṣe iṣiro aaye laarin ipinle meji
Muchas gracias por tan hermoso codigo…
Thisd i dara awọn iṣẹ cosinus. Emi ko mọ iṣiro, ṣugbọn o ṣeun!
Job Nla… 🙂 (y)
o dabi yiyara (Myysql 5.9) lati lo lemeji agbekalẹ ninu yiyan ati ibiti:
agbekalẹ $ = “(((acos (sin ((.. $ latitude. * * pi () / 180)) * sin ((“ Latitude` * pi pi)) / 180)) + cos ((“. $ latitude. ”* Pi () / 180)) * cos ((“ Latitude` * pi () / 180)) * cos (((“. $ Longitude.” - “Longitude`) * pi () / 180)))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) ”;
$ sql = 'Yan *,'. agbekalẹ $. ' bi ijinna LATI tabili NIBI '.. $ agbekalẹ.' <= '. ijinna $;
o ṣeun…
ko ṣiṣẹ ti o ba
“NIGBATI ijinna”
ṣiṣẹ ti o ba ti
“N distanceN distanceR distance”
O ṣeun pupọ fun rirọ-ọrọ nkan yii. O wulo pupọ.
A ṣẹda PHP ni akọkọ bi pẹpẹ iwe afọwọkọ ti o rọrun ti a pe ni “Oju-iwe Ile Ti ara ẹni”. Ni ode oni PHP (kukuru fun Proprocessor Hypertext) jẹ yiyan ti imọ-ẹrọ Microsoft Awọn oju-iwe Olupin Olupin (ASP).
PHP jẹ ede olupin orisun orisun eyiti o lo fun ṣiṣẹda awọn oju-iwe wẹẹbu ti o ni agbara. O le fi sii sinu HTML. PHP ni a maa n lo ni apapo pẹlu ibi ipamọ data MySQL lori awọn olupin wẹẹbu Linux / UNIX. O ṣee ṣe o jẹ ede mimọ ti o gbajumọ julọ.
Mo ti ri loke ojutu ko ṣiṣẹ daradara.
Mo nilo lati yipada si:
$ qqq = "Yan *, (((acos (sin ((.. $ latitude. * * pi () / 180)) * sin ((" latt` * pi () / 180)) + cos ((".) $ latitude. “* pi () / 180)) * cos ((“ latt` * pi () / 180)) * cos (((”. $ longitude.“ - “longt`) * pi () / 180) ))) * 180 / pi ()) * 60 * 1.1515) bi ijinna LATI “forukọsilẹ” “;
O ṣeun Kupendra!
o ṣeun sir n ṣiṣẹ ni pipe .. ṣugbọn Mo ni ibeere kan ti Mo ba fẹ gbejade laisi aaye eleemewa lẹhinna kini MO le ṣe ..?
O ṣeun siwaju.
Kaabo, jọwọ emi yoo nilo iranlọwọ rẹ gaan lori eyi.
Mo ṣe ibere gbigba si olupin ayelujara mi http://localhost:8000/users/findusers/53.47792/-2.23389/20/
53.47792 = $ latitude
-2.23389 = $ ìgùn
ati 20 = ijinna ti mo fẹ gba
Sibẹsibẹ lilo agbekalẹ rẹ, o gba gbogbo awọn ori ila ninu db mi
$ awọn esi = DB :: yan (DB :: raw (“Yan *, ((acos (sin ((.. $ latitude.” * pi () / 180)) * sin ((lat * pi () / 180) )) + cos ((“. $ latitude.” * pi () / 180)) * cos ((lat * pi () / 180)) * cos (((“. $ longitude.” - lng) * pi ( ) / 180)))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) bi ijinna LATI awọn ami asami Nini aaye> = “. Ijinna $));
[{“Id”: 1, ”orukọ”: “Frankie Johnnie & Luigo Too”, ”address”: “939 W El Camino Real, Mountain View, CA”, ”lat”: 37.386337280273, ”lng”: - 122.08582305908, ”Ijinna”: 16079.294719663}, {“id”: 2, ”orukọ”: “Amici's East Coast Pizzeria”, ”address”: ”790 Castro St, Mountain View, CA”, ”lat”: 37.387138366699, ”lng”: -122.08323669434, ”ijinna”: 16079.175940152}, {“id”: 3, ”orukọ”: “Kapp's Pizza Bar & Grill”, ”address”: “191 Castro St, Mountain View, CA”, “lat”: 37.393886566162, ”Lng”: - 122.07891845703, ”ijinna”: 16078.381373826}, {“id”: 4, ”name”: “Table Yika Pizza: Mountain View”, “adirẹsi”: “570 N Shoreline Blvd, Mountain View, CA”, ”Lat”: 37.402652740479, ”lng”: - 122.07935333252, ”distance”: 16077.420540582}, {“id”: 5, ”name”: “Tony & Alba's Pizza & Pasasta”, ”address”: ”619 Escuela Ave, Mountain Wiwo, CA ”,” lat ”: 37.394012451172,” lng ”: - 122.09552764893,” ijinna ”: 16078.563225154}, {“ id ”: 6,” name ”:” Pizza Fired Wood-Oregano ”,” address ”:” 4546 El Camino Real, Los Altos, CA ”,” lat ”: 37.401725769043,” lng ”: - 122.11464691162,” ijinna ”: 16077.937560795}, {“ id ": 7," orukọ ":" Awọn ifi ati awọn ohun mimu "," adirẹsi ":" 24 Whiteley Street, Manchester "," lat ": 53.485118865967," lng ": - 2.1828699111938," ijinna ": 8038.7620112314}]
Mo fẹ lati gba awọn ori ila kan wa pẹlu awọn maili 20 ṣugbọn o mu gbogbo awọn ori ila wa. Jọwọ kini MO n ṣe aṣiṣe