CRM uye Dhata MapuratifomuOngororo & KuedzwaZvishandiso Zvekushambadzira

Verenga kana Kubvunza Great Circle Distance Pakati pePoints of Latitude neLongitude Uchishandisa The Haversine Formula (PHP, JavaScript, Java, Python, MySQL, MSSQL Examples)

Mwedzi uno ndanga ndichironga zvishoma muPHP uye MySQL zvine ruremekedzo GIS. Kuongorora mambure, ndakave nenguva yakaoma kuwana zvimwe zve Geographic kuverenga kuti ndiwane chinhambwe pakati penzvimbo mbiri saka ndaida kugovana apa

Ndege Mepu Europe Nedenderedzwa Denderedzwa

Nzira yakapusa yekuverenga chinhambwe pakati pemapoinzi maviri iri kushandisa fomati yePythagorean kuverenga fungidziro yetriangle (A² + B² = C²). Izvi zvinozivikanwa se Euclidean chinhambwe.

Aya matangiro anonakidza asi haashande kuGeography sezvo chinhambwe chiri pakati pemitsara yelatitude nelongitudo zvisina kuenzana nhambwe dzakaparadzana. Paunoswedera pedyo neequator, mitsetse yelatitude inoparadzana. Kana ukashandisa equation iri nyore yetriangulation, inogona kuyera nhambwe nenzira kwayo mune imwe nzvimbo uye isiriyo mune imwe, nekuda kwekukombama kweNyika.

Yakakura Denderedzwa Kure

Nzira dzakafamba nzendo refu dzakatenderedza Pasi dzinozivikanwa seGreat Circle Distance. Ndiko… chinhambwe chipfupi pakati pemapoinzi maviri padenderedzwa chinosiyana kubva pazvibodzwa pamepu yakati sandara. Sanganisa izvozvo nenyaya yekuti mitsara yelatitude nerengitudi haina kuenzana… uye une chiverengero chakaoma.

Heino yakanakisa vhidhiyo tsananguro yemabatirwo eGreat Circles.

Iyo Haversine Fomula

Chinhambwe chinoshandisa kukombama kwePasi chinosanganiswa muchimiro cheHaversine, chinoshandisa trigonometry kubvumira kukombama kwepasi. Paunenge uchiwana chinhambwe pakati penzvimbo mbiri pasi (sekubhururuka kwegunguwo), mutsara wakatwasuka unotova arc.

Izvi zvinoshanda mukubhururuka nendege - wakambotarisa pamepu chaiyo yendege ukaona dzakaiswa arched? Imhaka yekuti kubhururuka muarch pakati pemapoinzi maviri ipfupi pane yakananga kunzvimbo.

PHP: Verenga Daro Pakati Pakati pe2 Pfungwa dzeLatitude uye Longitude

Heinoi PHP formula yekuverenga chinhambwe pakati pemapoinzi maviri (pamwe neMile vs. Kilomita shanduko) yakatenderedzwa kunzvimbo mbiri dzedesimali.

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

Izvo zvakasiyana ndezvi:

  • $Latitude1 - shanduko yelatitude yenzvimbo yako yekutanga.
  • $Longitude1 - musiyano welongitude yenzvimbo yako yekutanga
  • $Latitude2 - shanduko yelatitude yenzvimbo yako yechipiri.
  • $Longitude2 - shanduko yelongitude yenzvimbo yako yechipiri.
  • $unit - the default kuva zviuru. Izvi zvinogona kuvandudzwa kana kupfuudzwa se makiromita.

Java: Verenga chinhambwe chiripakati pemapoinzi maviri eLatitude neLongitude

public static double getDistanceBetweenPointsNew(double latitude1, double longitude1, double latitude2, double longitude2, String unit) {
    double theta = longitude1 - longitude2;
    double distance = 60 * 1.1515 * (180/Math.PI) * Math.acos(
        Math.sin(latitude1 * (Math.PI/180)) * Math.sin(latitude2 * (Math.PI/180)) + 
        Math.cos(latitude1 * (Math.PI/180)) * Math.cos(latitude2 * (Math.PI/180)) * Math.cos(theta * (Math.PI/180))
    );
    if (unit.equals("miles")) {
        return Math.round(distance, 2);
    } else if (unit.equals("kilometers")) {
        return Math.round(distance * 1.609344, 2);
    } else {
        return 0;
    }
}

