PHP iyo SQL: Xisaabi ama Weydii Masaafada Wareegga Weyn ee udhaxeysa Dhibcaha Latitude iyo Longitude Foomka Haversine

Foomka Haversine - Xisaabi Masaafada Wareegga Weyn ee leh PHP ama MySQL

Bishan waxaan waxoogaa barnaamij ah ka diyaarinayay PHP iyo MySQL marka loo eego GIS. Ku dhex foorarsiga shabaqa, runtii waxaan ku adkaaday inaan helo qaar ka mid ah Xisaabinta juqraafiyeed si aan u helo masaafada udhaxeysa laba goobood sidaa darteed waxaan rabay inaan halkaan ku wadaago.

Khariidadda Duulimaadka Yurub ee Masaafo Weyn u Weyn

Habka ugu fudud ee loo xisaabiyo masaafada udhaxeysa labada dhibcood ayaa ah iyadoo la adeegsanayo qaaciddada 'Pythagorean formula' si loo xisaabiyo 'hypotenuse of triangle' (A² + B² = C²). Tan waxaa loo yaqaan Masaafada Euclidean.

Taasi waa bilow xiiso leh laakiin kuma khusayso Juqraafiga maaddaama masaafada u dhexeysa xarriimaha loolka iyo Longitude ay yihiin masaafo isku mid ah marka laga reebo. Markaad u soo dhowaato dhulbaraha, Khadadka loolka ayaa sii kala fogaanaya. Haddii aad isticmaasho nooc ka mid ah isla'egta saddex-geesoodka ah ee fudud, waxay ku qiyaasi kartaa masaafada si sax ah hal meel oo si xunna ugu qaldan meesha kale, sababtoo ah qallooca dhulka.

Masaafo Weyn

Wadooyinka loo maro masaafada dheer ee dhulka waxaa loo yaqaan Masaafo Weyn. Taasi waa distance masaafada ugu gaaban ee udhaxeysa laba dhibic oo wareeg ah way ka duwan tahay dhibcaha khariidad fidsan. Isku dar taas xaqiiqda ah in xariijinta loolka iyo Longitude aysan isku mid ahayn… oo aad heshay xisaab adag.

Waa tan sharaxaad muuqaal fiidiyoow ah oo ku saabsan sida Wareegyada Weyn u shaqeeyaan.

Qaaciddada Haversine

Fogaanta isticmaasha qalooca Dunida waxaa lagu daray Foornada Haversine, kaas oo adeegsada trigonometry si loogu oggolaado leexashada dhulka. Markaad raadineyso masaafada udhaxeysa 2 meelood oo dhulka ah (sida diiqu u duulo), qadka toosan ayaa runtii ah qaanso.

Tani waxay khuseysaa duulimaadka hawada - weligaa ma fiirisay khariiddada dhabta ah ee duulimaadyada oo ma aragtay inay qaansooyin yihiin? Taasi waa sababta oo ah way ka gaaban tahay in lagu duulo qaanso u dhexeysa laba dhibcood marka loo eego si toos ah goobta.

PHP: Xisaabi Masaafada udhaxeysa 2 Points oo ah Ludud iyo Longitude

Sikastaba, waa tan qaaciddada PHP ee lagu xisaabinayo masaafada udhaxeysa laba dhibic (oo ay weheliso Mile iyo Kilometer beddelkeeda) oo lagu soo koobay laba meelood jajab.

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: Soo Celinta Dhamaan Diiwaanada Kala Duwan Iyadoo Lagu Xisaabinayo Masaafada Masaafada iyadoo la Isticmaalayo Latitude iyo Longitude

Waxa kale oo suurtagal ah in loo isticmaalo SQL si loo sameeyo xisaabinta si looga helo dhammaan diiwaanada masaafad gaar ah. Tusaalahan, waxaan ku weydiin doonaa MyTable-ka MySQL si aan u helo dhammaan diiwaanada ka yar ama u dhigma isbedelka $ masaafada (ee Miles) illaa meesha aan joogo ee $ latitude iyo $ Longitude:

