پی ایچ پی او SQL: د هاروریسین فورمول سره د عرض البلد او عرض البلد نقطو تر منځ د لوی سرکل واټن محاسبه یا پوښتنې.

د هوریسین فورمول - د PHP یا MySQL سره د عالي سرکل فاصله محاسبه کړئ

پدې میاشت کې زه د GIS په پام کې نیولو سره په PHP او MySQL کې یو څه برنامه لرم. د جال شاوخوا غلا کول ، ما واقعیا د یو څه موندلو کې سخت وخت درلود جغرافیه محاسبه ترڅو د دوو موقعیتونو ترمینځ فاصله ومومم نو زه غواړم دوی دلته شریک کړم.

د الوتنې نقشه اروپا د لوی سرکل واټن سره

د دوه ټکو ترمینځ د فاصلو محاسبه کولو ساده لاره د مثلث اټکل کولو محاسبه کولو لپاره د پایټاګورین فورمول کارول (A² + B² = C²). دا د د یوکلیډین فاصله.

دا یو په زړه پوری پیل دی مګر دا د جغرافیه سره نه پلي کیږي ځکه چې د عرض البلد او عرض البلد ترمنځ واټن دي مساوي واټن نه بېله لکه څنګه چې تاسو استوایی ته نږدې کوئ ، د عرض البلز لاینونه یو له بل سره جلا کیږي. که تاسو یو څه ساده مثلث معادله وکاروئ ، نو دا ممکن په یو موقعیت کې فاصله په دقت سره اندازه کړي او په بل کې خورا په غلط ډول غلط وي ، ځکه چې د ځمکې د محوطیت له امله.

لوی سرکل واټن

هغه لارې چې د ځمکې په اوږدو کې اوږده واټنونه سفر کوي د لوی سرکل واټن. دا دی ... په ساحه کې د دوه نقطو تر مینځ لنډه فاصله په فلیټ میپ کې له ټکو څخه توپیر لري. یوځای کړئ چې د دې حقیقت سره چې عرض البلد او عرض البلد مساوي ندي ... او تاسو یو سخت محاسبه ترلاسه کوئ.

دلته د عالي حلقو کار کولو څرنګوالي په زړه پورې ویډیو توضیحي ده.

د هیوریسین فورمول

د ځمکې د محور په کارولو سره فاصله په د هارورین فورمول، کوم چې د ځمکې محور ته اجازه ورکولو لپاره مثلثونه کاروي. کله چې تاسو په ځمکه کې د 2 ځایونو تر مینځ فاصله ومومئ (لکه څنګه چې کاګ الوتنه کوي) ، یو مستقیم کرښه واقعیا یو آرک دی.

دا په هوایی پرواز کې پلي کیږي - ایا تاسو کله هم د الوتنو اصلي نقشو ته کتلي او لیدلي چې دوی آرچ شوي دي؟ دا ځکه چې دا د مستقیم موقعیت په پرتله د دوه ټکو ترمینځ په آرک کې الوتنه لنډ ده.

پی ایچ پی: د عرض البلد او عرض البلد د 2 نقطو ترمنځ واټن محاسبه کړئ

په هرصورت ، دلته د دوه نقطو ترمنځ فاصله محاسبه کولو لپاره د پی ایچ پی فارمول دی (د مایل بمقابله کلومیټر تبادلې سره) دوه لسیزو ځایونو ته په جریان کې.

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: عرض البلد او عرض البلد کارولو په مایلونو کې د فاصلې محاسبې په واسطه په هر حد کې د ټولو ریکارډونو ترلاسه کول

د محاسبې ترسره کولو لپاره د SQL کارولو لپاره هم امکان شتون لري ترڅو په ځانګړي فاصله کې ټول ریکارډونه ومومئ. پدې مثال کې ، زه په MySQL کې د MyTable پوښتنې ته لاړ شم ترڅو ټول ریکارډونه ومومم چې د متغیر - فاصلو څخه لږ یا مساوي دي (په مایلونو کې) زما موقعیت ته itude عرض البلد او عرض البلد ته:

د یوه ځانګړي دننه د ټولو ریکارډونو ترلاسه کولو پوښتنه واټن د مایلونو د فاصلو په ګوته کولو سره د عرض البلد او عرض البلد د دوه نقطو ترمینځ دي:

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

