PHP ug SQL: Pagkalkula o Pagpangutana Dako nga Circle Distansya taliwala sa Mga Punto sa Latitude ug Longitude Uban sa Haversine Formula

Haversine Formula - Pagkalkula sa Dako nga Circle Distance nga adunay PHP o MySQL

Karon nga bulan nagprograma ako gamay sa PHP ug MySQL kalabot sa GIS. Nagtuyok libot sa net, sa tinuud naglisud ako sa pagpangita sa pipila Kalkulasyon sa heyograpiya aron makit-an ang distansya taliwala sa duha nga lokasyon mao nga gusto nako kini ipaambit dinhi.

Mapa sa Paglupad ang Europe Nga Adunay Dako nga Distansya sa Circle

Ang yano nga paagi sa pagkalkula sa usa ka gilay-on sa taliwala sa duha ka mga punto mao ang paggamit sa pormula nga Pythagorean aron makalkulo ang hypotenuse sa usa ka triangle (A² + B² = C²). Kini nailhan nga Gilay-on sa Euclidean.

Kini usa ka makapaikag nga pagsugod apan dili kini magamit sa Geography tungod kay ang distansya tali sa mga linya sa latitude ug longitude dili parehas nga distansya bulag. Samtang nagkaduol ka sa equator, ang mga linya sa latitude magkalayo. Kung naggamit ka usa ka klase nga yano nga equation sa triangulation, mahimo kini sukod sa tukma nga distansya sa usa ka lugar ug grabe nga sayup sa usa pa, tungod sa kurbada sa Yuta.

Maayo nga Distansya sa Circle

Ang mga ruta nga gibiyahe sa layo nga kalayo sa palibot sa Yuta naila nga Maayo nga Distansya sa Circle. Kana… ang labing mubo nga gilay-on sa taliwala sa duha ka punto sa usa ka sulud lainlain kaysa mga punto sa usa ka patag nga mapa. Paghiusa kana sa katinuud nga ang mga linya sa latitude ug longitude dili equidistant… ug adunay ka lisud nga pagkwenta.

Ania ang us aka maayo nga pagpatin-aw sa video kung giunsa ang pagtrabaho sa Great Circles.

Ang Haversine Formula

Ang gilay-on nga gigamit ang kurbada sa Yuta gilakip sa Pormula sa haversine, nga naggamit trigonometry aron pagtugot sa kurbada sa yuta. Kung nakit-an nimo ang distansya taliwala sa 2 nga mga lugar sa yuta (sama sa paglupad sa uwak), usa ka tul-id nga linya ang usa ka arko.

Kini magamit sa paglupad sa hangin - nakita ba nimo ang tinuod nga mapa sa mga paglupad ug namatikdan nga sila adunay arko? Tungod kana kay labi ka mubu ang paglupad sa arko taliwala sa duha ka puntos kaysa direkta sa lokasyon.

PHP: Kwentaha ang distansya Tali sa 2 Mga Punto sa Latitude ug Longhitud

Bisan unsaon, dinhi ang pormula nga PHP alang sa pagkalkula sa gilay-on sa taliwala sa duha ka puntos (kauban ang Mile vs. Kilometer nga pagkakabig) nga bilugan sa duha nga decimal nga lugar.

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: Pagkuha sa Tanan nga Mga Rekord Sulod sa Usa ka Saklaw Pinaagi sa Pagkalkula sa Distansya Sa Mga Milya Gamit ang Latitude ug Longhitud

Posible usab nga gamiton ang SQL aron makahimo pagkalkula aron makapangita ang tanan nga mga rekord sa sulud sa usa ka piho nga distansya. Niini nga pananglitan, pangutan-on nako ang MyTable sa MySQL aron makit-an ang tanan nga mga talaan nga dili kaayo o katumbas sa variable nga $ distansya (sa Miles) sa akong lokasyon sa $ latitude ug $ longitude:

Ang pangutana alang sa pagkuha sa tanan nga mga rekord sa sulud sa usa ka piho nga gilay-on pinaagi sa pagkalkula sa gilay-on sa mga milya sa taliwala sa duha ka punto sa latitude ug longitude mao ang:

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