Weydiinta dib u helida dhammaan diiwaanada si gaar ah masaafada adoo xisaabinaya masaafada u jirta labo mayl oo udhaxeysa iyo Longitude waa:

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

Waxaad u baahan doontaa inaad habeyso tan:

  • $ Longitude - kani waa beddele PHP halka aan ku dhaafayo dhererka barta.
  • $ loolka - kani waa beddele PHP halka aan ku dhaafayo dhererka barta.
  • $ fog - tani waa masaafada aad jeclaan lahayd inaad ka hesho dhammaan diiwaanada wax ka yar ama u dhigma.
  • miiska - kani waa miiska… waxaad u baahan doontaa inaad ku beddesho magacaaga miiska.
  • raxan - kani waa berrinkii loolkaaga.
  • dhaadheer - kani waa berrinka dherarkaaga.

SQL: Dib u helida Dhamaan Diiwaanada u Dhexeeya Iyadoo Lagu Xisaabinayo Masaafada Kiiloomitirrada iyadoo la adeegsanayo Latitude iyo Longitude

Waana tan SQL weydiinta iyadoo la adeegsanayo kiilomitir 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."

Waxaad u baahan doontaa inaad habeyso tan:

  • $ Longitude - kani waa beddele PHP halka aan ku dhaafayo dhererka barta.
  • $ loolka - kani waa beddele PHP halka aan ku dhaafayo dhererka barta.
  • $ fog - tani waa masaafada aad jeclaan lahayd inaad ka hesho dhammaan diiwaanada wax ka yar ama u dhigma.
  • miiska - kani waa miiska… waxaad u baahan doontaa inaad ku beddesho magacaaga miiska.
  • raxan - kani waa berrinkii loolkaaga.
  • dhaadheer - kani waa berrinka dherarkaaga.

Waxaan ku isticmaalay koodhkan meherad khariidad ganacsi oo aan u adeegsanay dukaan tafaariiq leh oo leh in kabadan 1,000 goobood oo kuyaala Waqooyiga Ameerika oo si qurux badan u shaqeeyay.