تاسو به دې ته اړتیا ولرئ:

  • $ عرض البلد - دا د پی ایچ پی تغیر دی چیرې چې زه د نقطې عرض البلد څخه تیریږم.
  • عرض البلد - دا د پی ایچ پی تغیر دی چیرې چې زه د نقطې عرض البلد څخه تیریږم.
  • $ واټن - دا هغه فاصله ده چې تاسو غواړئ ټول ریکارډونه لږ یا ورته ومومئ.
  • جدول - دا میز دی ... تاسو غواړئ هغه د خپل میز نوم سره ځای په ځای کړئ.
  • طریقت - دا ستاسو د عرض البلد میدان دی.
  • عرض البلد - دا ستاسو د طول البلد میدان دی.

SQL: عرض البلد او عرض البلد په کارولو سره د کیلو میترونو کې د واټن په محاسبه کولو سره په ټولو حدودو کې د ټولو ریکارډونو ترلاسه کول

او دلته په ایس کیو ایل کې د کیلو مترو په کارولو سره د SQL پوښتنه شتون لري:

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

تاسو به دې ته اړتیا ولرئ:

  • $ عرض البلد - دا د پی ایچ پی تغیر دی چیرې چې زه د نقطې عرض البلد څخه تیریږم.
  • عرض البلد - دا د پی ایچ پی تغیر دی چیرې چې زه د نقطې عرض البلد څخه تیریږم.
  • $ واټن - دا هغه فاصله ده چې تاسو غواړئ ټول ریکارډونه لږ یا ورته ومومئ.
  • جدول - دا میز دی ... تاسو غواړئ هغه د خپل میز نوم سره ځای په ځای کړئ.
  • طریقت - دا ستاسو د عرض البلد میدان دی.
  • عرض البلد - دا ستاسو د طول البلد میدان دی.

ما دا کوډ د تصدۍ نقشه کولو په پلیټ فارم کې وکاروه چې موږ د پرچون پلورنځي لپاره په شمالي امریکا کې له 1,000 څخه ډیر ځایونو کې کارولی او دا یې په زړه پورې کار کړی.