Kinahanglan nimo nga ipasibo kini:

  • $ longitude - kini usa ka variable sa PHP diin gipasa nako ang longitude sa punto.
  • $ latitude - kini usa ka variable sa PHP diin gipasa nako ang longitude sa punto.
  • $ distansya - kini ang distansya nga gusto nimo nga makit-an ang tanan nga mga rekord nga dili kaayo o parehas.
  • lamesa - Kini ang lamesa… gusto nimo ilisan kana sa imong ngalan sa lamesa.
  • latitude - kini ang natad sa imong latitude.
  • gitas-on - kini ang natad sa imong longitude.

SQL: Pagkuha sa Tanan nga Mga Rekord Sulod sa Usa ka Saklaw Pinaagi sa Pagkalkula sa Distansya sa mga Kilometro nga Naggamit Latitude ug Longhitud

Ug ania ang pangutana sa SQL nga gigamit ang mga kilometro sa 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."

Kinahanglan nimo nga ipasibo kini:

  • $ longitude - kini usa ka variable sa PHP diin gipasa nako ang longitude sa punto.
  • $ latitude - kini usa ka variable sa PHP diin gipasa nako ang longitude sa punto.
  • $ distansya - kini ang distansya nga gusto nimo nga makit-an ang tanan nga mga rekord nga dili kaayo o parehas.
  • lamesa - Kini ang lamesa… gusto nimo ilisan kana sa imong ngalan sa lamesa.
  • latitude - kini ang natad sa imong latitude.
  • gitas-on - kini ang natad sa imong longitude.

Gigamit nako kini nga code sa usa ka platform sa pagmapa sa negosyo nga gigamit namon alang sa usa ka tingpamaligya nga adunay kapin sa 1,000 nga mga lokasyon sa tibuuk North America ug kini nagtrabaho nga matahum.

