PhD

Foirmle Haversine - Obraich a-mach astar cearcall mòr le PHP no MySQL

A ’mhìos seo tha mi air a bhith a’ prògramadh gu ìre mhath ann am PHP agus MySQL a thaobh GIS. A ’spùtadh timcheall an lìon, bha ùine chruaidh agam a’ lorg cuid de na Àireamhaidhean cruinn-eòlasach gus an astar eadar dà àite a lorg agus mar sin bha mi airson an roinn an seo.

Mapa itealain Eòrpa le astar mòr cearcaill

Is e an dòigh sìmplidh air astar eadar dà phuing obrachadh a-mach a bhith a ’cleachdadh foirmle Pythagorean gus hypotenuse triantan obrachadh a-mach (A² + B² = C²). Canar seo ris an Astar Euclidean.

Is e tòiseachadh inntinneach a tha sin ach chan eil e a ’buntainn ri Cruinn-eòlas leis gu bheil an astar eadar loidhnichean domhan-leud is domhan-fhad chan e astar co-ionann bho chèile. Mar a thig thu nas fhaisge air a ’chrios-mheadhain, bidh loidhnichean domhan-leud a’ faighinn nas fhaide bho chèile. Ma chleachdas tu co-aontar triantanachaidh sìmplidh, is dòcha gun tomhais e astar gu ceart ann an aon àite agus gu math ceàrr anns an àite eile, air sgàth lùbadh na Talmhainn.

Astar Cearcall Mòr

Canar na slighean a shiubhail astaran fada timcheall na Talmhainn Astar Cearcall Mòr. Is e sin ... tha an astar as giorra eadar dà phuing air cruinne eadar-dhealaichte seach na puingean air mapa rèidh. Cuir sin còmhla leis nach eil na loidhnichean domhan-leud is domhan-fhad co-aontach ... agus tha àireamhachadh duilich agad.

Seo mìneachadh bhidio air leth math air mar a tha Great Circles ag obair.

Foirmle Haversine

Tha an astar le bhith a ’cleachdadh curvature na Talmhainn air a thoirt a-steach don Foirmle Haversine, a bhios a ’cleachdadh trigonometry gus curvature na talmhainn a cheadachadh. Nuair a lorgas tu an astar eadar 2 àite air an talamh (mar a bhios an fheannag ag itealaich), is e arc a th ’ann an loidhne dhìreach.

Tha seo iomchaidh ann an itealan adhair - an do choimhead thu a-riamh air fìor mhapa nan itealain agus an do mhothaich thu gu bheil iad boghach? Tha sin air sgàth gu bheil e nas giorra a bhith ag itealaich ann am bogha eadar dà phuing na dìreach chun àite.

PHP: Obraich a-mach astar eadar 2 phuing domhan-leud is domhan-leud

Co-dhiù, seo am foirmle PHP airson obrachadh a-mach an astar eadar dà phuing (còmhla ri tionndadh Mile vs Kilometer) air a chuairteachadh gu dà àite deicheach.

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: A ’faighinn air ais a h-uile clàr taobh a-staigh raon le bhith a’ tomhas astar ann am mìltean a ’cleachdadh domhan-leud is domhan-fhad

Tha e comasach cuideachd SQL a chleachdadh gus àireamhachadh a dhèanamh gus a h-uile clàr a lorg taobh a-staigh astar sònraichte. San eisimpleir seo, tha mi a ’dol a cheasnachadh MyTable ann am MySQL gus na clàran uile a lorg a tha nas lugha na no co-ionann ri astar caochlaideach $ (ann am Miles) chun àite agam aig $ domhan-leud agus $ domhan-leud:

A ’cheist airson a h-uile clàr fhaighinn air ais taobh a-staigh sònraichte astar le bhith a ’tomhas astar ann am mìltean eadar dà phuing domhan-leud is domhan-fhad tha:

$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."

Feumaidh tu seo a ghnàthachadh:

  • $ domhan-leud - is e seo caochladair PHP far a bheil mi a ’dol seachad air domhan-leud a’ phuing.
  • $ domhan-leud - is e seo caochladair PHP far a bheil mi a ’dol seachad air domhan-leud a’ phuing.
  • $ astar - is e seo an astar a bu mhath leat na clàran gu lèir a lorg nas lugha no co-ionann riutha.
  • Clàr - is e seo an clàr ... bidh thu airson ainm do bhòrd a chuir na àite.
  • domhan-leud - is e seo raon do domhan-leud.
  • domhan-leud - is e seo an raon de do fhad.