Izvo zvakasiyana ndezvi:

  • latitude1 - shanduko yelatitude yenzvimbo yako yekutanga.
  • longitudo1 - musiyano welongitude yenzvimbo yako yekutanga
  • latitude2 - shanduko yelatitude yenzvimbo yako yechipiri.
  • longitudo2 - shanduko yelongitude yenzvimbo yako yechipiri.
  • chikwata - the default kuva zviuru. Izvi zvinogona kuvandudzwa kana kupfuudzwa se makiromita.

Javascript: Verenga chinhambwe chiri pakati pemapoinzi maviri eLatitude neLongitude

function getDistanceBetweenPoints(latitude1, longitude1, latitude2, longitude2, unit = 'miles') {
    let theta = longitude1 - longitude2;
    let distance = 60 * 1.1515 * (180/Math.PI) * Math.acos(
        Math.sin(latitude1 * (Math.PI/180)) * Math.sin(latitude2 * (Math.PI/180)) + 
        Math.cos(latitude1 * (Math.PI/180)) * Math.cos(latitude2 * (Math.PI/180)) * Math.cos(theta * (Math.PI/180))
    );
    if (unit == 'miles') {
        return Math.round(distance, 2);
    } else if (unit == 'kilometers') {
        return Math.round(distance * 1.609344, 2);
    }
}

Izvo zvakasiyana ndezvi:

  • latitude1 - shanduko yelatitude yenzvimbo yako yekutanga.
  • longitudo1 - musiyano welongitude yenzvimbo yako yekutanga
  • latitude2 - shanduko yelatitude yenzvimbo yako yechipiri.
  • longitudo2 - shanduko yelongitude yenzvimbo yako yechipiri.
  • chikwata - the default kuva zviuru. Izvi zvinogona kuvandudzwa kana kupfuudzwa se makiromita.

Python: Verenga Chinhambwe Pakati peMapoinzi maviri eLatitude neLongitude

Zvakadaro, heino fomula yePython yekuverenga chinhambwe chiri pakati pemapoinzi maviri (pamwe neMile vs. Kilomita shanduko) yakatenderedzwa kunzvimbo mbiri dzedesimali. Chikwereti kumwanakomana wangu, Bill Karr anova Data Scientist we OpenINSIGHTS, yekodhi.

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)

Izvo zvakasiyana ndezvi:

  • latitude1 - shanduko yenzvimbo yako yekutanga latitude.
  • longitudo1 - shanduko yenzvimbo yako yekutanga kureba
  • latitude2 - shanduko yenzvimbo yako yechipiri latitude.
  • longitudo2 - shanduko yenzvimbo yako yechipiri kureba.
  • chikwata - the default kuva zviuru. Izvi zvinogona kuvandudzwa kana kupfuudzwa se makiromita.

MySQL: Kutora Marekodhi Ese Mukati meRange Nekuverenga Chinhambwe MuMaira Uchishandisa Latitude neLongitude.

Zvinogonekawo kushandisa SQL kuverenga marekodhi ese mukati mechimwe chinhambwe. Mumuenzaniso uyu, ndichabvunza MyTable muMySQL kuti ndiwane marekodhi ese ari pasi kana akaenzana nekusiyana $distance (muMaira) kunzvimbo yangu pa$latitude uye $longitude:

Mubvunzo wekutora ese marekodhi mukati meimwe yakatarwa mufambo nekuverenga chinhambwe mumakiromita pakati pemapoinzi maviri ehurefu uye kureba ndeiyi:

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

Iwe unofanirwa kugadzirisa izvi:

  • $ longitude - uku ndiko kusiyaniswa kwePHP uko ini ndiri kupfuudza iyo longitude yeiyo poindi.
  • $ latitude - uku ndiko kusiyaniswa kwePHP uko ini ndiri kupfuudza iyo longitude yeiyo poindi.
  • $ chinhambwe - iyi ndiyo nhanho iwe yaungade kuti uwane zvese zvinyorwa zvishoma kana zvakaenzana nazvo.
  • tafura - iyi ndiyo tafura… iwe uchazoda kutsiva izvo nezita rako retafura.
  • latitude - uyu ndiwo munda wenharaunda yako.
  • kureba - uyu ndiwo munda wekureba kwako.

