Ngitung atanapi Milarian Jarak Lingkaran Besar Antara Titik Lintang sareng Bujur Nganggo Rumus Haversine (Conto PHP, Python, MySQL, MSSQL)

Formula Haversine - Jarak Lingkaran Besar - PHP, Python, MySQL

Bulan ieu kuring parantos ngerjakeun program rada dina PHP sareng MySQL perkawis GIS. Snooping sakitar jaring, saleresna kuring sesah mendakan sababaraha Itungan geografis pikeun milarian jarak antara dua lokasi janten kuring hoyong ngabagi di dieu.

Peta Hiber Éropa Kalayan jarak Circle hébat

Cara saderhana pikeun ngitung jarak antara dua titik nyaéta ngagunakeun rumus Pythagorean pikeun ngitung hénbéntus segitiga (A + + B² = C²). Ieu katelah Jarak Euclidean.

Éta mimiti anu pikaresepeun tapi henteu dilarapkeun sareng Géografi sabab jarak antara garis lintang sareng bujur teu sarua jarak papisah. Nalika anjeun caket kana khatulistiwa, garis lintang bakal jauh. Upami anjeun nganggo sababaraha jenis persamaan triangulasi saderhana, éta tiasa ngukur jarak akurat dina hiji lokasi sareng parah pisan di tempat anu sanés, kusabab lengkungan Bumi.

Jarak Circle hébat

Rute anu ditempuh jarak jauh di sakuliling Bumi dikenal salaku Jarak Circle hébat. Nyaéta… jarak pangdeukeutna antara dua titik dina hiji bal béda ti titik dina peta datar. Gabungkeun éta sareng kanyataan yén garis lintang sareng bujur henteu sajajar… sareng anjeun gaduh itungan anu sesah.

Kieu penjelasan pidéo anu hadé ngeunaan kumaha jalan Great Circles.

Formula Haversine

Jarak ngagunakeun lengkungan Bumi dilebetkeun kana Rumus haversine, anu ngagunakeun trigonometri pikeun ngamungkinkeun kurva bumi. Nalika anjeun mendakan jarak antara 2 tempat di bumi (nalika manuk gagak ngapung), garis lempeng leres-leres busur.

Ieu lumaku pikeun hiber udara - naha anjeun kantos ningali peta penerbangan anu saleresna sareng perhatoskeun aranjeunna dilebet? Éta sabab langkung pondok pikeun ngapung dina lengkungan antara dua titik tibatan langsung ka lokasi.

PHP: Ngitung Jarak Antara 2 Titik Lintang sareng Bujur

Ieu rumus PHP pikeun ngitung jarak antara dua titik (sareng konvérsi Mil vs Kilométer) dibuleurkeun kana dua tempat perpuluhan.

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)); 
}

Variabelna nyaéta:

  • $Lintang1 – variabel pikeun lintang lokasi munggaran anjeun.
  • $Bujur1 – variabel pikeun bujur lokasi munggaran anjeun
  • $Lintang2 – variabel pikeun lintang lokasi kadua anjeun.
  • $Bujur2 – variabel pikeun bujur lokasi kadua anjeun.
  • $unit - mahluk standar mil. Ieu bisa diropéa atawa diliwatan salaku kilométer.

Python: Ngitung Jarak Antara 2 Titik Lintang sareng Bujur

Atoh, ieu rumus Python pikeun ngitung jarak antara dua titik (sareng konvérsi Mil vs Kilométer) dibuleurkeun kana dua tempat perpuluhan. Kiridit ka putra abdi, Bill Karr anu mangrupa Data Scientist pikeun OpenINSIGHTS, pikeun kode.

from numpy import sin, cos, arccos, pi, round

def rad2deg(radians):
    degrees = radians * 180 / pi
    return degrees

def deg2rad(degrees):
    radians = degrees * pi / 180
    return radians