SQL: A ’faighinn air ais a h-uile clàr taobh a-staigh raon le bhith a’ tomhas astar ann an cilemeatairean a ’cleachdadh domhan-leud is domhan-fhad

Agus seo a ’cheist SQL a’ cleachdadh cilemeatairean ann am 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."

Feumaidh tu seo a ghnàthachadh:

  • $ domhan-leud - is e seo caochladair PHP far a bheil mi a ’dol seachad air domhan-leud a’ phuing.
  • $ domhan-leud - is e seo caochladair PHP far a bheil mi a ’dol seachad air domhan-leud a’ phuing.
  • $ astar - is e seo an astar a bu mhath leat na clàran gu lèir a lorg nas lugha no co-ionann riutha.
  • Clàr - is e seo an clàr ... bidh thu airson ainm do bhòrd a chuir na àite.
  • domhan-leud - is e seo raon do domhan-leud.
  • domhan-leud - is e seo an raon de do fhad.

Chleachd mi an còd seo ann an àrd-ùrlar mapaidh iomairt a chleachd sinn airson stòr reic le còrr air 1,000 àite air feadh Ameireaga a-Tuath agus dh ’obraich e gu brèagha.

76 Beachdan

  1. 1

    Mòran taing airson a roinneadh. B ’e obair furasta leth-bhreac agus paste a bha seo agus tha e ag obair gu math. Shàbhail thu tòrr ùine dhomh.
    FYI airson neach sam bith a tha a ’dèanamh air C:
    deg2rad dùbailte (dùbailte deg) {tilleadh deg * (3.14159265358979323846 / 180.0); }

  2. 2

    Pìos puist glè ghrinn - dh ’obraich e gu math snog - cha robh agam ach ainm a’ bhùird leis an lat-long atharrachadh. Tha e ag obair gu math luath gu .. Tha àireamh reusanta beag de lat-longs agam (<400) ach tha mi a ’smaoineachadh gum biodh seo a’ sgèile gu snog. Làrach snog cuideachd - tha mi dìreach air a chuir ris a ’chunntas del.icio.us agam agus nì mi sgrùdadh air ais gu cunbhalach.

  3. 4
  4. 5
  5. 8

    Tha mi a ’smaoineachadh gu feum an SQL agad aithris fhaighinn.
    an àite WHERE astar <= $ astar a dh ’fhaodadh gum feum thu
    cleachd astar A ’GABHAIL <= $ astar

    air dhòigh eile taing airson cnap ùine agus lùth a shàbhaladh dhomh.

  6. 10
  7. 11
  8. 12

    Taing cho mòr airson an còd seo a cho-roinn. Shàbhail e tòrr ùine leasachaidh dhomh. Cuideachd, taing dha na leughadairean agad airson a bhith a ’comharrachadh gu bheil feum air aithris A DHÈANAMH airson MySQL 5.x. Gu math cuideachail.

  9. 14
  10. 15
  11. 16

    Lorg mi cuideachd nach robh WHERE ag obair dhòmhsa. Dh'atharraich e gu HAVING agus tha a h-uile dad ag obair gu foirfe. An toiseach cha do leugh mi na beachdan agus ath-sgrìobh mi e le taghadh neadaichte. Bidh an dithis ag obair gu math.

  12. 17
  13. 18

    Gu h-iongantach cuideachail, mòran taing! Bha duilgheadasan agam leis an “HAVING” ùr, seach “WHERE”, ach aon uair ‘s gun leugh mi na beachdan an seo (às deidh timcheall air leth uair a thìde de bhith a’ bleith m ’fhiaclan ann an frustrachas = P), fhuair mi e ag obair gu snog. Tapadh leibh ^ _ ^

  14. 19
  15. 20

    Cumaibh cuimhne gum bi aithris taghte mar sin gu math dian a thaobh computationally agus mar sin slaodach. Ma tha tòrr de na ceistean sin agad, faodaidh e cùisean a ghluasad sìos gu math luath.

    Is e dòigh-obrach nach eil cho dian a bhith a ’ruith a’ chiad roghainn (amh) a ’cleachdadh raon SQUARE air a mhìneachadh le astar air a thomhas ie“ tagh * bho ainm clàr far a bheil domhan-leud eadar lat1 agus lat2 agus domhan-fhad eadar lon1 agus lon2 ”. lat1 = targetlatitude - latdiff, lat2 = targetlatitude + latdiff, coltach ri lon. latdiff ~ = astar / 111 (airson km), no astar / 69 airson mìltean bho tha 1 ìre de domhan-leud ~ 111 km (eadar-dhealachadh beag leis gu bheil an talamh beagan ugh-chruthach, ach gu leòr airson an adhbhair seo). londiff = astar / (abs (cos (deg2rad (domhan-leud)) * 111)) - no 69 airson mìltean (faodaidh tu ceàrnag beagan nas motha a ghabhail gus cunntas a thoirt air atharrachaidhean). An uairsin thoir toradh às an sin agus thoir e a-steach don taghadh radial. Dìreach na dìochuimhnich cunntas a thoirt air co-chomharran taobh a-muigh crìochan - ie is e an raon domhan-leud iomchaidh -180 gu +180 agus is e an raon domhan-leud iomchaidh -90 gu +90 - air eagal ‘s gum bi an latdiff no londiff agad a’ ruith taobh a-muigh an raoin seo. . Thoir fa-near gur dòcha nach bi seo iomchaidh anns a ’mhòr-chuid de chùisean oir chan eil e a’ toirt buaidh ach air àireamhachadh thairis air loidhne tron ​​chuan shìthichte bho phòla gu pòla, ged a bhios e a ’trasnadh pàirt de chukotka agus pàirt de alaska.

    Is e na tha sinn a ’coileanadh le seo lùghdachadh mòr anns an àireamh de phuingean a nì thu an àireamhachadh seo. Ma tha millean puing cruinneil san stòr-dàta air a chuairteachadh gu ìre mhath cothromach agus gu bheil thu airson sgrùdadh a dhèanamh taobh a-staigh 100 km, tha a ’chiad sgrùdadh (luath) agad de sgìre 10000 sq km agus is dòcha gun toir e timcheall air 20 toradh (stèidhichte air eadhon sgaoileadh thairis air farsaingeachd uachdar de mu 500M sq km), a tha a ’ciallachadh gun ruith thu an àireamhachadh astar iom-fhillte 20 uair airson a’ cheist seo an àite millean uair.

    • 21
      • 22

        Comhairle sgoinneil! Dh ’obraich mi gu dearbh le leasaiche a sgrìobh gnìomh a tharraing a’ cheàrnag a-staigh agus an uairsin gnìomh ath-chuairteach a rinn ‘ceàrnagan’ timcheall air an iomall gus na puingean a bha air fhàgail a thoirt a-steach agus a thoirmeasg. Bha an toradh na thoradh iongantach luath - b ’urrainn dha milleanan de phuingean a mheasadh ann am microseconds.

        Tha an dòigh-obrach agam gu h-àrd gu cinnteach ‘amh’ ach comasach. Taing a-rithist!

        • 23

          Dùghlas,

          Tha mi air a bhith a ’feuchainn ri mysql agus php a chleachdadh gus measadh a bheil puing lat fada taobh a-staigh poileagan. A bheil fios agad an do dh ’fhoillsich do charaid leasaiche eisimpleirean sam bith air mar a choileanas tu a’ ghnìomh seo. No a bheil eòlas agad air eisimpleirean math. Taing ro-làimh.

  16. 24

    Hi a h-uile duine is e seo an aithris SQL deuchainn agam:

    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

    agus tha Mysql ag innse dhomh nach eil an t-astar sin ann mar cholbh, is urrainn dhomh òrdugh a chleachdadh le, is urrainn dhomh a dhèanamh às aonais WHERE, agus tha e ag obair, ach chan ann leis…

  17. 26

    Tha seo fìor mhath, ge-tà tha e dìreach mar a bhios na h-eòin a ’sgèith. Bhiodh e math feuchainn ris na mapaichean google API a thoirt a-steach don dòigh seo (is dòcha a ’cleachdadh rathaidean msaa.) Dìreach airson beachd a thoirt seachad a’ cleachdadh dòigh còmhdhail eadar-dhealaichte. Tha mi fhathast air gnìomh annealing samhlachail a dhèanamh ann am PHP a bhiodh comasach air fuasgladh èifeachdach a thabhann air duilgheadas an neach-reic siubhail. Ach tha mi a ’smaoineachadh gur dòcha gun urrainn dhomh cuid den chòd agad ath-chleachdadh airson sin a dhèanamh.

  18. 27
  19. 28

    Artaigil math! Lorg mi tòrr artaigilean a ’toirt cunntas air mar a b’ urrainn dhomh astar a thomhas eadar dà phuing ach bha mi a ’coimhead airson a’ chriomag SQL.

  20. 29
  21. 30
  22. 31
  23. 32
  24. 36

    2 latha de sgrùdadh gus an duilleag seo a lorg mu dheireadh a dh ’fhuasgladh mo dhuilgheadas. A ’coimhead mar gum bi mi nas fheàrr a’ cuir às do mo WolframAlpha agus a ’soilleireachadh mo chuid matamataigs. Tha an atharrachadh bho WHERE gu HAVING air mo sgriobt a bhith ag obair gu dòigheil. TAPADH LEAT

  25. 37
  26. 39

    Tha mi a ’guidhe gur e seo a’ chiad duilleag a lorg mi air seo. An dèidh a bhith a ’feuchainn mòran òrdughan eadar-dhealaichte b’ e seo an aon fhear a dh ’obraicheadh ​​gu ceart, agus le glè bheag de dh’ atharrachaidhean a dh ’fheumar gus a bhith freagarrach don stòr-dàta agam fhèin.
    Taing tòrr!

  27. 40

    Tha mi a ’guidhe gur e seo a’ chiad duilleag a lorg mi air seo. An dèidh a bhith a ’feuchainn mòran òrdughan eadar-dhealaichte b’ e seo an aon fhear a dh ’obraicheadh ​​gu ceart, agus le glè bheag de dh’ atharrachaidhean a dh ’fheumar gus a bhith freagarrach don stòr-dàta agam fhèin.
    Taing tòrr!

  28. 41
  29. 42
  30. 43
  31. 45
  32. 46
  33. 47

    Tha fios agam gu bheil am foirmle seo ag obair, ach chan urrainn dhomh faicinn far a bheilear a ’toirt aire do radius na talmhainn. An urrainn do dhuine sam bith mo shoilleireachadh, mas e do thoil e?

  34. 49
  35. 50
  36. 52
  37. 53
  38. 55
  39. 56
  40. 58

    taing airson an artaigil cuideachail seo a phostadh,  
    ach airson adhbhar air choireigin bu mhath leam faighneachd
    ciamar a gheibh thu an astar eadar coords taobh a-staigh mysql db agus coords air an cuir a-steach gu php leis an neach-cleachdaidh?
    airson cunntas nas soilleire a thoirt air:
    Feumaidh 1.user [id] a chuir a-steach airson dàta sònraichte a thaghadh bho db agus coords an neach-cleachdaidh fhèin
    2.the faidhle php faigh an dàta targaid (coords) a ’cleachdadh [id] agus an uairsin obraich a-mach astar eadar neach-cleachdaidh agus puing targaid

    no an urrainn dhut dìreach astar fhaighinn bhon chòd gu h-ìosal?

    $ qry = “SELECT *, (((acos (sin ((“. $ domhan-leud. ”* pi () / 180)) * sin ((` Latitude` * pi () / 180)) + cos ((“. $ domhan-leud. ”* pi () / 180)) * cos ((` Latitude` * pi () / 180)) * cos (((“. $ domhan-leud.” - `Domhanfhad`) * pi () / 180) ))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) mar astar BHO `MyTable` Far a bheil astar> =“. $ Astar. ” >>>> an urrainn dhomh an astar a thoirt a-mach à seo?
    taing a-rithist,
    Timmy S.

  41. 60

    ceart gu leòr, chan eil a h-uile dad a dh ’fheuch mi ag obair. Tha mi a ’ciallachadh, na tha agam ag obair, ach tha na h-astaran fada air falbh.

    Am faiceadh duine sam bith dè tha ceàrr air a ’chòd seo?

    ma tha (isset ($ _ POST ['air a chuir a-steach'])) {$ z = $ _POST ['zipcode']; $ r = $ _POST ['radius']; mac-talla “Toraidhean airson“. $ z; $ sql = mysql_query (“SELECT DISTINCT m.zipcode, m.MktName, m.LocAddSt, m.LocAddCity, m.LocAddState, m.x1, m.y1, m.verified, z1.lat, z2.lon, z1. baile-mòr, z1.state BHO mrk m, zip z1, zip z2 WHERE m.zipcode = z1.zipcode AND 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 ") no bàsachadh (mysql_error ()); fhad ($ row = mysql_fetch_array ($ sql)) {$ store1 = $ sreath ['MktName']. ""; $ store = $ sreath ['LocAddSt']. ””; $ store. = $ sreath ['LocAddCity']. ",". $ sreath ['LocAddState']. " “. $ Row ['zipcode']; $ domhan-leud1 = $ sreath ['lat']; $ domhanfhad1 = $ sreath ['lon']; $ domhan-leud2 = $ sreath ['y1']; $ domhanfhad2 = $ sreath ['x1']; $ city = $ sreath ['cathair']; $ state = $ sreath ['stàite']; $ dis = getnew ($ domhan-leud1, $ domhan-leud1, $ domhan-leud2, $ domhan-leud2, $ aonad = 'Mi'); // $ dis = astar ($ lat1, $ lon1, $ lat2, $ lon2); $ verified = $ sreath ['dearbhaichte']; ma tha ($ verified == '1') {mac-talla “”; mac-talla “”. $ stòr. ””; mac-talla $ dis. “Mìle (an) air falbh”; mac-talla “”; } eile {mac-talla “”. $ stòr. ””; mac-talla $ dis. “Mìle (an) air falbh”; mac-talla “”; }}}

    mo chòd functions.php
    gnìomh getnew ($ domhan-leud1, $ domhan-leud1, $ domhan-leud2, $ domhan-leud2, $ aonad = 'Mi') {$ theta = $ domhan-leud1 - $ domhan-leud2; $ astar = (sin (deg2rad ($ domhan-leud1)) * sin (deg2rad ($ domhan-leud2))) + (cos (deg2rad ($ domhan-leud1)) * cos (deg2rad ($ domhan-leud2)) * cos (deg2rad ($ theta)) ); $ distance = acos ($ astar); $ astar = rad2deg ($ astar); $ astar = $ astar * 60 * 1.1515; tionndadh ($ aonad) {cùis 'Mi': briseadh; cùis 'Km': $ astar = $ astar * 1.609344; } tilleadh (cruinn ($ astar, 2)); }

    Tapadh leibh ro làimh

  42. 61
  43. 62

    Hey Douglas, artaigil sgoinneil. Bha an mìneachadh agad mu na bun-bheachdan cruinn-eòlasach agus an còd gu math inntinneach. Is e an aon mholadh a bhiodh agam an còd a thaisbeanadh agus a chuir a-steach (mar Stackoverflow, mar eisimpleir). Tha mi a ’tuigsinn gu bheil thu airson àite a ghleidheadh, ach bhiodh farsaingeachd / indentation còd àbhaisteach ga dhèanamh gu math nas fhasa dhomhsa, mar phrògramadair, a bhith a’ leughadh agus ag eas-aontachadh. Co-dhiù, ’s e rud beag a tha sin. Cùm suas an obair mhòr.

  44. 64
  45. 65

    an seo fhad ‘s a tha sinn a’ cleachdadh le gnìomh tha sinn a ’faighinn aon seòrsa astar .. fhad’ s a tha sinn a ’cleachdadh ceist dè an seòrsa astar eile a tha ri thighinn

  46. 66
  47. 67
  48. 68
  49. 69
  50. 70

    tha e coltach nas luaithe (mysql 5.9) dà uair am foirmle a chleachdadh san taghadh agus càite:
    $ foirmle = “(((acos (sin ((“. $ domhan-leud. ”* pi () / 180)) * sin ((` Latitude` * pi () / 180)) + cos ((“. $ domhan-leud. ”* Pi () / 180)) * cos ((` Latitude` * pi () / 180)) * cos (((“. $ Domhanfhad.” - `Domhanfhad`) * pi () / 180))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) ”;
    $ sql = 'SELECT *,'. $ foirmle. ' mar astar BHO bhòrd far a bheil '.. $ foirmle.' <= '. $ astar;

  51. 71
  52. 72

    Mòran taing airson an artaigil seo a rùsgadh.it gu math cuideachail.
    Chaidh PHP a chruthachadh an toiseach mar àrd-ùrlar sgrìobhaidh sìmplidh air a bheil “Duilleag Dachaigh Pearsanta”. An-diugh tha PHP (an ùine ghoirid airson Hypertext Preprocessor) na roghainn eile de theicneòlas Microsoft Active Pages (ASP).

    Tha PHP na chànan fosgailte taobh an fhrithealaiche a tha air a chleachdadh airson duilleagan lìn fiùghantach a chruthachadh. Faodar a stèidheachadh ann an HTML. Mar as trice bidh PHP air a chleachdadh còmhla ri stòr-dàta MySQL air frithealaichean lìn Linux / UNIX. Is dòcha gur e an cànan sgrìobhaidh as mòr-chòrdte.

  53. 73

    Lorg mi gu h-àrd fuasgladh nach robh ag obair ceart.
    Feumaidh mi atharrachadh gu:

    $ qqq = “SELECT *, (((acos (sin ((“. $ domhan-leud. ”* pi () / 180)) * sin ((` latt` * pi () / 180)) + cos ((”. $ domhan-leud. “* pi () / 180)) * cos ((` latt` * pi () / 180)) * cos (((". $ domhan-leud." - `longt`) * pi () / 180) ))) * 180 / pi ()) * 60 * 1.1515) mar astar BHO `clàraich`“;

  54. 75
  55. 76

    Halò, feuch gum bi feum agam air do chuideachadh le seo.

    Chuir mi iarrtas a-steach don t-seirbheisiche lìn agam http://localhost:8000/users/findusers/53.47792/-2.23389/20/
    53.47792 = $ domhan-leud
    -2.23389 = $ domhan-leud
    agus 20 = an t-astar a tha mi airson fhaighinn air ais

    Ach a ’cleachdadh am foirmle agad, bidh e a’ faighinn air ais na sreathan uile anns an db agam

    $ toraidhean = DB :: tagh (DB :: amh (“SELECT *, (((acos (sin ((“. $ domhan-leud. ”* pi () / 180)) * sin ((lat * pi () / 180 )) + cos ((“. $ domhan-leud.” * pi () / 180)) * cos ((lat * pi () / 180)) * cos (((“. $ domhan-leud.” - lng) * pi ( ) / 180)))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) mar astar bho chomharran A ’GABHAIL astar> =“. $ Astar));

    [{“Id”: 1, ”ainm”: “Frankie Johnnie & Luigo Too”, “seòladh”: ”939 W El Camino Real, Mountain View, CA”, ”lat”: 37.386337280273, ”lng”: - 122.08582305908, “Astar”: 16079.294719663}, {“id”: 2, ”ainm”: “Pizzeria Oirthir an Ear Amici”, “seòladh”: ”790 Sràid Castro, Mountain View, CA”, “lat”: 37.387138366699, ”lng”: -122.08323669434, “astar”: 16079.175940152}, {“id”: 3, ”ainm”: “Bàr Pizza & Grill Kapp”, “seòladh”: ”191 Sràid Castro, Mountain View, CA”, “lat”: 37.393886566162, ”Lng”: - 122.07891845703, “astar”: 16078.381373826}, {“id”: 4, ”ainm”: “Pizza Round Table: Mountain View”, “seòladh”: ”570 N Shoreline Blvd, Mountain View, CA”, ”Lat”: 37.402652740479, ”lng”: - 122.07935333252, “astar”: 16077.420540582}, {“id”: 5, ”ainm”: “Pizza & Pasta Tony & Alba”, “seòladh”: ”619 Escuela Ave, Mountain Sealladh, CA ”,“ lat ”: 37.394012451172,” lng ”: - 122.09552764893,” astar ”: 16078.563225154}, {“ id ”: 6,” ainm ”:“ Pizza Fiodh-fiodha Oregano ”,“ seòladh ”:” 4546 El Camino Real, Los Altos, CA ”,“ lat ”: 37.401725769043,” lng ”: - 122.11464691162,” astar ”: 16077.937560795}, {“ id ”: 7,” ainm ”:“ Na bàraichean is na griolaichean ”,“ seòladh ”:” 24 Sràid Whiteley, Manchester ”,“ lat ”: 53.485118865967,” lng ”: - 2.1828699111938,” astar ”: 8038.7620112314}]

    Tha mi airson dìreach sreathan le 20 mìle fhaighinn air ais ach bheir e a h-uile sreathan. Feuch dè a tha mi a ’dèanamh ceàrr

Dè do bheachd?

Tha an làrach seo a 'cleachdadh Akismet gus spama a lùghdachadh. Ionnsaich mar a thathar a 'pròiseasadh an dàta bheachdan agad.