MySQL: Kutora Marekodhi Ese Mukati meRange Nekuverenga Chinhambwe MuMakiromita Uchishandisa Latitude neLongitude.

Uye heino mubvunzo weSQL uchishandisa makiromita muMySQL:

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

Iwe unofanirwa kugadzirisa izvi:

  • $ longitude - uku ndiko kusiyaniswa kwePHP uko ini ndiri kupfuudza iyo longitude yeiyo poindi.
  • $ latitude - uku ndiko kusiyaniswa kwePHP uko ini ndiri kupfuudza iyo longitude yeiyo poindi.
  • $ chinhambwe - iyi ndiyo nhanho iwe yaungade kuti uwane zvese zvinyorwa zvishoma kana zvakaenzana nazvo.
  • tafura - iyi ndiyo tafura… iwe uchazoda kutsiva izvo nezita rako retafura.
  • latitude - uyu ndiwo munda wenharaunda yako.
  • kureba - uyu ndiwo munda wekureba kwako.

Ini ndaishandisa kodhi iyi mune yepamabhizimusi mepu chikuva chatakashandisa kuchitoro chekutengesa chine nzvimbo dzinopfuura chiuru kuNorth America uye chakashanda zvakaomarara.

Microsoft SQL Server Geographic Distance: STDistance

Kana iwe uri kushandisa Microsoft SQL Server, ivo vanopa yavo basa, STDistance yekuverenga nhambwe pakati pemapoinzi maviri uchishandisa iyo Geography data type.

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 kuna Manash Sahoo, VP uye Architect we Highbridge.

Douglas Karr

Douglas Karr ndiye muvambi we Martech Zone uye nyanzvi inozivikanwa pashanduko yedhijitari. Douglas akabatsira kutanga akati wandei akabudirira ekutanga kweMarTech, akabatsira mukushingairira kweanopfuura madhora mashanu emadhora mukutenga nekudyara kweMartech, uye anoenderera mberi nekuvhura mapuratifomu nemasevhisi. Ndiye muvambi we Highbridge, kambani inobvunza shanduko yedhijitari. Douglas zvakare munyori akaburitswa wegwaro raDummie uye bhuku rehutungamiriri hwebhizinesi.

Related Articles