def getDistanceBetweenPointsNew(latitude1, longitude1, latitude2, longitude2, unit = 'miles'):
    
    theta = longitude1 - longitude2
    
    distance = 60 * 1.1515 * rad2deg(
        arccos(
            (sin(deg2rad(latitude1)) * sin(deg2rad(latitude2))) + 
            (cos(deg2rad(latitude1)) * cos(deg2rad(latitude2)) * cos(deg2rad(theta)))
        )
    )
    
    if unit == 'miles':
        return round(distance, 2)
    if unit == 'kilometers':
        return round(distance * 1.609344, 2)

Variabelna nyaéta:

  • lintang1 – variabel pikeun lokasi munggaran anjeun lintang.
  • bujur1 – variabel pikeun lokasi munggaran anjeun bujur
  • lintang2 - variabel pikeun lokasi kadua anjeun lintang.
  • bujur2 - variabel pikeun lokasi kadua anjeun bujur.
  • kamanunggalan - mahluk standar mil. Ieu bisa diropéa atawa diliwatan salaku kilométer.

MySQL: Meunangkeun Sadaya Rékor Dina Kisaran Ku Ngitung Jarak Dina Miles Nganggo Lintang sareng Bujur

Éta ogé dimungkinkeun pikeun nganggo SQL pikeun ngalakukeun itungan pikeun mendakan sadaya rékaman dina jarak anu khusus. Dina conto ieu, kuring badé milarian MyTable dina MySQL pikeun mendakan sadaya catetan anu kirang ti atanapi sami sareng variabel $ jarak (dina Mil) ka lokasi kuring di $ lintang sareng $ bujur:

Pamundut pikeun kéngingkeun sadaya catetan dina spésifik jarak ku ngitung jarak di mil antara dua titik lintang sareng bujur nyaéta:

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

Anjeun kedah ngaropea ieu:

  • $ bujur - ieu mangrupikeun variabel PHP dimana kuring ngalirkeun bujur titik éta.
  • $ lintang - ieu mangrupikeun variabel PHP dimana kuring ngalirkeun bujur titik éta.
  • $ jarak - ieu jarak anu anjeun badé mendakan sadaya rékor kirang atanapi sami.
  • meja - ieu tabel ... anjeun bakal hoyong ngagentos éta kalayan nami méja anjeun.
  • lintang - ieu bidang lintang anjeun.
  • bujur - ieu bidang bujur anjeun.

MySQL: Meunangkeun Sadaya Rékor Dina Rentang Ku Ngitung Jarak Dina Kilométer Ngagunakeun Lintang sareng Bujur

Sareng ieu pamundut SQL nganggo kilométer dina 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."

Anjeun kedah ngaropea ieu:

  • $ bujur - ieu mangrupikeun variabel PHP dimana kuring ngalirkeun bujur titik éta.
  • $ lintang - ieu mangrupikeun variabel PHP dimana kuring ngalirkeun bujur titik éta.
  • $ jarak - ieu jarak anu anjeun badé mendakan sadaya rékor kirang atanapi sami.
  • meja - ieu tabel ... anjeun bakal hoyong ngagentos éta kalayan nami méja anjeun.
  • lintang - ieu bidang lintang anjeun.
  • bujur - ieu bidang bujur anjeun.

Kuring ngamangpaatkeun kode ieu dina platform pemetaan perusahaan anu urang garapan pikeun toko ritel anu gaduh langkung ti 1,000 lokasi di Amérika Kalér sareng tiasa dianggo saé.

Microsoft SQL Server Jarak Geografis: STDistance

Upami anjeun nganggo Microsoft SQL Server, aranjeunna nawiskeun fungsina sorangan, Jarak ST pikeun ngitung jarak antara dua titik ngagunakeun tipe data Géografi.

DECLARE @g geography;  
DECLARE @h geography;  
SET @g = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);  
SET @h = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326);  
SELECT @g.STDistance(@h);  

Hat tip ka Manash Sahoo, VP jeung Arsiték tina Highbridge.