76 Comments

  1. 1

    Daghang salamat sa pagpaambit. Kini usa ka dali kopya ug i-paste ang trabaho ug maayo ang pagbuhat. Giluwas mo ako sa daghang oras.
    FYI alang sa bisan kinsa nga moadto sa C:
    doble nga deg2rad (doble nga deg) {return deg * (3.14159265358979323846 / 180.0); }

  2. 2

    Nindot kaayo nga piraso sa pag-post - nagtrabaho nga nindot kaayo - Kinahanglan ra nako nga baylohan ang ngalan sa lamesa nga adunay taas nga lat-long. Kini nagtrabaho nga dali kaayo sa .. Adunay ako usa ka makatarunganon nga gamay nga mga lat-long (<400) apan sa akong hunahuna maayo kini nga sukdanan. Nindot usab nga site - naidugang ra nako kini sa akong account sa del.icio.us ug kanunay nga mobalik kini pagbalik.

  3. 4
  4. 5

    Gipangita nako ang bug-os nga adlaw alang sa mga pagkalkula sa distansya ug nakit-an ang harversine algorithm, salamat sa paghatag sa panig-ingnan kung giunsa kini gibutang sa usa ka pahayag nga sql. Salamat ug pangumusta, Daniel

  5. 8

    Sa akong hunahuna ang imong SQL nagkinahanglan us aka pahayag.
    imbis nga ASA ang distansya <= $ distansya nga mahimo nimo kinahanglan
    gamita ang Adunay gilay-on <= $ distansya

    kung dili salamat sa pagluwas kanako sa usa ka hugpong sa oras ug kusog.

  6. 10
  7. 11
  8. 12

    Daghang salamat sa pagpaambit sa kini nga code. Nakatipig kini kanako daghang oras sa pag-uswag. Ingon usab, salamat sa imong mga magbasa alang sa pagtudlo nga ang usa ka adunay pahayag nga kinahanglanon alang sa MySQL 5.x. Makatabang kaayo.

  9. 14
  10. 15

    Hello,

    Laing pangutana. Adunay ba usa ka pormula alang sa mga lubid nga NMEA sama sa usa sa ubus?

    1342.7500, N, 10052.2287, E

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

    Salamat,
    Harry

  11. 16

    Nahibal-an ko usab nga KUNG DIIN nagtrabaho alang kanako. Gibag-o kini sa PAGKA HIMING ug ang tanan hingpit nga molihok. Sa una wala nako gibasa ang mga komentaryo ug gisulat kini pag-usab gamit ang usa ka gipili nga salag. Ang duha molihok ra nga maayo.

  12. 17

    Daghang salamat sa m script alang sa script nga gisulat sa MySQL, kinahanglan ra nga mohimo pila ka gagmay nga mga pag-adjust (NAHIMO) 🙂
    Gret trabaho

  13. 18

    Talagsaon nga makatabang, daghang salamat! Adunay ako mga problema sa bag-ong "MAY KINAHANGLAN", kaysa "ASA", apan sa higayon nga mabasa nako ang mga komentaryo dinhi (pagkahuman sa tunga sa oras nga paggaling sa akong ngipon sa kasagmuyo = P), gihimo nako kini nga maayo nga pagtrabaho Salamat ^ _ ^

  14. 19
  15. 20

    Hinumdomi nga ang usa ka pili nga pamahayag nga ingon niana mahimo’g daghang pagkwenta ug busa hinay. Kung adunay ka daghang mga pangutana, mahimo kini nga dali nga madaut ang mga butang.

    Ang usa ka labi ka dili kaayo kusog nga pamaagi mao ang pagpadagan una (pili) nga pagpili gamit ang usa ka lugar nga SQUARE nga gihubit sa usa ka gikalkulo nga distansya ie "pagpili * gikan sa tablename diin ang latitude taliwala sa lat1 ug lat2 ug longitude taliwala sa lon1 ug lon2". lat1 = targetlatitude - latdiff, lat2 = targetlatitude + latdiff, parehas sa lon. latdiff ~ = distansya / 111 (alang sa km), o distansya / 69 alang sa mga milya sukad ang 1 degree sa latitude mao ang ~ 111 km (gamay nga pagkalainlain tungod kay ang yuta medyo lingin, apan igo alang sa kini nga katuyoan). londiff = distansya / (abs (cos (deg2rad (latitude)) * 111)) - o 69 alang sa mga milya (mahimo ka nga magkuha gamay gamay nga kwadro aron maisip ang mga kalainan). Pagkahuman kuhaa ang sangputanan niana ug pakan-a kini sa radial select. Ayaw kalimti ang pag-asoy sa mga koordinasyon nga wala’y utlanan - ie ang sukod sa dalawaton nga longitude mao ang -180 hangtod +180 ug ang gilapdon nga gidawat nga latitude mao ang -90 hangtod +90 - kung ang imong latdiff o londiff modagan gawas sa kini nga sakup . Hinumdomi nga sa kadaghanan nga mga kaso mahimo kini dili magamit tungod kay nakaapekto lang kini sa mga kalkulasyon sa usa ka linya latas sa kadagatan sa pasipiko gikan sa us aka poste ngadto sa poste, bisan kung ningtabok kini nga bahin sa chukotka ug bahin sa alaska.

    Ang among nahimo pinaagi niini usa ka hinungdan nga pagkunhod sa gidaghanon sa mga puntos nga kontra niini gihimo nimo kini nga pagkalkulo. Kung adunay ka milyon nga global point sa database nga gibahinbahin nga parehas ug gusto nimo nga pangitaon sa sulud sa 100 km, kung ingon niana ang imong una (dali) nga pagpangita usa ka lugar nga 10000 sq km ug tingali magbunga mga 20 nga mga sangputanan (pinauyon sa parehas nga pag-apud-apod sa sa ibabaw nga bahin sa mga 500M sq km), nga nagpasabut nga imong gipadagan ang komplikado nga pagkalkula sa gilay-on nga 20 ka beses alang sa kini nga pangutana imbis nga usa ka milyon ka beses.

    • 21

      Minor nga sayup sa pananglitan… kana alang sa sulud sa 50 km (dili 100) tungod kay gitan-aw namon ang "radius" sa among… square.

      • 22

        Talagsaon nga tambag! Sa tinuud nagtrabaho ako kauban ang usa ka developer nga nagsulat usa ka kalihokan nga nagbira sa sulud nga kwadro ug pagkahuman usa ka recursive function nga naghimo'g mga square 'libot sa perimeter aron iupod ug dili iapil ang nahabilin nga mga puntos. Ang resulta usa ka katingad-an nga dali nga sangputanan - mahimo niya nga masusi ang milyon-milyon nga mga puntos sa mga microsecond.

        Ang akong pamaagi sa taas siguradong 'krudo' apan may katakus. Salamat usab!

        • 23

          Doug,

          Gisulayan nako nga gamiton ang MySQL ug php aron masusi kung ang usa ka lat long point naa ba sa sulod sa usa ka polygon. Nahibal-an ba nimo kung ang imong higala nga developer nagpatik bisan unsang mga pananglitan kung giunsa kini matuman. O may nahibal-an ka bang maayong mga pananglitan. Salamat daan.

  16. 24

    Kumusta ang tanan kini ang akong pagsulay nga pahayag sa SQL:

    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

    ug gisultihan ako ni Mysql nga ang gilay-on, wala maglungtad ingon usa ka kolum, magamit nako ang paghan-ay pinaagi, mahimo ko kini nga wala KANSA, ug kini molihok, apan dili kauban niini…

  17. 26

    Kini maayo kaayo, bisan pa man kini sama ra sa paglupad sa mga langgam. Maayo kaayo nga sulayan ug iupod ang google maps API sa kini nga paagi (tingali gamit ang mga dalan ug uban pa) Aron lang mahatagan usa ka ideya ang paggamit sa lainlaing porma sa transportasyon. Wala pa ako makahimo usa ka simulate nga annealing function sa PHP nga makahatag usa ka episyente nga solusyon sa problema sa nagbiyahe nga salesman. Apan gihunahuna ko nga mahimo nako magamit pag-usab ang pipila sa imong code aron mahimo kini.

  18. 27
  19. 28

    Maayong artikulo! Nakit-an nako ang daghang mga artikulo nga naglarawan kung giunsa ang pagkalkula sa gilay-on sa taliwala sa duha ka punto apan gipangita gyud nako ang SQL snippet.

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

    2 ka adlaw nga panukiduki aron sa katapusan makapangita kini nga panid nga makasulbad sa akong problema. Ingon sa labi ka maayo nga gibuhian nako ang akong WolframAlpha ug gipadayon ang akong matematika. Ang pagbag-o gikan sa ASA ngadto sa PAGHIMO adunay akong iskrip sa paghan-ay sa kahusay. SALAMAT

  25. 37
    • 38

      Salamat Georgi. Gipadayon nako nga wala makit-an ang halayo nga 'distansya'. Sa higayon nga gibag-o ko ang ASA SA PAGKAABI nga nagtrabaho kini sama sa usa ka kaanyag!

  26. 39

    Gusto nako nga kini ang una nga panid nga akong nakit-an dinhi. Pagkahuman sa pagsulay sa daghang lainlaing mga mando kini ra ang usa nga magamit nga maayo, ug adunay gamay nga mga pagbag-o nga gikinahanglan aron mohaum sa akong kaugalingon nga database.
    Salamat kaayo!

  27. 40

    Gusto nako nga kini ang una nga panid nga akong nakit-an dinhi. Pagkahuman sa pagsulay sa daghang lainlaing mga mando kini ra ang usa nga magamit nga maayo, ug adunay gamay nga mga pagbag-o nga gikinahanglan aron mohaum sa akong kaugalingon nga database.
    Salamat kaayo!

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

    Nahibal-an nako nga kini nga pormula magamit, apan dili ko makita kung diin gikonsidera ang radius sa kalibutan. Mahimo ba nga adunay naglamdag kanako, palihug?

  34. 49
  35. 50

    Maayo nga butang Douglas. Nakasulay ka ba nga makuha ang intersection point nga gihatag sa Long / Lat / Bearing nga duha ka puntos?

  36. 52

    Salamat Douglas, ang SQL Query mao gyud ang akong kinahanglan, ug gihunahuna nako nga isulat ko kini sa akong kaugalingon. Giluwas mo ako gikan sa posible nga mga oras nga kurba sa pagkat-on sa longitude sa latitude!

  37. 53
  38. 55
  39. 56
  40. 58

    salamat sa pag-post niining makatabang nga artikulo,  
    apan sa pila ka hinungdan gusto ko nga mangutana
    giunsa makuha ang gilay-on sa taliwala sa mga coord sa sulud sa MySQL db ug mga coord nga gisal-ut sa php sa ninggamit?
    alang sa labi ka tin-aw nga paghulagway:
    Ang 1.user kinahanglan nga isal-ot [id] alang sa pagpili sa gitino nga datos gikan sa db ug mga coord mismo sa gumagamit
    2.ang php file makuha ang target data (coords) gamit ang [id] ug dayon makalkulo ang distansya tali sa gumagamit ug target point

    o mahimo ra nga makuha ang gilay-on gikan sa code sa ubus?

    $ qry = “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) ingon distansya GIKAN SA `MyTable` ASAN nga distansya> =". $ Distansya. " >>>> Mahimo ba nako nga "kuha" ang distansya gikan dinhi?
    salamat usab,
    Timmy S

    • 59

      Dili igsapayan, nahibal-an ko kung giunsa ang "pag-andar" molihok sa php
      $ dis = getDistanceBetantaraPointsNew ($ userLati, $ userLongi, $ lati, $ longi, $ unit = 'Km')
      salamat kaayo!! 

  41. 60

    ok, tanan nga akong gisulayan dili molihok. Buut nako ipasabut, kung unsa ang adunay ako mga buhat, apan ang mga distansya layo.

    Mahimo ba nga adunay bisan kinsa nga nakakita kung unsa ang sayup sa kini nga code?

    kung (pag-isyu ($ _ POST ['gisumite'])) {$ z = $ _POST ['zipcode']; $ r = $ _POST ['radius']; echo nga "Mga resulta alang sa". $ 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. city, z1.state GIKAN sa mrk m, zip z1, zip z2 ASA m.zipcode = z1.zipcode UG z2.zipcode = $ z KAG (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 ") o mamatay (mysql_error ()); samtang ($ row = mysql_fetch_array ($ sql)) {$ store1 = $ row ['MktName']. ""; $ store = $ row ['LocAddSt']. ””; $ store. = $ row ['LocAddCity']. ”,“. $ row ['LocAddState']. ” “. $ Row ['zipcode']; $ latitude1 = $ row ['lat']; $ longitude1 = $ laray ['lon']; $ latitude2 = $ row ['y1']; $ longitude2 = $ row ['x1']; $ city = $ row ['city']; $ state = $ row ['estado']; $ dis = getnew ($ latitude1, $ longitude1, $ latitude2, $ longitude2, $ unit = 'Mi'); // $ dis = distansya ($ lat1, $ lon1, $ lat2, $ lon2); $ verified = $ row ['verified']; kung ($ napamatud-an == '1') {echo “”; echo "". $ tindahan. ""; echo $ dis. ”(Mga) milya ang gilay-on”; lanog ""; } uban pa {echo “”. $ tindahan. ””; echo $ dis. ”(Mga) milya ang gilay-on”; lanog ""; }}}

    akong mga function.php code
    function getnew ($ latitude1, $ longitude1, $ latitude2, $ longitude2, $ unit = 'Mi') {$ theta = $ longitude1 - $ longitude2; $ distansya = (sin (deg2rad ($ latitude1)) * sin (deg2rad ($ latitude2))) + (cos (deg2rad ($ latitude1)) * cos (deg2rad ($ latitude2)) * cos (deg2rad ($ theta)) ); $ distansya = acos ($ distansya); $ distansya = rad2deg ($ distansya); $ distansya = $ distansya * 60 * 1.1515; switch ($ unit) {case 'Mi': pagguba; kaso 'Km': $ distansya = $ distansya * 1.609344; } pagbalik (lingin ($ distansya, 2)); }

    Salamat daan

  42. 61
  43. 62

    Hoy Douglas, maayong artikulo. Nakit-an nako ang imong pagpatin-aw sa mga konsepto sa heyograpiya ug ang code nga tinuod nga makapaikag. Ang akong gisugyot lang mao ang wanang sa lugar ug iindentro ang code alang sa pagpakita (sama pananglit sa Stackoverflow). Nakasabut ako nga gusto nimo tipiganan ang wanang, apan ang naandan nga pag-spaced code / indentation makahimo niini nga labi ka kadali alang kanako, ingon usa ka programmer, sa pagbasa ug pagbungkag. Bisan unsaon, gamay kana nga butang. Ipadayon ang maayong buluhaton.

  44. 64
  45. 65

    Dinhi samtang gigamit uban ang pag-andar nakakuha kami usa ka klase nga distansya..samtang gigamit ang pangutana nga moabut sa uban pang lahi nga distansya

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

    murag mas tulin (MySQL 5.9) nga gamiton kaduha ang pormula sa pili ug asa:
    $ pormula = “(((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 = 'SELECT *,'. $ pormula. ' ingon gilay-on GIKAN sa lamesa ASA '.. $ pormula.' <= '. $ distansya;

  51. 71
  52. 72

    Daghang salamat sa paggunting niini nga artikulo. Makatabang kaayo kini.
    Ang PHP gihimo sa una ingon usa ka yano nga plataporma sa pag-script nga gitawag nga "Personal nga Home Page". Karon ang PHP (ang mubu alang sa Hypertext Preprocessor) us aka alternatibo sa teknolohiya sa Microsoft's Active Server Pages (ASP).

    Ang PHP usa ka bukas nga gigikanan nga sinultian nga bahin sa server nga gigamit alang sa pagmugna og dinamikong mga panid sa web. Mahimo kini isulud sa HTML. Kasagaran gigamit ang PHP dungan sa usa ka MySQL database sa mga web server sa Linux / UNIX. Tingali kini ang labing popular nga sinultian sa pag-script.

  53. 73

    Nakit-an nako ang solusyon sa taas nga dili molihok og maayo.
    Kinahanglan kong magbag-o sa:

    $ qqq = “SELECT *, (((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) ingon gilay-on GIKAN sa `rehistro`“;

  54. 75
  55. 76

    Kumusta, palihug kinahanglan gyud nako ang imong tabang bahin niini.

    Naghangyo ako sa pagkuha sa akong web-server http://localhost:8000/users/findusers/53.47792/-2.23389/20/
    53.47792 = $ latitude
    -2.23389 = $ longitude
    ug 20 = ang gilay-on nga gusto nako makuha

    Bisan pa gigamit nimo ang pormula, gikuha niini ang tanan nga mga laray sa akong db

    $ mga sangputanan = DB :: pilia (DB :: hilaw (“SELECT *, (((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) ingon gilay-on GIKAN sa mga marka nga Adunay gilay-on> = ". $ Distansya));

    [{“Id”: 1, ”name”: ”Frankie Johnnie & Luigo too”, ”address”: ”939 W El Camino Real, Mountain View, CA”, ”lat”: 37.386337280273, ”lng”: - 122.08582305908, ”Distansya”: 16079.294719663}, {“id”: 2, ”ngalan”: ”Amici's East Coast Pizzeria”, ”address”: ”790 Castro St, Mountain View, CA”, ”lat”: 37.387138366699, ”lng”: -122.08323669434, ”distansya”: 16079.175940152}, {“id”: 3, ”name”: ”Kapp's Pizza Bar & Grill”, ”address”: ”191 Castro St, Mountain View, CA”, ”lat”: 37.393886566162, ”Lng”: - 122.07891845703, ”distansya”: 16078.381373826}, {“id”: 4, ”ngalan”: ”Round Table Pizza: Mountain View”, ”address”: ”570 N Shoreline Blvd, Mountain View, CA”, ”Lat”: 37.402652740479, ”lng”: - 122.07935333252, ”distansya”: 16077.420540582}, {“id”: 5, ”ngalan”: ”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,” distansya ”: 16077.937560795}, {“ id ”: 7,” name ”:” The bar and grills ”,” address ”:” 24 Whiteley Street, Manchester ”,” lat ”: 53.485118865967,” lng ”: - 2.1828699111938,” distansya ”: 8038.7620112314}]

    Gusto nakong kuhaon usab ang mga laray nga adunay 20 ka milya apan nagdala kini sa tanan nga mga laray. Palihug unsay sayup nako nga gibuhat

Unsay imong hunahuna?

Kini nga site naggamit sa Akismet sa pagpakunhod sa spam. Hibal-i kon giunsa ang pagproseso sa datos sa imong komento.