78 Comments

  1. Ndinokutendai zvikuru nekugovera. Iri raive nyore kopi uye kunama basa uye rinoshanda zvakanaka. Makandiponesa nguva yakawanda.
    FYI kune chero munhu anotakura kuC:
    kaviri deg2rad(double deg) { return deg*(3.14159265358979323846/180.0); }

  2. Yakanaka kwazvo chidimbu chekutumira - chakashanda zvakanaka kwazvo - ini ndaingofanira kushandura zita retafura rakabata lat-refu. Inoshanda nekukasira ku.. Ndine nhamba diki inonzwisisika yelat-refu (<400) asi ndinofunga kuti izvi zvingakwira zvakanaka. Yakanaka saiti zvakare - ndangoiwedzera kune yangu del.icio.us account uye ndichadzoka nguva nenguva.

    1. Ndinofara kubatsira, njanji shamwari!

      Ikozvino ndiri kutsvaga 'muPolygon' PHP basa rinotora akatevedzana akatevedzana latitude uye longitude coordinates ndoona kana imwe poindi iri mukati kana kunze kweporigoni.

  3. Ndinofunga SQL yako inoda chirevo.
    pachinzvimbo chekuti WHERE chinhambwe <= $distance iwe ungangoda
    shandisa HAVING chinhambwe <= $distance

    kana zvisina kudaro ndinokutendai nekundichengetera nguva yakawanda nesimba.

  4. Ndatenda zvikuru nekugovera iyi kodhi. Zvakandichengetedza nguva yakawanda yebudiriro. Zvakare, tinotenda kuvaverengi vako nekutaura kuti HAVING statement inodiwa paMySQL 5.x. Kubatsira kwazvo.

  5. Ndakaonawo kuti WHERE haina kundiitira. Yakachinja kuita HAVING uye zvese zvinoshanda zvakakwana. Pakutanga handina kuverenga zvakataurwa uye ndakazvinyora zvakare ndichishandisa nested yakasarudzwa. Zvose zvichashanda zvakanaka.

  6. Zvinobatsira zvinoshamisa, ndinokutendai zvikuru! Ndakanga ndiine mamwe matambudziko ne "KUVA" itsva, pane "KUPI", asi pandakangoverenga zvinyorwa pano (mushure mehafu yeawa yekugeda mazino angu mukushungurudzika = P), ndakaiwana ichishanda zvakanaka. Ndatenda ^_^

  7. Ramba uchifunga kuti chirevo chakasarudzwa chakadaro chinenge chakanyanya computationally uye saka chinononoka. Kana iwe uine yakawanda yemibvunzo iyoyo, inogona kukanganisa zvinhu nekukurumidza.

    Imwe nzira isina kunyanya kusimba ndeyekumhanyisa yekutanga (yakashata) sarudza uchishandisa SQUARE nzvimbo inotsanangurwa nenhambwe yakaverengerwa kureva "select * kubva patablename apo latitude iri pakati pelat1 nelat2 uye longitude pakati pelon1 nelon2". lat1 = targetlatitude - latdiff, lat2 = targetlatitude + latdiff, yakafanana nelon. latdiff ~= chinhambwe / 111 (yemakiromita), kana chinhambwe/ 69 mamaira sezvo 1 dhigirii relatitude iri ~ 111 km (musiyano mudiki sezvo pasi riine ovha zvishoma, asi rinokwana chinangwa ichi). londiff = chinhambwe / (abs(cos(deg2rad(latitude))*111)) — kana 69 mamaira (unogona kutora sikweya yakati kurei kuitira kuti uzvidavirire pakusiyana). Wobva watora mhedzisiro yacho uye woidyisa muradial yakasarudzwa. Usakanganwe kuzvidavirira kune kunze-kwe-makodhati - kureva kuti huwandu hwelongitude inogamuchirwa i -180 kusvika +180 uye huwandu hwelatitude inogamuchirika ndeye -90 kusvika +90 - kana latdiff yako kana londiff ikamhanya kunze kwerudzi urwu. . Ziva kuti kazhinji kacho izvi zvinogona kusashanda nekuti zvinongokanganisa maverengero pamusoro pemutsara kuburikidza negungwa rePacific kubva padanda kuenda kune rimwe danda, nyangwe ichipesanisa chikamu che chukotka uye chikamu cheAlaska.

    Zvatinoita neizvi kudzikiswa kwakakosha kwehuwandu hwemapoinzi aunoita kuverenga uku. Kana uine miriyoni yepasi rose mapoinzi mudhatabhesi yakagovaniswa zvakaenzana uye uchida kutsvaga mukati me100 km, ipapo kutsvaga kwako kwekutanga (nekukurumidza) ndekwenzvimbo 10000 sq km uye kungangoburitsa mhedzisiro makumi maviri (zvichienderana nekugoverwa kwega kwega. pamusoro penzvimbo inosvika 20M sq km), zvinoreva kuti unomhanyisa kuverenga kwakaoma kureba ka500 pamubvunzo uyu pachinzvimbo chemirioni.

      1. Fantastic advice! Ini ndakanyatso shanda nemugadziri akanyora basa raidhonza mukati meskweya uyezve basa rekudzokorodza rakagadzira 'mativi' akatenderedza perimeter kusanganisa uye kusabvisa mapoinzi asara. Mhedzisiro yacho yaive mhedzisiro inokurumidza - aikwanisa kuongorora mamirioni emapoinzi mumamicroseconds.

        Maitiro angu ari pamusoro ane chokwadi 'akashata' asi anokwanisa. Ndatenda zvakare!

        1. imbwa,

          Ndanga ndichiedza kushandisa mysql uye php kuti ndiongorore kana iyo lat refu poindi iri mukati mepolygon. Unoziva here kana shamwari yako yekuvandudza yakaburitsa chero mienzaniso pamaitirwo ebasa iri. Kana kuti unoziva mimwe mienzaniso yakanaka here. Kutenda mberi.

  8. Mhoroi mose ichi ndicho chirevo changu cheSQL chirevo:

    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

    uye Mysql iri kundiudza chinhambwe ichocho, hachipo sekoramu, ndinogona kushandisa kurongeka, ndinogona kuzviita pasina IKO, uye inoshanda, asi kwete nayo…

  9. Izvi zvakanakisa, zvisinei zvinongoita sekubhururuka kunoita shiri. Zvingava zvakanaka kuedza nekubatanidza google maps API kune iyi neimwe nzira (zvichida kushandisa migwagwa nezvimwewo) Kungopa pfungwa uchishandisa nzira yakasiyana yekufambisa. Ndichiri kugadzira rakateedzerwa annealing basa muPHP rinokwanisa kupa mhinduro inoshanda kune dambudziko rekufamba mutengesi. Asi ndinofunga kuti ndingangokwanisa kushandisazve imwe kodhi yako kuita kudaro.

  10. Chinyorwa chakanaka! Ndakawana zvakawanda zvinyorwa zvinotsanangura nzira yekuenzanisa kureba pakati pemapoinzi maviri asi ini ndainyatsotsvaga iyo SQL snippet.

  11. 2 mazuva ekutsvagisa kuti pakupedzisira ndiwane peji rino rinogadzirisa dambudziko rangu. Zvinoita sekunge ndibvise WolframAlpha yangu uye ndigadzirise masvomhu angu. Shanduko kubva KUPI kuenda KUVANHU ine chinyorwa changu chiri kushanda. WAZVIITA

  12. Ndinoshuva kuti iri raive peji rekutanga randakawana pane ino. Mushure mekuedza mirairo yakawanda yakasiyana iyi ndiyo yega yekushanda nemazvo, uye nekuchinja kushoma kunodiwa kukwana yangu dhatabhesi.
    Kutenda kwazvo!

  13. Ndinoshuva kuti iri raive peji rekutanga randakawana pane ino. Mushure mekuedza mirairo yakawanda yakasiyana iyi ndiyo yega yekushanda nemazvo, uye nekuchinja kushoma kunodiwa kukwana yangu dhatabhesi.
    Kutenda kwazvo!

  14. ndatenda nekutumira chinyorwa ichi chinobatsira,  
    asi nokuda kwechimwe chikonzero ndinoda kubvunza
    nzira yekuwana chinhambwe pakati pemakodha mukati memysql db uye coords akaiswa kuphp nemushandisi?
    kuti utsanangure zvakajeka:
    1.user anofanirwa kuisa [id] pakusarudza data rakatsanangurwa kubva kudb uye mushandisi pachayo coords.
    2.the php faira tora data yarinonangwa (coords) uchishandisa [id] wobva waverenga chinhambwe pakati pemushandisi nenzvimbo yechinangwa.

    kana kuti unogona kungowana chinhambwe kubva kukodhi iri pazasi?

    $qry = “SARUDZA *,(((acos(chivi((“.$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) sechinhambwe KUBVA `MyTable` HERE chinhambwe >= “.$distance.” >>>>ndinogona "kutora" chinhambwe kubva pano?
    ndatenda zvakare,
    Timmy S

  15. ok, zvese zvandaedza hazvisi kushanda. Ndinoreva, zvandinazvo zvinoshanda, asi madaro ari kure.

    Pane angave achiona chii chisina kunaka nekodhi iyi?

    kana(isset($_POST['submitted'])){ $z = $_POST['zipcode']; $r = $_POST['radius']; echo “Zvibairo zve“.$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 KUBVA mrk m, zip z1, zip z2 PAPI m.zipcode = z1.zipcode UYE z2.zipcode = $z UYE (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 ") kana kufa (mysql_error()); nepo($row = mysql_fetch_array($sql)) {$store1 = $row['MktName']."”; $store = $row['LocAddSt'].””; $store .= $row['LocAddCity'].”, “.$row['LocAddState']." “.$row['zipcode']; $latitude1 = $mutsara['lat']; $ longitude1 = $ mutsara['lon']; $latitude2 = $mutsara['y1']; $longitude2 = $mutsara['x1']; $guta = $mutsara['guta']; $state = $row['state']; $dis = getnew($latitude1, $longitude1, $latitude2, $longitude2,$unit ='Mi'); // $dis = chinhambwe($lat1, $lon1, $lat2, $lon2); $verified = $row['verified']; kana($verified == '1'){ echo “”; maungira "".$store.""; echo $dis . ” mamaira (ma) kure”; maungira ""; } zvimwe { echo “”.$store.””; echo $dis . ” mamaira (ma) kure”; maungira ""; }}}

    mabasa angu.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)) ); $distance = acos($ chinhambwe); $ chinhambwe = rad2deg($ kureba); $ kureba = $ kureba * 60 * 1.1515; chinja ($ unit) {kesi 'Mi': kuputsa; nyaya 'Km' : $distance = $distance * 1.609344; } kudzoka (kutenderera($distance,2)); }

    Ndinokutendai mberi

  16. Hei Douglas, chinyorwa chikuru. Ini ndawana tsananguro yako yeiyo geographical concepts uye iyo kodhi inonakidza chaizvo. Mazano angu chete angave ekuisa nzvimbo uye indent iyo kodhi yekuratidzira (seStackoverflow, semuenzaniso). Ini ndinonzwisisa kuti iwe unoda kuchengetedza nzvimbo, asi yakajairika kodhi spacing / indentation yaizoita kuti zvive nyore kwandiri, semugadziri wepurogiramu, kuverenga nekutsemura. Zvisinei, chinhu chidiki. Ramba wakadaro.

  17. inoita seyakakurumidza (mysql 5.9) kushandisa kaviri fomura mukusarudza uye kupi:
    $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 = 'SARUDZA *, '.$formula.' sechinhambwe KUBVA patafura PAPI '..$formula.' <= '.$distance;

  18. Ndinotenda zvikuru nekuveura chinyorwa ichi.chinobatsira zvikuru.
    PHP yakatanga kugadzirwa seyakareruka scripting platform inonzi "Personal Home Peji". Mazuva ano PHP (iyo pfupi yeHypertext Preprocessor) ndeimwe nzira yeMicrosoft's Active Server Mapeji (ASP) tekinoroji.

    PHP ndeye yakavhurika sosi server-padivi mutauro uyo unoshandiswa kugadzira ane simba mapeji ewebhu. Inogona kuiswa muHTML. PHP inowanzo shandiswa pamwe chete neMySQL dhatabhesi paLinux/UNIX web server. Zvichida ndiwo mutauro wemanyorero unonyanya kufarirwa.

  19. Ndakawana mhinduro iri pamusoro isingashande nemazvo.
    Ndinofanira kuchinja kuti:

    $qqq = “SARUDZA *,(((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) sechinhambwe KUBVA `register` “;

  20. Mhoro, ndapota ndichada rubatsiro rwako pane izvi.

    Ndakaita chikumbiro kuwebhu-server yangu
    53.47792 = $ latitude
    -2.23389 = $ longitude
    uye 20 = chinhambwe chandinoda kutora

    Nekudaro uchishandisa iwe formula, inotora mitsara yese mudb yangu

    $zvabuda = DB::sarudza(DB::raw(“SARUDZA *,((acos(chivi((“.$latitude).pi()/180)) * chivi((latpi()/180))+cos((“.$latitude.”pi()/180)) * cos((latpi()/180)) * cos(((“.$longitude.”- lng)pi()/180)))180/pi())601.1515*1.609344) sechinhambwe KUBVA mamakisi VAVE chinhambwe >= “.$distance ));

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

    Ndinoda kutora mitsara chete nemakiromita makumi maviri asi inounza mitsetse yose. Veduwe ndiri kutadza nei

  21. Ndiri kutsvaga mubvunzo wakafanana asi ndakawedzera zvishoma - muchidimbu uku kuunganidza zvese zvinorongeka mukati memamaira maviri ega ega coordinate uyezve kuverenga kuti macoordinate mangani muboka rega rega uye kubuda boka rimwe chete rine akanyanya kurongeka - kunyangwe kana Une boka rinopfuura rimwechete pakati pemapoka ane nhamba yakawanda yevanoronga - ingoburitsa boka rakangoitika kubva mumapoka ane nhamba huru dzakakura -

Unofungei?

Nzvimbo iyi inoshandisa Akismet kuderedza spam. Dzidza kuti sei deta yako inoshandiswa.