77 Komentar

  1. 1

    Hatur nuhun pisan pikeun babagi. Ieu mangrupikeun salinan sareng témpél anu gampang sareng tiasa dianggo saé. Anjeun parantos nyalametkeun kuring seueur waktos.
    FYI pikeun saha waé anu porting ka C:
    ganda deg2rad (ganda deg) {balik deg * (3.14159265358979323846 / 180.0); }

  2. 2

    Pohara nice sapotong posting - digawé pisan nice - Kuring ngan kungsi ngaganti ngaran tabel nyekel lat-panjang. Gawéna geulis gancang mun .. Kuring boga jumlah alesan leutik lat-longs (<400) tapi Jigana ieu bakal skala nicely. Situs anu saé ogé - kuring nembé nambihan kana akun del.icio.us kuring sareng bakal parios deui rutin.

  3. 4
  4. 5

    Kuring searched sakabeh poé keur itungan jarak jeung kapanggih algoritma harversine, hatur nuhun pikeun masihan conto kumaha carana nempatkeun eta dina pernyataan SQL. Hatur nuhun sareng salam, Daniel

  5. 8

    Kuring pikir SQL anjeun peryogi pernyataan anu gaduh.
    tinimbang WHERE jarak <= $ jarak anjeun bisa jadi kudu
    ngagunakeun HAVING jarak <= $jarak

    disebutkeun hatur nuhun pikeun ngahemat kuring kebat waktu jeung tanaga.

  6. 10
  7. 11
  8. 12

    Hatur nuhun pisan pikeun babagi kode ieu. Éta nyalametkeun kuring seueur waktos pangwangunan. Ogé, hatur nuhun ka pamiarsa anjeun nunjukkeun yén pernyataan HAVING dipikabutuh pikeun MySQL 5.x. pohara mantuan.

  9. 14
  10. 15

    Halo,

    Patarosan sejen. Naha aya rumus pikeun senar NMEA sapertos di handap?

    1342.7500,N,10052.2287,E

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

    Hatur nuhun,
    Harry

  11. 16

    Kuring ogé mendakan yén WHERE henteu dianggo pikeun kuring. Dirobih janten HAVING sareng sadayana jalan sampurna. Mimitina kuring henteu maca koméntar sareng nyerat deui nganggo pilihan nested. Duanana bakal dianggo ngan rupa.

  12. 17
  13. 18

    Incredibly mantuan, hatur nuhun pisan! Kuring ngalaman sababaraha masalah jeung anyar "NGAGAH", tinimbang "WHERE", tapi sakali kuring maca komentar di dieu (sanggeus ngeunaan satengah jam grinding huntu kuring di hanjelu = P), Kuring meunang gawéna nicely. Hatur nuhun ^_^

  14. 19
  15. 20

    Émut yén pernyataan anu dipilih sapertos kitu bakal parah pisan sacara komputasi sahingga laun. Upami anjeun gaduh seueur patarosan éta, éta tiasa ngagentos hal-hal anu gancang.

    Hiji pendekatan teuing kirang sengit nyaéta ngajalankeun hiji munggaran (kasar) pilih maké aréa pasagi diartikeun ku jarak diitung ie "pilih * tina tablename dimana lintang antara lat1 na lat2 sarta bujur antara lon1 na lon2". lat1 = targetlatitude - latdiff, lat2 = targetlatitude + latdiff, sarupa jeung lon. latdiff ~= jarak / 111 (pikeun km), atawa jarak/69 pikeun mil saprak 1 darajat lintang nyaéta ~ 111 km (variasi saeutik saprak bumi rada oval, tapi cukup keur kaperluan ieu). londiff = jarak / (abs (cos (deg2rad (lintang))) * 111)) - atawa 69 pikeun mil (anjeun sabenerna bisa nyandak kuadrat rada gedé guna akun variasi). Teras cokot hasil tina éta sareng tuang kana pilihan radial. Ngan tong hilap ngitung koordinat luar-wates - nyaéta kisaran bujur anu ditampi nyaéta -180 dugi ka +180 sareng rentang lintang anu tiasa ditampi nyaéta -90 dugi ka +90 - upami latdiff atanapi londiff anjeun ngajalankeun di luar rentang ieu. . Catet yén dina kalolobaan kasus ieu bisa jadi teu lumaku sabab ukur mangaruhan itungan ngaliwatan garis ngaliwatan Samudra Pasifik ti kutub ka kutub, sanajan teu motong bagian tina chukotka sarta bagian tina Alaska.

    Anu kami laksanakeun ku ieu mangrupikeun pangurangan anu signifikan dina jumlah poin anu anjeun lakukeun itungan ieu. Upami Anjeun gaduh sajuta titik global dina database disebarkeun kasarna merata tur Anjeun hoyong milarian dina 100 km, lajeng mimiti Anjeun (gancang) pilarian nyaeta wewengkon 10000 km sq jeung meureun bakal ngahasilkeun kira 20 hasil (dumasar kana distribusi rata leuwih hiji. aréa permukaan ngeunaan 500M sq km), nu hartina anjeun ngajalankeun itungan jarak kompléks 20 kali pikeun query ieu tinimbang sajuta kali.

    • 21

      Kasalahan leutik dina conto… éta bakal aya dina jarak 50 km (sanés 100) sabab urang ningali "radius" alun-alun urang.

      • 22

        Naséhat hebat! Kuring saleresna damel sareng pamekar anu nyerat fungsi anu narik alun-alun jero teras fungsi rekursif anu ngajantenkeun 'kuadrat' sakitar perimeter kalebet sareng ngaluarkeun titik sésana. Hasilna mangrupa hasil incredibly gancang - anjeunna bisa evaluate jutaan titik dina microseconds.

        Pendekatan kuring di luhur pasti 'kasar' tapi mampuh. Nuhun sakali deui!

        • 23

          Doug,

          Kuring geus nyobian nganggo MySQL na php mun evaluate naha titik lat lila aya dina polygon a. Naha anjeun terang upami réncang pamekar anjeun nyebarkeun conto kumaha cara ngalaksanakeun tugas ieu. Atanapi anjeun terang conto anu saé. Nuhun sateuacanna.

  16. 24

    Hai sadayana ieu mangrupikeun pernyataan SQL uji kuring:

    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

    sareng Mysql nyarioskeun ka kuring jarak éta, henteu aya salaku kolom, abdi tiasa nganggo pesenan ku, abdi tiasa ngalakukeunana tanpa WHERE, sareng tiasa dianggo, tapi henteu sareng éta ...

  17. 26

    Ieu hébat, tapi éta sagampil manuk ngapung. Eta bakal gede pikeun nyobaan jeung ngasupkeun google maps API ka ieu kumaha bae (meureun make jalan jeung sajabana) Ngan pikeun méré ide ngagunakeun bentuk béda transportasi. Kuring masih boga acan nyieun fungsi annealing simulated dina PHP anu bakal tiasa nawiskeun solusi efisien keur masalah salesman iinditan. Tapi kuring nyangka yén kuring tiasa nganggo deui sababaraha kode anjeun pikeun ngalakukeunana.

  18. 27

    Hi Douglas,
    hatur nuhun pisan pikeun artikel ieu - anjeun ngan nyalametkeun kuring loba waktu.
    ati-ati,
    nimrod @Israel

  19. 28

    artikel alus! Kuring mendakan seueur tulisan anu ngajelaskeun kumaha carana ngitung jarak antara dua titik tapi kuring leres-leres milarian snippet SQL.

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

    2 dinten panalungtikan pikeun tungtungna mendakan halaman ieu anu ngarengsekeun masalah kuring. Sigana mah kuring leuwih hadé bust kaluar WolframAlpha kuring jeung sikat up on maths abdi. Parobihan ti WHERE ka HAVING gaduh naskah kuring dina urutan kerja. HATUR NUHUN

  25. 37
    • 38

      Hatur nuhun Georgi. Kuring terus meunang kolom 'jarak' teu kapanggih. Sakali kuring ngarobih WHERE ka HAVING éta damel sapertos pesona!

  26. 39

    Abdi ngarepkeun ieu halaman munggaran anu kuring mendakan dina ieu. Saatos nyobian seueur paréntah anu béda ieu ngan ukur tiasa dianggo leres, sareng kalayan perobahan minimal anu diperyogikeun pikeun nyocogkeun database kuring sorangan.
    Hatur nuhun pisan!

  27. 40

    Abdi ngarepkeun ieu halaman munggaran anu kuring mendakan dina ieu. Saatos nyobian seueur paréntah anu béda ieu ngan ukur tiasa dianggo leres, sareng kalayan perobahan minimal anu diperyogikeun pikeun nyocogkeun database kuring sorangan.
    Hatur nuhun pisan!

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

    Kuring terang rumus ieu tiasa dianggo, tapi kuring henteu tiasa ningali dimana radius bumi dipertimbangkeun. Punten aya anu tiasa ngajelaskeun kuring?

  34. 49
  35. 50
  36. 52

    Hatur nuhun Douglas, Query SQL mangrupikeun naon anu kuring peryogikeun, sareng panginten kuring kedah nyerat nyalira. Anjeun parantos nyalametkeun kuring tina kamungkinan jam kurva diajar bujur lintang!

  37. 53
  38. 55
  39. 56

    Douglas, hatur nuhun pikeun kode endah ieu. Geus cracking sirah kuring ngeunaan cara ngalakukeun ieu dina portal komunitas GPS kuring. Anjeun geus nyalametkeun kuring jam.

  40. 58

    hatur nuhun pikeun ngeposkeun tulisan anu mangpaat ieu,  
    tapi pikeun sababaraha alesan Abdi hoyong nanya
    kumaha carana meunang jarak antara coords jero mysql db na coords diselapkeun ka php ku pamaké?
    pikeun leuwih jelas ngajelaskeun:
    1.pamaké kudu nyelapkeun [id] pikeun milih data nu tangtu tina db jeung koordinat pamaké sorangan
    2.file php meunangkeun data target (koord) ngagunakeun [id] terus ngitung jarak antara pamaké jeung titik target.

    atawa ngan saukur bisa meunang jarak ti kode di handap?

    $qry = “PILIH *,(((acos(sin((“.$latitude.”.”*pi()/180)) * sin((`Latitude`*pi()/180))+cos((“. $lintang.”*pi()/180)) * cos((`Lintang`*pi()/180)) * cos(((“.$bujur.”- `Bujur`)*pi()/180) )))*180/pi())*60*1.1515*1.609344) salaku jarak TI `MyTable` WHERE jarak >= ".$jarak." >>>>tiasa "ngaluarkeun" jarak ti dieu?
    nuhun sakali deui,
    Timmy S

    • 59

      teu kapikiran, Kuring geus angka kaluar kumaha "fungsi" jalan dina php
      $dis=getDistanceBetweenPointsNew($userLati, $userLongi, $lati, $longi, $unit = 'Km')
      hatur nuhun pisan!! 

  41. 60

    ok, sagalana Kuring geus diusahakeun teu jalan. Maksud kuring, naon anu kuring gaduh damel, tapi jarakna jauh.

    Naha aya anu tiasa ningali naon anu salah dina kode ieu?

    lamun (isset ($ _POST [ 'dikintunkeun'])) {$ z = $ _POST [ 'kode pos']; $r = $_POST['radius']; echo "Hasil pikeun ".$z; $sql = mysql_query("PILIH DISTINCT m.zipcode, m.MktName,m.LocAddSt,m.LocAddCity,m.LocAddState,m.x1,m.y1,m.verified,z1.lat,z2.lon,z1. kota, z1.state FROM mrk m, pos z1, pos z2 WHERE m.zipcode = z1.zipcode AND z2.zipcode = $ z AND (3963 * acos ( truncate ( dosa ( z2.lat / 57.2958 ) * dosa ( 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 ") atawa maot (mysql_error()); sedengkeun ($baris = mysql_fetch_array ($sql)) {$store1 = $baris['MktName'].""; $toko = $baris['LocAddSt'].””; $store .= $row['LocAddCity'].", ".$row['LocAddState']." “.$row['kode pos']; $latitude1 = $baris['lat']; $bujur1 = $baris['lon']; $latitude2 = $baris['y1']; $bujur2 = $baris['x1']; $Kota = $baris['Kota']; $kaayaan = $baris[ 'kaayaan']; $dis = getnew($latitude1, $bujur1, $latitude2, $bujur2, $unit = 'Mi'); // $dis = jarak ($lat1, $lon1, $lat2, $lon2); $diverifikasi = $baris['diverifikasi']; lamun ($ diverifikasi == '1'){ gema ""; echo "".$toko.""; echo $dis . "mil (s) jauh"; gema ""; } Sejenna { echo "".$toko.""; echo $dis . "mil (s) jauh"; gema ""; } }}

    kode functions.php kuring
    fungsi getnew ($ lintang1, $ bujur1, $ lintang2, $ bujur2, $ unit = 'Mi') {$ theta = $ bujur1 - $ bujur2; $jarak = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta)) ); $jarak = acos($jarak); $jarak = rad2deg($jarak); $ jarak = $ jarak * 60 * 1.1515; switch ($ unit) { bisi 'Mi': putus; bisi 'Km': $jarak = $jarak * 1.609344; } balik (buleud ($ jarak, 2)); }

    hatur nuhun sateuacana

  42. 61
  43. 62

    Hei Douglas, artikel hébat. Kuring mendakan katerangan anjeun ngeunaan konsép géografis sareng kodeu anu pikaresepeun pisan. Hijina saran abdi bakal spasi tur indent kode pikeun tampilan (kawas Stackoverflow, contona). Kuring ngarti yén anjeun hoyong ngahemat rohangan, tapi jarak kode konvensional / indentation bakal ngagampangkeun kuring, salaku programer, maca sareng ngabedah. Atoh, éta hal leutik. Tetep nepi karya hébat.

    • 63

      hatur nuhun! Abdi parantos ngarobih sakedik postingan… tapi persamaan nyandak seueur rohangan sareng panjang pisan dugi ka kuring henteu yakin yén éta ngabantosan teuing.

  44. 64
  45. 65
  46. 66
  47. 67
  48. 68
  49. 69
  50. 70

    sigana langkung gancang (mysql 5.9) nganggo dua kali rumus dina pilih sareng dimana:
    $formula = "(((acos(sin((".$latitude."*pi()/180)) * sin((`Latitude`*pi()/180))+cos((".$latitude. ”*pi()/180)) * cos((`Lintang`*pi()/180)) * cos(((“.$bujur.”- `Bujur`)*pi()/180)))) *180/pi())*60*1.1515*1.609344)”;
    $sql = 'PILIH *, '.$rumus.' sakumaha jarak ti méja WHERE '..$formula.' <= '.$jarak;

  51. 71
  52. 72

    Hatur nuhun pisan pikeun ngaguar tulisan ieu. Éta mangpaat pisan.
    PHP mimitina dijieun salaku platform scripting basajan disebut "Personal Home Page". Kiwari PHP (singketan pikeun Hypertext Preprocessor) mangrupikeun alternatip tina téknologi Microsoft Active Server Pages (ASP).

    PHP mangrupikeun basa sisi server open source anu dianggo pikeun nyiptakeun halaman wéb dinamis. Éta tiasa dilebetkeun kana HTML. PHP biasana dianggo babarengan sareng pangkalan data MySQL dina pangladén wéb Linux/UNIX. Ieu meureun basa scripting pang populerna.

  53. 73

    Kuring mendakan solusi di luhur henteu jalan leres.
    Abdi kedah ngalih ka:

    $qqq = “PILIH *,(((acos(sin((“.$latitude.”.”*pi()/180)) * sin((`latt`*pi()/180))+cos((” . $latitude . "*pi()/180)) * cos((`latt`*pi()/180)) * cos(((" . $bujur . "- `longt`)*pi()/180) )))*180/pi())*60*1.1515) salaku jarak TI `register` “;

  54. 75
  55. 76

    Halo, punten abdi bakal peryogi bantosan anjeun dina ieu.

    Kuring nyieun pamundut meunang ka web-server kuring http://localhost:8000/users/findusers/53.47792/-2.23389/20/
    53.47792 = $ lintang
    -2.23389 = $ bujur
    jeung 20 = jarak kuring rék nimba

    Nanging nganggo rumus anjeun, éta nyandak sadaya baris dina db kuring

    $hasil = DB::select(DB::raw("PILIH *,(((acos(sin((".$latitude."."))/180)) * sin((lat*pi()/180 ))+cos((“.$latitude.”*pi()/180)) * cos((lat*pi()/180)) * cos(((“.$bujur.”- lng)*pi( ) / 180)))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) salaku jarak TI spidol NGABODOH jarak > = ". $ jarak ));

    [{"id":1,"ngaran":"Frankie Johnnie & Luigo Teuing","alamat":"939 W El Camino Real, Mountain View, CA","lat":37.386337280273,"lng":-122.08582305908, ”jarak”:16079.294719663},{“id”:2,”ngaran”:”Amici's East Coast Pizzeria”,”alamat”:”790 Castro St, Mountain View, CA”,”lat”:37.387138366699,”lng”: -122.08323669434, "jarak": 16079.175940152}, {"id": 3, "ngaran": "Kapp urang Pizza Bar & grill","Alamat": "191 Castro St, Mountain View, CA","lat": 37.393886566162, "lng": -122.07891845703, "jarak": 16078.381373826}, {"id": 4, "ngaran": "Round Table Pizza: Mountain View","Alamat": "570 N Shoreline Blvd, Mountain View, CA", ”lat”:37.402652740479,”lng”:-122.07935333252,”jarak”:16077.420540582},{“id”:5,”ngaran”:”Tony & Alba's Pizza & Pasta”,”alamat”:”619 Escuela Ave. View, CA”,”lat”:37.394012451172,”lng”:-122.09552764893,”jarak”:16078.563225154},{“id”:6,”ngaran”:”Oregano's Wood-Fired Pizza”,”alamat”:”4546 El Camino Real, Los Altos, CA ","lat": 37.401725769043, "lng": -122.11464691162, "jarak": 16077.937560795}, {" id": 7, "ngaran": "The bar jeung grills","Alamat": "24 Whiteley Street, Manchester","lat": 53.485118865967, "lng": -2.1828699111938, "jarak": 8038.7620112314}]

    Abdi hoyong nyandak ngan baris kalayan 20 mil tapi brings sadayana barisan. Punten naon anu kuring lakukeun salah

  56. 77

    Abdi milarian pamundut anu sami tapi rada ningkat - pondokna ieu nyaéta pikeun ngagolongkeun sadaya koordinat dina jarak 2 mil unggal koordinat teras ngitung sabaraha koordinat dina unggal grup sareng kaluaran ngan hiji grup anu gaduh koordinat paling seueur - sanaos upami Anjeun gaduh leuwih ti hiji grup diantara grup nu boga paling jumlah koordinat - saukur kaluaran grup acak tina grup kalawan jumlah pangbadagna sarua -

Naon anu anjeun pikirkeun?

Situs migunakeun Akismet pikeun ngurangan spam. Diajar kumaha komentar data anjeun diolah.