76 ها

  1. 1

    د شریکولو لپاره ډیره مننه. دا یو اسانه کاپي او پیسټ دنده وه او عالي کار کوي. تا زما ډیر وخت وژغوره
    FYI د هر هغه چا لپاره چې سی ته لیږي:
    ډبل ډیګراډ (ډبل ډیګ) {بیرته راتګ * (2 / 3.14159265358979323846)؛ }

  2. 2

    د پوسټ کولو خورا ښکلې ټوټه - خورا ښه کار کاوه - ما یوازې د میز اوږد ځای ساتلو نوم بدل کړی و. دا کار خورا ګړندی کار کوي .. زه د لیت لینګز (<400) معقول حد اقل کوچنۍ شمیره لرم مګر زما په اند دا به په ښه توګه اندازه شي. ښه سایټ هم - ما دا یوازې زما په ډیل.آس.ای حساب کې اضافه کړی او په منظم ډول به یې وګورو.

  3. 4
  4. 5
  5. 8
  6. 10
  7. 11
  8. 12

    د دې کوډ شریکولو لپاره ډیره مننه. دا زما د پرمختګ ډیر وخت خوندي کړ. همچنان ، د خپلو لوستونکو څخه په ګوته کولو لپاره مننه کوم چې د MySQL 5.x لپاره HAVING بیان اړین دی. ډیر ګټور.

  9. 14

    پورتني فورمول زما ډیر وخت خوندي کوي. ډیره مننه.
    زه هم باید د NMEA ب formatه او درجې ترمنځ تیر کړم. ما د پا URLې په ټیټ کې پدې URL کې یو فورمول وموند. http://www.errorforum.com/knowledge-base/16273-converting-nmea-sentence-latitude-longitude-decimal-degrees.html

    ایا څوک پوهیږي چې دا څنګه تصدیق کړي؟

    مننه!
    هاري

  10. 15

    سلام،

    بله پوښتنه. ایا د NMEA تارونو لپاره فارمول د لاندې په څیر دی؟

    1342.7500 ، N ، 10052.2287 ، E

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

    مننه،
    هاري

  11. 16

    ما دا هم وموندله چې چیرې چې زما لپاره کار نه کوي. دا HAVING ته بدل شوی او هرڅه سم کار کوي. په لومړي سر کې ما نظرونه ونه لوستل او د ځړول شوي انتخاب په کارولو سره یې بیا ولیکم. دواړه به سم کار وکړي.

  12. 17

    مننه چې په سکریپټ کې لیکل شوي سکریپټ لپاره خورا ماچ دی ، یوازې یو څو کوچني سمونونه یې درلودل (HAVING) 🙂
    ډیر ښه کار

  13. 18

    په زړه پوری مرسته کونکی ، ډیره مننه! زه د "چیرته" پرځای د نوي "هویینګ" سره ستونزه لرم ، مګر یوځل چې ما دلته نظرونه ولولئ (په مایوسي = P کې زما د غاښونو شاوخوا نیم ساعت وروسته) ، ما دا ښه کار وکړ. مننه ^ _ ^

  14. 19
  15. 20

    په یاد ولرئ چې د دې په څیر یو غوره بیان به خورا په کمپیوټري لحاظ شدید وي او له همدې امله به ورو وي. که تاسو د دې پوښتنو ډیری لرئ ، نو دا کولی شي شیان په چټکۍ سره راټیټ کړي.

    یو ډیر لږ ژور چلند دا دی چې لومړی د (خام) انتخاب چلول د SQLARE ساحه کارولو سره وټاکل شي چې د محاسبې واټن لخوا ټاکل شوی وي "د بیلګې په توګه له جدول څخه" د لیت 1 او لیت 2 تر مینځ عرض البلد او د طول البلد او لین 1 تر مینځ ". لات 2 = هدف لیټیتیت - لاتډیف ، لیت 1 = ټارګټیټ + لیټف ، د لون سره ورته. لیتډف ~ = فاصله / 2 111 (کیلو میتره) ، یا فاصله / miles 69 د مایل لپاره له دې چې د عرض البلد د degree درجې ~ is~ is کیلومتره ده (له دې چې لږ توپیر له ځمکې څخه لږ خوی بلل کیږي ، مګر د دې مقصد لپاره کافي دی). لونډیف = فاصله / (عباس (کاس (ديګ 1 مراد (عرض البلد)) * 111)) - یا د مایلونو لپاره 2 (تاسو واقعیا د توپیرونو حساب ورکولو لپاره یو څه لوی مربع کولی شئ). بیا د هغې پایله واخلئ او دا په شعاعی انتخاب کې خواړه ورکړئ. یوازې هیر یې کړئ چې د حد نه بهر همغږي محاسبه کړئ - د بیلګې په توګه د منلو وړ طول طول اندازه له -111 څخه +69 ده او د منلو وړ عرضې اندازه له 180 څخه تر 180 پورې ده - که چیرې ستاسو لیتډیف یا لانډیف له دې حد څخه بهر وځی. . په یاد ولرئ چې په ډیرو مواردو کې دا ممکن نه وي ځکه چې دا یوازې د بحر څخه بحر ته د قطب څخه قطب پورې محاسبیت اغیزه کوي ، پداسې حال کې چې دا د چکوټکا او د الاسکا یوه برخه جلا کوي.

    هغه څه چې موږ یې په واسطه ترسره کوو د هغه ټکو په شمیر کې د پام وړ کموالی دی چې مقابل کې یې تاسو محاسبه کوئ. که تاسو په ډیټابیس کې یو ملیون نړیوال ټکي لرئ په مساوي ډول توزیع شوي او تاسو غواړئ په 100 کیلو میتر کې دننه لټون وکړئ ، نو ستاسو لومړی (ګړندی) لټون د 10000 مربع کیلومتره ساحه کې دی او شاید نږدې 20 پایلې ترلاسه کړي (حتی د توزیع پر بنسټ به د یو د شاوخوا 500M مربع کیلومتره ساحه ساحه) ، پدې معنی چې تاسو د دې پوښتنې لپاره د یو ملیون ځلو پرځای 20 ځله پیچلي فاصله محاسبه کوئ.

    • 21
      • 22

        عالي مشوره! زه واقعیا د یو پراختیا کونکي سره کار کوم چې یو فن لیکلی چې دننه مربع یې کش کړه او بیا یو تکراري فنکشن چې د شاوخوا شاوخوا چوکۍ رامینځته کړي ترڅو پاتې ټکي پکې شامل او خارج کړي. پایله خورا حیرانونکې ګړندۍ پایله وه - هغه کولی شي په مایکرو سیکنڈونو کې ملیونونه ټکي و ارزوي.

        زما پورته پورتنۍ لاره یقینا 'خام' خو وړ ده. مننه یوځل بیا!

        • 23

          ډګ ،

          زه هڅه کوم چې د mysql او php کارولو لپاره و ارزول شم چې ایا لات اوږد ټکی په کثیرالعمل کې دی که نه. ایا تاسو پوهیږئ که ستاسو پراختیا کونکي ملګري د دې دندې سرته رسولو څرنګوالي په اړه کوم مثالونه خپاره کړي. یا تاسو کوم ښه مثالونه پیژنئ. مخکې له مخکې مننه.

  16. 24

    ټولو ته سلام دا زما د ازموینې 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

    او مایسوکل ما ته وویل چې فاصله ، د کالم په توګه شتون نلري ، زه د دې له لارې امر کارولی شم ، زه دا د هرڅه پرته کولی شم ، او دا کار کوي ، مګر دا ورسره نه…

  17. 26

    دا عالي دی ، په هرصورت دا ورته دی لکه مرغۍ چې الوتنه کوي. دا به ښه وي چې هڅه وکړئ او پدې کې د google نقشې API شامل کړئ (ممکن د سړکونو کارول وغيره) یوازې د ټرانسپورټ مختلف ډوله کارولو سره نظر ورکړئ. زه لاهم لاهم په پی ایچ پی کې د انیلینګ انلاین کولو فعالیت ترسره کوم چې به د دې وړ وي چې د سفر پلورونکي ستونزې ستونزې مؤثره حل وړاندې کړي. مګر زه فکر کوم چې ممکن زه ستاسو د کوډ ځینې بیا د دې کولو لپاره وکاروم.

  18. 27

    سلام دوګلاس ،
    د دې مقالې لپاره ډیره مننه - تاسو یوازې ما ډیر وخت وژغوره.
    پام کوه،
    نیمروډ @ اسرایل

  19. 28

    ښه مقاله! ما ډیری مقالې وموندلې چې د دوه ټکو ترمینځ فاصله حساب کولو څرنګوالی بیانوي مګر زه واقعیا د SQL سنیپټ په لټه کې وم.

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

    په پای کې د دې پا findې موندلو لپاره 2 ورځې څیړنه چې زما ستونزه حل کوي. داسې ښکاري چې زه زما د وولفرما الفا غوره ټوټه ټوټه کوم او زما په ریاضیاتو کې برش کول. له WHERE څخه HAVING ته بدلون زما په کاري ترتیب کې سکریپټ لري. له تاسو مننه

  25. 37
    • 38

      مننه جورجي ما د کالم 'فاصله' ترلاسه کولو ته دوام ورکړ. یوځل چې زه چیرې د هویینګ لپاره بدل کړم دا د زړه راښکونکي په څیر کار کوي!

  26. 39

    کاش چې دا لومړی پا wasه وه چې ما پدې کې وموندله. د ډیری بیلابیل قوماندې هڅه کولو وروسته دا یوازینی یو و چې سم کار یې وکړ ، او زما د ډیټابیس فټ کولو لپاره لږترلږه بدلونونو سره اړین و.
    ډیره مننه!

  27. 40

    کاش چې دا لومړی پا wasه وه چې ما پدې کې وموندله. د ډیری بیلابیل قوماندې هڅه کولو وروسته دا یوازینی یو و چې سم کار یې وکړ ، او زما د ډیټابیس فټ کولو لپاره لږترلږه بدلونونو سره اړین و.
    ډیره مننه!

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

    زه پوهیږم چې دا فورمول کار کوي ، مګر زه نشم لیدلی چې چیرته د ځمکې رiusا په پام کې ونیول شي. مهرباني وکړئ څوک کولی شي ما ته روښانه کړي؟

  34. 49
  35. 50
  36. 52
  37. 53

    زه د غلط میډیسج ترلاسه کولو ته دوام ورکوم: د مای ایس کیو ایل پوښتنې کې په 'چیرې چېرته "کې د نامعلوم کالم' فاصله '.

  38. 55
  39. 56

    ډګلس ، د دې حیرانونکې کوډ څخه مننه. زما په سر کې کریک کول زما د GPS ټولنې پورټل کې دا د ترسره کولو څرنګوالی دی. تاسو ما ساعتونه خوندي کړي

  40. 58

    د دې ګټورې مقالې پوسټ کولو لپاره مننه ،  
    مګر د یو دلیل لپاره زه غواړم پوښتنه وکړم
    څنګه د mysql db دننه د کورډرونو تر مینځ فاصله ترلاسه کړئ او د کارونکي لخوا پی ایچ پی ته داخل شوي کوارډونو ته؟
    د لا روښانه وضاحت لپاره:
    1. کارونکي باید د ډی بی او د کارونکي پخپلو کورډونو څخه مشخص شوي ډاټا غوره کولو لپاره [id] داخل کړي
    2. د پی ایچ پی فایل د [ID] په کارولو سره د هدف ډاټا (کورډونه) ترلاسه کوي او بیا د کارونکي او هدف ځای ترمنځ فاصله محاسبه کوي

    یا یوازې د لاندې کوډ څخه فاصله ترلاسه کولی شئ؟

    $ قری = "انتخاب * ، ((اکووس (ګناه ((... د عرض البلد." * pi () / 180))) ګناه ((`عرض البلد * pi () / 180)) + کوس ((" $ عرض البلد. "* pi () / 180)) * کاس ((` عرض البلد * pi () / 180)) * کاس (((“. $ देशांतर.” - `देशांतर)) * pi () / 180) ))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) لکه د فاصلې څخه `MyTable` چیرې فاصله> =". $ فاصله. " >>>> ایا زه کولی شم له دې ځای څخه فاصله واخلم؟
    مننه یوځل بیا،
    ټیمي ایس

    • 59

      هیڅ فکر مه کوئ ، زه په ګوته کوم چې په پی ایچ پی کې "فنکشن" څنګه کار کوي
      $ dis = ترلاسه کړئ فاصله تر مینځ ټکي نوي
      ډیره مننه!! 

  41. 60

    سمه ده ، هرڅه چې ما هڅه کړي کار نه کوي. زما مطلب دی ، هغه څه چې زه کار لرم ، مګر لیرې پرتې دي.

    ایا یو څوک ممکن وکتل شي چې پدې کوډ کې څه غلط دي؟

    که (isset ($ _ پوسټ ['وسپارل شو'])) {$ z = $ _POST ['زپ کوډ']؛ $ r = $ _POST ['رادېس']؛ د ". $ z" لپاره پایلې $ sql = mysql_query ("د DISTINCT m.zipcode ، m.MktName ، m.LocAddSt ، m.LocAddCity ، m.LocAddState ، m.x1 ، m.y1 ، m.verified ، z1.lat ، z2.lon ، z1 غوره کړئ.) ښار ، z1.state له FrM mrk m ، zip z1 ، zip z2 WHME WH.E zipcode = z1.zipcode او z2.zipcode = $ z AND (3963 * acos (ټرنکیټ (z2.lat / 57.2958)) ګناه (م. y1 / 57.2958) + کاس (z2.lat / 57.2958) * کاس (m.y1 / 57.2958) * کاس (m.x1 / 57.2958 - z2.lon / 57.2958)، 8)) <= $ r ") یا مړ (mysql_error ()) while پداسې حال کې چې ($ قطار = mysql_fetch_array ($ sql)) {$ store1 = $ قطار ['MktName']. ""؛ $ پلورنځی = $ قطار ['LocAddSt']. ""؛ $ پلورنځی. ". $ قطار ['زپ کوډ']؛ $ عرض البلد = $ قطار ['لیټ']؛ $ طول البلد = $ قطار ['اوږد']؛ $ عرض البلد = $ قطار ['y1']؛ $ طول البلد 1 = $ قطار ['x2']؛ $ ښار = $ قطار ['ښار']؛ $ حالت = $ قطار ['حالت']؛ $ dis = getnew ($ عرض البلد 1، $ طول البلد 2، $ عرض البلد 1، $ طول البلد 1، $ واحد = 'Mi')؛ // $ ډیس = فاصله ($ لیټ 1 ، $ لون 2 ، $ لیټ 2 ، $ لون 1)؛ $ تایید شوی = $ قطار ['تصدیق شوی']؛ که ($ تایید شوی == '1') cho ایکو ""؛ د "". $ پلورنځی. "" د نانوايي "میل (s) لرې"؛ ګونګه ""؛ } بل {ګونګه "". $ پلورنځی. ""؛ د نانوايي "میل (s) لرې"؛ ګونګه ""؛ }}}

    زما د فن.پی پی پی کوډ
    فعالیت getnew ($ عرض البلد 1،، عرض البلد 1، $ عرض البلد 2، $ عرض البلد 2، $ واحد = 'Mi') {ta theta = $ عرض البلد 1 - itude طول البلد 2؛ $ فاصله = (ګناه (deg2rad ($ عرض البلد 1)) * ګناه (deg2rad ($ عرض البلد 2)) + + کاس (deg2rad ($ عرض البلد 1)) * کاس (deg2rad ($ عرض البلد 2)) کاس (deg2rad (ta theta)) )؛ $ فاصله = اکسوس ($ فاصله)؛ $ فاصله = Rad2deg ($ فاصله)؛ $ فاصله = $ فاصله * 60 * 1.1515؛ سویچ ($ واحد) {قضیه 'Mi': وقفه؛ قضیه 'کلومیټر': $ فاصله = $ فاصله * 1.609344؛ } راستنول (ګرد ((فاصله ،)))؛ }

    له تاسو څخه مننه

  42. 61
  43. 62

    اې دوګلاس ، عالي مقاله. ما ستاسو د جغرافیائی تصوراتو وضاحت او د کوډ واقعیا په زړه پوری وموند. زما یوازینۍ وړاندیز به ځای ته وي او د ښودنې لپاره کوډ داخلول (لکه د مثال په توګه سټیک اوفلو). زه پوهیږم چې تاسو د ځای محافظت کول غواړئ ، مګر د دودیز کوډ فاصله / انډینټینشن به دا زما لپاره خورا اسانه کړي ، د یو برنامه په توګه ، لوستل او تحلیل. په هرصورت ، دا یو کوچنی شی دی. لوی کار ته دوام ورکړئ.

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

    دا په ګړندۍ بریښي (mysql 5.9) په انتخاب کې د دوه ځله فارمول کارولو لپاره او چیرې:
    $ فورمول = "(((اکووس (ګناه ((... अक्षांश." * pi () / 180)) * ګناه ((`عرض البلد * pi () / 180)) + کوس ((". $ عرض البلد. " "* pi () / 180)) * کاس ((` عرض البلد * pi () / 180)) * کوس (((“. $ देशांतर.” - `देशांतर) * pi () / 180)))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) "؛
    $ sql = 'انتخاب * ،'. $ فورمول. ' لکه څنګه چې د فاصلې څخه د میز فاصله '..' فورمول. ' <= '. $ واټن؛

  51. 71
  52. 72

    د دې مقالې د ویښتو لپاره ډیره مننه. دا خورا ګټور دی.
    پی ایچ پی لومړی په لومړي سر کې د ساده سکریپټ کولو پلیټ فارم په توګه رامینځته شوی و چې "شخصي کور پا ”ه" نومیږي. نن ورځ پی ایچ پی (د هایپرټیکټ پریس پروسیسر لپاره لنډ) د مایکروسافټ د فعال سرور پا Pagesو (ASP) ټیکنالوژۍ بدیل دی.

    پی ایچ پی د خلاص سرچینې سرور اړخ ژبه ده چې د متحرک ویب پا pagesو رامینځته کولو لپاره کارول کیږي. دا په HTML کې ځای کیدلی شي. پی ایچ پی معمولا د لینکس / UNIX ویب سرورونو کې د مای ایس کیو ایل ډیټابیس سره په ترکیب کې کارول کیږي. دا شاید د سکریپینګ ترټولو مشهوره ژبه وي.

  53. 73

    ما پورته حل وموند چې سم کار نه کوي.
    زه اړتیا لرم چې لاندې ته بدلون ورکړم:

    $ کیوق = "انتخاب * ، (((اکسوس (ګناه ((.... अक्षांश." * pi () / 180)))) ګناه ((`لاټ` * pi () / 180)) + کاس ((". $ عرض البلد. "* pi () / 180)) * کوس ((` لاټي * pi () / 180)) * کاس (((". $ देशांतर." - `longt`) * pi () / 180) ))) * 180 / pi ()) * 60 * 1.1515) لکه د FROM څخه ثبت `ثبت کړئ`؛

  54. 75
  55. 76

    سلام ، مهرباني وکړئ زه به پدې برخه کې واقعیا ستاسو مرستې ته اړتیا ولرم.

    ما خپل ویب سرور ته د ترلاسه کولو غوښتنه وکړه http://localhost:8000/users/findusers/53.47792/-2.23389/20/
    53.47792 = itude عرض البلد
    -2.23389 = itude طول عرض
    او 20 = هغه فاصله چې زه یې غواړم بیرته ترلاسه کړم

    په هرصورت تاسو د فارمول په کارولو سره ، دا زما په ډی بی کې ټولې قطارونه راوباسي

    $ پایلې = DB :: وټاکئ (DB :: خام ("غوره * ، ((اکوس (ګناه ((... د عرضې... * pi () / 180))) * ګناه ((لات * pi () / 180 )) + کاس ((". $ عرض البلد." * pi () / 180)) * کوس ((لطیف * پ ((/ / 180))) کاس (((". $ देशांतर." - lng) * pi ( ) / 180)))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) لکه د فاصلې څخه د لیدونکو د فاصلې په توګه> = ". $ فاصله))؛

    [{"id": 1 ، "نوم": "فرینکي جاني او Luigo Too" ، "پته": "939 W ال کیمینو رییل ، ​​د غره لید ، CA" ، "لیټ": 37.386337280273 ، "lng": - 122.08582305908 ، "فاصله": 16079.294719663} ، {"id": 2 ، "نوم": "د امیسي ختیځ ساحل پیزریا" ، "پته": "790 کاسټرو سټ ، ماونټین ویو ، CA" ، "لیټ": 37.387138366699 ، "لینګ": -122.08323669434 ، "فاصله": 16079.175940152} ، {"id": 3 ، "نوم": "کاپز پیزا بار او گرل" ، "پته": "191 کاسټرو سټ ، ماونټین ویو ، CA" ، "لیټ": 37.393886566162 ، "lng": - 122.07891845703 ، "فاصله": 16078.381373826} ، {"id": 4 ، "نوم": "ګردي میز پیزا: د غره لید" ، "پته": "570 N Shoreline Blvd ، د ماین لید ، CA" ، "لیټ": 37.402652740479 ، "lng": - 122.07935333252 ، "فاصله": 16077.420540582} ، {"id": 5 ، "نوم": "ټوني او البا پیزا او پاستا" ، "پته": "619 یسکیلا اوی ، غر وګورئ ، CA "،" لات ": 37.394012451172 ،" lng ": - 122.09552764893 ،" فاصله ": 16078.563225154} ، {" id ": 6 ،" نوم ":" اوریګانو د لرګي رنګه پیزا "،" پته ":" 4546 ایل کیمینو ریال ، لاس آلټوس ، سي ای "،" لات ": 37.401725769043 ،" لینګ ": - 122.11464691162 ،" فاصله ": 16077.937560795} ، {" id ": 7 ،" نوم ":" بارونه او گرزونه "،" پته ":" 24 واټلی سړک ، مانچسټر "،" لات ": 53.485118865967 ،" لینګ ": - 2.1828699111938 ،" فاصله ": 8038.7620112314}]

    زه غواړم یوازې د 20 مایلونو سره قطارونه ترلاسه کړم مګر دا ټول قطارونه راوړي. مهرباني وکړئ زه څه کوم

ته څه فکر کوی؟

دا سایټ د سپیم کمولو لپاره Akismet کاروي. زده کړئ چې ستاسو د تبصرې ډاټا پراساس پروسس کیږي.