76 Comments

  1. 1

    Aad baad ugu mahadsantahay wadaagistaada. Tani waxay ahayd nuqul fudud iyo shaqo dhejis ah oo si fiican u shaqeysa. Waqti badan ayaad keydisay.
    FYI ee loogu talagalay qof kasta oo u dhoofaya C:
    double deg2rad (deg deg double) {deg deg * (3.14159265358979323846 / 180.0); }

  2. 2

    Qeyb aad u fiican oo dhajin ah - si fiican ayey u shaqeysay - Kaliya waxaan u baahanahay inaan beddelo magaca miiska haya lat-dheer. Waxay u shaqeysaa si dhakhso leh ilaa .. Waxaan haystaa tiro yar oo macquul ah oo lat-dheer ah (<400) laakiin waxaan u maleynayaa inay tani si wanaagsan u miisaami doonto. Goob fiican sidoo kale - hadda ayaan ku daray koontadayda del.icio.us oo si joogto ah ayaan u hubin doonaa.

  3. 4
  4. 5

    Waxaan maalintii oo dhan ka raadiyay xisaabinta masaafada waxaanan ka helay algorithm-ka harversine, waad ku mahadsan tahay inaad siisay tusaalaha ku saabsan sida loo dhigo bayaan sql ah. Mahadsanid iyo salaan, Daanyeel

  5. 8

    Waxaan u maleynayaa in SQL-kaaga uu u baahan yahay bayaan.
    halkii HALKII masaafada <= $ masaafada aad u baahan karto
    isticmaal HAVING fogaanta <= $ masaafada

    haddii kale waad ku mahadsan tahay inaad ii keydisay farabadan oo waqti iyo tamar ah.

  6. 10
  7. 11
  8. 12

    Aad baad ugu mahadsantahay wadaagida lambarkan. Waxay iga badbaadisay waqti badan oo horumar ah. Sidoo kale, waad ku mahadsan tahay akhristayaashaada inaad tilmaamtay in bayaan HAVING ay lagama maarmaan u tahay MySQL 5.x. Aad waxtar u leh.

  9. 14
  10. 15

    Hello,

    Su’aal kale. Ma jiraa qaacido loogu talagalay xargaha NMEA sida kan hoose?

    1342.7500, N, 10052.2287, E

    $GPRMC,032731.000,A,1342.7500,N,10052.2287,E,0.40,106.01,101106,,*0B

    Thanks,
    Harry

  11. 16

    Waxa kale oo aan ogaaday in HALKII aanu ii shaqaynayn. Waxaa loogu badalay HAVING wax walbana sifiican ayey ku shaqeeyaan. Marka hore ma aanan aqrinin faallooyinka oo dib ayaan u qoray iyada oo la adeegsanayo xulashada buulka. Labaduba si fiican ayey u shaqeyn doonaan.

  12. 17
  13. 18

    Si wax ku ool ah waxtar leh, aad baad u mahadsan tahay! Waxaan la kulmay dhibaatooyin qaar ka mid ah "HAVING" cusub, halkii aan ka dhihi lahaa "WHERE", laakiin markii aan akhriyo faallooyinka halkan (ka dib nus saac markii aan ilkahayga u ciqaabayay jahwareerka = P), waxaan u helay inay si fiican u shaqeyso. Mahadsanid ^ _ ^

  14. 19
  15. 20

    Maskaxda ku hay in bayaanka xulashada ah ee noocaas ahi uu noqon doono mid aad u xisaabis badan oo sidaas darteed gaabis ah. Haddii aad hayso waxbadan oo ka mid ah weydiimahaas, waxay si dhakhso leh wax uga qaban kartaa waxyaabaha.

    Qaab aad uxun oo aad uxun ayaa ah in laxulo xulashada ugu horeysa (ceyriin) iyadoo la adeegsanayo aag SQUARE ah oo lagu qeexay masaafad xisaabeed sida "xulo * laga bilaabo magaca tablenamee halka uu dhigayo inta udhaxeysa lat1 iyo lat2 iyo Longitude inta udhaxeysa lon1 iyo lon2". lat1 = bartilmaameedka - latdiff, lat2 = bartilmaameedka + latdiff, oo la mid ah lon. latdiff ~ = masaafada / 111 (kiiloomitir), ama masaafo / 69 mayl tan iyo 1 darajo oo buurta waa ~ 111 km (kala duwanaansho yar maadaama dhulku xoogaa yaryahay, laakiin kufilan ujeedkan). londiff = masaafada / (abs (cos (deg2rad (latitude)) * 111)) - ama 69 kiiloomitir (runti waad qaadan kartaa afargees waxyar ka weyn si aad ugula xisaabtantid kala duwanaanshaha). Ka dib qaado natiijada taas oo ku quudi xulashada radial. Kaliya ha ilaawin inaad ku xisaabtanto iskudhafyada ka baxsan xuduudaha - yacni inta udhaxeysa loolka la aqbali karo waa -180 ilaa +180 iyo baaxadda laolka la aqbali karo waa -90 ilaa + 90 - haddii ay dhacdo in latdiff-kaaga ama ciddiffadaadu ay ka baxsan tahay baaxadaas . Xusuusnow in kiisaska badankood tani aysan khusayn karin maxaa yeelay waxay kaliya saameyneysaa xisaabinta khadadka loo maro badweynta nabdoon ee laga soo bilaabo tiirka illaa tiirarka, in kasta oo ay goyso qeyb ka mid ah chukotka iyo qeyb ka mid ah alaska.

    Waxa aan ku guuleysanay tan waa hoos u dhac weyn oo ku yimid tirada dhibcaha aad ka dhigeyso xisaabtan. Haddii aad haysato hal milyan oo dhibicood oo caalami ah oo ku jira xogta loo qaybiyey qiyaas ahaan si siman oo aad rabto inaad ka dhex raadiso 100 km, markaa raadintaada ugu horreysa (dhakhso leh) waa aag 10000 sq km ah waxayna u badan tahay inay ka dhasho natiijooyin 20 (oo ku saleysan xitaa qaybinta bedka dusha sare ee qiyaastii 500M sq km), oo macnaheedu yahay inaad socodsiiso xisaabinta masaafada qalafsan 20 jeer ee weydiintan halkii milyan jeer.

    • 21
      • 22

        Talo cajiib ah! Runtii waan la shaqeeyay horumariye kaas oo qoray hawl jiiday barxadda gudaha ka dibna hawl dib u soo celin ah oo ka dhigtay 'laba jibbaarane' hareeraha hareeraha si loogu daro oo looga saaro dhibcaha haray. Natiijadu waxay ahayd natiijo layaableh oo deg deg ah - wuxuu qiimeyn lahaa malaayiin dhibco oo ku jira microseconds

        Habka aan kor ku xusan hubaal waa 'cayriin' laakiin karti leh. Mar labaad mahadsanid!

        • 23

          Doug,

          Waxaan isku dayay inaan isticmaalo mysql iyo php si aan u qiimeeyo in barta dheer ee dheer ay ku dhex jirto geesoolayaasha. Ma ogtahay haddii saaxiibkaa horumariyaha ahi uu daabacay wax tusaalooyin ah oo ku saabsan sida loo dhammaystiro hawshan. Mase taqaanaa tusaalooyin fiican. Waad ku mahadsantahay horay.

  16. 24

    Dhamaantiin waad salaaman tihiin tani waa tijaabadayda SQL-ka:

    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

    iyo Mysql wuxuu ii sheegayaa masaafadaas, oo aysan u jirin tiir ahaan, waxaan u adeegsan karaa amar ahaan, waan sameyn karaa la'aanteed HALKAN, wuuna shaqeeyaa, laakiin lama socdo…

  17. 26

    Tani way fiican tahay, hase yeeshe waa sida shimbiraha u duulaan. Way fiicnaan laheyd inaad isku daydo oo aad ku darto khariidadaha google-ka API si uun sidan ah (waxaa laga yaabaa inaad isticmaasho waddooyinka iwm.) Weli wali ma aanan sameynin shaashad isku-dhafan oo loo yaqaan 'PHP' taas oo awoodi doonta inay bixiso xal wax ku ool ah oo ku saabsan dhibaatada iibiyaha safarka ah. Laakiin waxaan u maleynayaa inaan awoodi karo inaan dib u isticmaalo qaar ka mid ah koodhkaaga si aan sidaas u yeelo.

  18. 27

    Nabad Douglas,
    Aad baad ugu mahadsantahay maqaalkan - waxaad igu badbaadisay waqti badan.
    is ogow,
    nimrod @Israa'iil

  19. 28

    Maqaal wanaagsan! Waxaan helay maqaallo badan oo sharraxaya sida loo xisaabiyo masaafada u dhexeysa laba dhibic laakiin runtii waxaan raadinayay gabalka SQL.

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

    2 maalmood oo cilmi baaris ah si aan ugu dambeyntii u helo boggan xaliya dhibaatadayda. Waxay umuuqataa inaan sifiican ugafiicaayo WolframAlpha oo aan iskaga cadaynayo xisaabta. Isbeddelka WHERE ilaa HAVING wuxuu leeyahay qoraalkeyga oo shaqeynaya. MAHADSANID

  25. 37
    • 38

      Mahadsanid Georgi. Waxaan sii waday helitaanka safka 'masaafada' lama helin. Mar alla markii aan u beddelo HALKA aan ku yeelanayo waxay u shaqaysay sidii soo jiidasho!

  26. 39

    Waxaan jeclaan lahaa in kani yahay boggii ugu horreeyay ee aan ka helo tan. Ka dib markii aan isku dayay amarro badan oo kala duwan tani waxay ahayd tan kaliya ee sida saxda ah u shaqeysa, iyo isbadalada ugu yar ee loo baahan yahay si loo waafajiyo keydkeyga.
    Thanks badan!

  27. 40

    Waxaan jeclaan lahaa in kani yahay boggii ugu horreeyay ee aan ka helo tan. Ka dib markii aan isku dayay amarro badan oo kala duwan tani waxay ahayd tan kaliya ee sida saxda ah u shaqeysa, iyo isbadalada ugu yar ee loo baahan yahay si loo waafajiyo keydkeyga.
    Thanks badan!

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

    Waan ogahay qaaciddadan inay shaqeyso, laakiin ma arki karo halka gacan ka hadalka dhulka lagu xisaabtamayo. Qofna ma ii iftiimin karaa, fadlan?

  34. 49
  35. 50
  36. 52

    Waad ku mahadsan tahay Douglas, Su'aasha SQL waa sida saxda ah ee aan u baahnahay, waxaana moodayay inaan ku qoro naftayda. Waxaad iga badbaadisay suuro galnimada saacadaha qalooca barashada loolka!

  37. 53

    Waan sii helaa khaladka: Khaanadda aan la garanayn ee 'Fogaanta' gudaha 'halka ay jumladda' ka dhigan tahay Su'aasha MySQL.

  38. 55
  39. 56
  40. 58

    waad ku mahadsan tahay dhajinta maqaalkan waxtar leh,  
    laakiin sababo jira awgood waxaan jeclaan lahaa inaan weydiiyo
    sida loo helo masaafada udhaxeysa iskuxirka gudaha mysql db iyo iskudhafyada la galiyay php adeegsadaha?
    si faahfaahsan u sharax:
    1.user waa inuu geliyaa [id] xulashada xogta cayiman ee db iyo isku xirka isticmaalaha laftiisa
    2. feylka php wuxuu helaa xogta bartilmaameedka (coords) adoo adeegsanaya [id] ka dibna xisaabiya masaafada udhaxeysa isticmaalaha iyo barta bartilmaameedka

    ama si fudud uun buu uga fogaan karaa lambarka hoose?

    $ qry = “Xulo *, ((acos (sin ((.. $ latitude.” * pi () / 180)) * sin ((`` Latitude` * pi () / 180)) + cos ((“. $ loolka. ”* pi () / 180)) * cos ((` `Latitude` * pi () / 180)) * cos (((". $ Longitude. "-` `Longitude`) * pi () / 180) ))) * * 180 / pi ()) * 60 * 1.1515 * 1.609344) sida masaafada uga socota 'MyTable` WHERE fogaanta> = ". $ Masaafada." >>>> Miyaan “ka bixin karaa” masaafada halkan ka socota?
    mar labaad mahadsanid,
    Timmy S

    • 59

      ha u maleynin, waxaan gartay sida “shaqadu” ugu shaqeyso php
      $ dis = getDistanceBetweenPointsNew ($ userLati, $ userLongi, $ lati, $ longi, $ unit = 'Km')
      aad baad u mahadsantahay !! 

  41. 60

    ok, wax kasta oo aan isku dayay ma shaqeynayaan. Waxaan ula jeedaa, waxa aan hayaa waa ay shaqeeyaan, laakiin masaafada waa ka fog yihiin.

    Ma jiraa qof macquul ah inuu arko waxa ka khaldan xeerkaan?

    haddii (isset ($ _ POST ['gudbiyey'])) {$ z = $ _POST ['zipcode']; $ r = $ _POST ['gacan']; ku celcelinta "Natiijooyinka". $ z; $ sql = mysql_query (“XUL XADDIIX m.zipcode, m.MktName, m.LocAddSt, m.LocAddCity, m.LocAddState, m.x1, m.y1, m.verified, z1.lat, z2.lon, z1. magaalada, z1.state FROM mrk m, zip z1, zip z2 WHERE m.zipcode = z1.zipcode IYO 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 ") ama dhinta (mysql_error ()); halka ($ row = mysql_fetch_array ($ sql)) {$ store1 = $ row ['MktName']. ""; $ dukaan = $ saf ['LocAddSt']. ””; $ dukaanka. = $ saf ['LocAddCity']. ",". $ saf ['LocAddState']. ” $. Safka ['zipcode']; $ latitude1 = $ saf ['lat']; $ longitude1 = $ saf ['lon']; $ latitude2 = $ saf ['y1']; $ Longitude2 = $ saf ['x1']; $ magaalo = $ saf ['magaalo']; $ gobol = $ saf ['gobol']; $ dis = getnew ($ latitude1, $ Longitude1, $ latitude2, $ Longitude2, $ unit = 'Mi'); // $ dis = fogaanta ($ lat1, $ lon1, $ lat2, $ lon2); $ la xaqiijiyay = $ saf ['la xaqiijiyay']; haddii ($ la xaqiijiyey == '1') {echo “”; echo "". $ dukaanka. ""; echo $ dis. ”Mayl (yada) fog”; dhawaaqa ""; } kale {echo "". $ dukaanka. ""; echo $ dis. ”Mayl (yada) fog”; dhawaaqa ""; }}}

    shaqadeyda.php code
    function getnew ($ latitude1, $ Longitude1, $ latitude2, $ Longitude2, $ unit = 'Mi') {$ theta = $ Longitude1 - $ Longitude2; $ distance = (sin (deg2rad ($ latitude1)) * sin (deg2rad ($ latitude2))) + (cos (deg2rad ($ latitude1)) * cos (deg2rad ($ latitude2)) * cos (deg2rad ($ theta)) ); $ fogaanta = acos ($ fogaanta); $ fogaanta = rad2deg ($ masaafo); $ fogaanta = $ fogaanta * 60 * 1.1515; biiro ($ unit) {kiiska 'Mi': jab; kiiska 'Km': $ masaafo = $ masaafo * 1.609344; } soo noqosho (wareeg ($ masaafada, 2)); }

    Waad ku mahadsantahay horay

  42. 61
  43. 62

    Hey Douglas, maqaal weyn. Waxaan ka helay sharraxaaddaada fikradaha juqraafi iyo koodhku runtii xiiso badan. Soo jeedintayda kaliya ayaa noqon doonta in la banneeyo oo la galiyo nambarka muujinta (sida Stackoverflow, tusaale ahaan). Waan fahamsanahay inaad rabto inaad keydiso booska, laakiin kala-goynta koodhadhka caadiga / indentation-ka ayaa wax badan iga fududayn doona, ka barnaamij-yaqaan ahaan, inaan wax akhriyo oo kala-baxo. Anyhow, taasi waa wax yar. Sii wad shaqada weyn.

  44. 64
  45. 65

    halkan inta aan la adeegsaneyno waxaan heleynaa hal nooc oo masaafo ah .. iyadoo la adeegsanayo weydiinta nuuca kale ee fog ee soo socda

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

    waxay umuuqataa mid dhakhso badan (mysql 5.9) in la isticmaalo laba jeer qaaciidada xulashada iyo meesha:
    $ formula = "(((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) ”;
    $ sql = 'Xulo *,'. $ qaaciidada. ' sida fogaanta miiska HALKAN '.. $ formula.' <= '. $ masaafada;

  51. 71
  52. 72

    Aad baad ugu mahadsantahay xiirista maqaalkan. Waa mid waxtar badan.
    PHP markii hore waxaa loo abuuray madal qoraal oo fudud oo loo yaqaan "Shakhsi Hoyga Guriga". Maalmahan PHP (oo loo soo gaabiyay Hypertext Preprocessor) waa beddel ka mid ah teknolojiyadda Microsoft ee Firfircoon ee Adeegyada (ASP).

    PHP waa luuqad furan oo adeeg furan ah oo loo adeegsado abuurista bogag firfircoon. Waxaa lagu dhejin karaa HTML. PHP waxaa badanaa loo isticmaalaa iyadoo lala kaashanayo keydka MySQL ee Linux / UNIX serverka. Waxay u badan tahay inuu yahay luqadda qoraalka ugu caansan.

  53. 73

    Waxaan kahelay xalka kor ku xusan inaan sifiican ushaqeyn.
    Waxaan u baahanahay inaan u beddelo:

    $ qqq = "Xulo *, ((acos (sin ((". $ latitude. * * pi () / 180)) * sin ((`` latt` * pi () / 180)) + cos ((".) $ loolka. “* pi () / 180)) * cos ((` `latt` * pi () / 180)) * cos (((". $ Longitude. "-` `longt`) * pi () / 180) ))) * * 180 / pi ()) * 60 * 1.1515) Masaafada laga bilaabo 'diiwaanka' ';

  54. 75
  55. 76

    Waad salaaman tahay, fadlan runtii waxaan u baahanahay caawimaadda tan.

    Waxaan codsi ka helay shabakadeyda internetka http://localhost:8000/users/findusers/53.47792/-2.23389/20/
    53.47792 = $ loolka
    -2.23389 = $ Longitude
    iyo 20 = masaafada aan rabo inaan kusoo qaato

    Si kastaba ha noqotee adiga oo isticmaalaya foormulada, waxay soo ceshanaysaa dhammaan safafka dbkayga

    $ natiijooyinka = DB :: xulo (DB :: ceeriin ("XUL, * ((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) sida masaafada uga timaadda calaamadaha HAWLAHA masaafada> = ". $ Masaafada));

    [{"Id": 1, "name": "Frankie Johnnie & Luigo Too", "address": "939 W El Camino Real, Mountain View, CA", "lat": 37.386337280273, "lng": - 122.08582305908, ”Fogaanta”: 16079.294719663}, {“id”: 2, ”name”: ”Amici’s East Coast Pizzeria”, ”address”: ”790 Castro St, Mountain View, CA”, ”lat”: 37.387138366699, ”lng”: -122.08323669434, ”fogaanta”: 16079.175940152}, {“id”: 3, ”name”: ”Kapp’s Pizza Bar & Grill”, ”address”: ”191 Castro St, Mountain View, CA”, ”lat”: 37.393886566162, ”Lng”: - 122.07891845703, ”distance”: 16078.381373826}, {“id”: 4, ”name”: ”Round Table Pizza: Mountain View”, ”address”: ”570 N Shoreline Blvd, Mountain View, CA”, ”Lat”: 37.402652740479, ”lng”: - 122.07935333252, ”distance”: 16077.420540582}, {“id”: 5, ”name”: ”Tony & Alba’s Pizza & Pasta”, ”address”: ”619 Escuela Ave, Mountain View, CA ”,” lat ”: 37.394012451172,” lng ”: - 122.09552764893,” distance ”: 16078.563225154}, {“ id ”: 6,” name ”:” Oregano’s Wood-Fired Pizza ”,” address ”:” 4546 El Camino Real, Los Altos, CA ”,” lat ”: 37.401725769043,” lng ”: - 122.11464691162,” distance ”: 16077.937560795}, {“ id ”: 7,” name ”:” The bars and grill ”,” address ”:” 24 Whiteley Street, Manchester ”,” lat ”: 53.485118865967,” lng ”: - 2.1828699111938,” distance ”: 8038.7620112314}]

    Waxaan rabaa inaan la soo baxo kaliya safaf 20 mayl ah laakiin waxay keenaysaa safaf dhan. Fadlan maxaan khalad sameynayaa

Maxay idinla tahay?

Boggani wuxuu isticmaalaa Akismet si loo yareeyo spam. Baro sida xogtaada faallooyinkaaga looga shaqeeyo.