Haversine فارمولہ (PHP، Python، MySQL، MSSQL مثالیں) کا استعمال کرتے ہوئے عرض بلد اور طول البلد کے درمیان عظیم دائرے کے فاصلے کا حساب لگائیں یا استفسار کریں۔

Haversine فارمولا - عظیم دائرہ فاصلہ - PHP، Python، MySQL

اس ماہ میں GIS کے حوالے سے پی ایچ پی اور ایس کیو ایل میں تھوڑا سا پروگرامنگ کر رہا ہوں۔ جال کے گرد گھومتے ہوئے ، مجھے واقعی میں سے کچھ تلاش کرنے میں سخت مشکل پیش آتی تھی جغرافیائی حساب تاکہ دو مقامات کے مابین فاصلہ تلاش کیا جا I تاکہ میں ان کو یہاں بانٹنا چاہتا ہوں۔

فلائٹ میپ یورپ جس میں سرکل کا فاصلہ ہے

مثلث (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)); 
}

متغیرات یہ ہیں:

  • $Latitude1 - آپ کے پہلے مقام کے عرض بلد کے لیے ایک متغیر۔
  • $Longitude1 - آپ کے پہلے مقام کے طول البلد کے لیے ایک متغیر
  • $Latitude2 - آپ کے دوسرے مقام کے عرض بلد کے لیے ایک متغیر۔
  • $Longitude2 - آپ کے دوسرے مقام کے طول البلد کے لیے ایک متغیر۔
  • $یونٹ - پہلے سے طے شدہ وجود میل. اس کو اپ ڈیٹ یا پاس کیا جا سکتا ہے۔ کلومیٹر.

ازگر: عرض البلد اور طول البلد کے 2 پوائنٹس کے درمیان فاصلے کا حساب لگائیں۔

بہر حال، یہاں دو پوائنٹس کے درمیان فاصلہ (مائل بمقابلہ کلومیٹر کی تبدیلی کے ساتھ) کو دو اعشاریہ جگہوں پر گول کر کے حساب کرنے کا ازگر کا فارمولا ہے۔ میرے بیٹے بل کر کو کریڈٹ جو ڈیٹا سائنسدان ہے۔ OpenINSIGHTS، کوڈ کے لیے۔

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)

متغیرات یہ ہیں:

  • عرض البلد 1۔ - آپ کے پہلے مقام کے لیے ایک متغیر طول بلد.
  • طول البلد 1 - آپ کے پہلے مقام کے لیے ایک متغیر طول البلد
  • عرض البلد 2۔ - آپ کے دوسرے مقام کے لیے ایک متغیر طول بلد.
  • طول البلد 2 - آپ کے دوسرے مقام کے لیے ایک متغیر طول البلد.
  • یونٹ - پہلے سے طے شدہ وجود میل. اس کو اپ ڈیٹ یا پاس کیا جا سکتا ہے۔ کلومیٹر.

MySQL: عرض البلد اور طول البلد کا استعمال کرتے ہوئے میلوں میں فاصلے کا حساب لگا کر ایک رینج کے اندر تمام ریکارڈز کو بازیافت کرنا

ایک خاص فاصلے کے اندر تمام ریکارڈ تلاش کرنے کے لئے حساب کتاب کرنے کے لئے SQL کا استعمال بھی ممکن ہے۔ اس مثال کے طور پر ، میں MySQL میں MyTable سے استفسار کرنے جا رہا ہوں تاکہ وہ تمام ریکارڈ تلاش کریں جو متغیر $ فاصلہ (میل میں) سے location عرض البلد اور 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."

آپ کو اس کی تخصیص کرنے کی ضرورت ہوگی۔

  • itude طول البلد - یہ ایک پی ایچ پی متغیر ہے جہاں میں نقطہ طول البلد سے گزر رہا ہوں۔
  • itude عرض البلد - یہ ایک پی ایچ پی متغیر ہے جہاں میں نقطہ طول البلد سے گزر رہا ہوں۔
  • $ فاصلہ - یہ وہ فاصلہ ہے جہاں آپ تمام ریکارڈ کم یا مساوی تلاش کرنا چاہیں گے۔
  • ٹیبل - یہ ٹیبل ہے… آپ اسے اپنے ٹیبل کے نام سے تبدیل کرنا چاہیں گے۔
  • طول بلد - یہ آپ کے عرض بلد کا میدان ہے۔
  • طول البلد - یہ آپ کے طول البلد کا میدان ہے۔

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

آپ کو اس کی تخصیص کرنے کی ضرورت ہوگی۔

  • itude طول البلد - یہ ایک پی ایچ پی متغیر ہے جہاں میں نقطہ طول البلد سے گزر رہا ہوں۔
  • itude عرض البلد - یہ ایک پی ایچ پی متغیر ہے جہاں میں نقطہ طول البلد سے گزر رہا ہوں۔
  • $ فاصلہ - یہ وہ فاصلہ ہے جہاں آپ تمام ریکارڈ کم یا مساوی تلاش کرنا چاہیں گے۔
  • ٹیبل - یہ ٹیبل ہے… آپ اسے اپنے ٹیبل کے نام سے تبدیل کرنا چاہیں گے۔
  • طول بلد - یہ آپ کے عرض بلد کا میدان ہے۔
  • طول البلد - یہ آپ کے طول البلد کا میدان ہے۔

میں نے اس کوڈ کو انٹرپرائز میپنگ پلیٹ فارم میں استعمال کیا جس کا استعمال ہم نے پورے امریکہ میں ایک ہزار سے زیادہ مقامات پر مشتمل ایک خوردہ اسٹور کے لئے کیا اور اس نے خوبصورتی سے کام کیا۔

Microsoft SQL سرور جغرافیائی فاصلہ: STDistance

اگر آپ مائیکروسافٹ ایس کیو ایل سرور استعمال کر رہے ہیں، تو وہ اپنا فنکشن پیش کرتے ہیں، STD فاصلہ جغرافیہ ڈیٹا کی قسم کا استعمال کرتے ہوئے دو پوائنٹس کے درمیان فاصلے کا حساب لگانے کے لیے۔

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

منش ساہو، وی پی اور آرکیٹیکٹ کو ہیٹ ٹپ Highbridge.

۰ تبصرے

  1. 1

    شیئر کرنے کے لئے بہت بہت شکریہ. یہ ایک آسان کاپی اور پیسٹ کام تھا اور بہت اچھا کام کرتا ہے۔ آپ نے مجھے بہت وقت بچایا ہے۔
    سی کو بندرگاہ رکھنے والے ہر شخص کے لئے ایف وائی آئ:
    ڈبل ڈگ 2 پار (ڈبل ڈگ) {ریٹرن ڈگ * (3.14159265358979323846 / 180.0)؛ }

  2. 2

    پوسٹنگ کا بہت عمدہ ٹکڑا - بہت عمدہ کام کیا - مجھے صرف اس میز کا نام تبدیل کرنا پڑا جس میں طویل عرصے تک حامل تھا۔ یہ بہت تیزی سے کام کرتا ہے .. میرے پاس متوسط ​​طور پر تھوڑی دیر کی لمبائی (<400) ہے لیکن مجھے لگتا ہے کہ اس کی پیمائش اچھی طرح ہوگی۔ اچھی سائٹ بھی۔ میں نے ابھی اسے اپنے del.icio.us اکاؤنٹ میں شامل کیا ہے اور باقاعدگی سے اس کی جانچ پڑتال کروں گا۔

  3. 4
  4. 5

    میں نے سارا دن فاصلے کے حساب کتاب کے لئے تلاش کیا اور ہاروریسن الگورتھم پایا ، مثال کے طور پر اس کو ایک مربع بیان میں رکھنے کے لئے آپ کا شکریہ۔ ڈینیل ، شکریہ اور سلام

  5. 8

    مجھے لگتا ہے کہ آپ کے ایس کیو ایل کو بیان دینے کی ضرورت ہے۔
    جہاں آپ کو ضرورت ہو گی فاصلہ <= $ کے فاصلے کے بجائے
    HAVING فاصلہ <= $ فاصلہ استعمال کریں

    بصورت دیگر مجھے وقت اور توانائی کی بچت کرنے کا شکریہ۔

    • 9

      ہیلو ڈیوڈ ،

      اگر آپ بیان کے ذریعہ کسی بھی قسم کے گروپ کر رہے ہیں تو ، آپ کو ضرورت ہوگی۔ میں مندرجہ بالا مثال میں یہ نہیں کر رہا ہوں۔

      ڈوگ

  6. 10
  7. 11
  8. 12

    اس کوڈ کو بانٹنے کے لئے بہت بہت شکریہ۔ اس نے مجھے ترقی کا بہت وقت بچایا۔ نیز ، آپ کے قارئین کا شکریہ کہ اس کی نشاندہی کرنے کے لئے کہ ایس کیو ایل 5.x کے لئے ایک ہیونگ بیان ضروری ہے۔ بہت مددگار.

  9. 14

    مذکورہ فارمولہ مجھے بہت وقت بچا رہا ہے۔ بہت بہت شکریہ.
    مجھے NMEA فارمیٹ اور ڈگری کے مابین بھی جانا ہے۔ مجھے صفحے کے نیچے اس 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

    میں نے یہ بھی پایا کہ جہاں میرے لئے کام نہیں کیا۔ اس کو تبدیل کر دیا گیا اور ہر چیز بہترین کام کرتی ہے۔ پہلے تو میں نے تبصرے نہیں پڑھے اور نیسٹڈ سلیکٹ کا استعمال کرکے اسے دوبارہ لکھا۔ دونوں ٹھیک ٹھیک کام کریں گے۔

  12. 17

    آپ کا شکریہ کہ اس کی اسکرپٹ کے لئے بہت اچھ mی بات ہے جس میں ایس کیو ایل میں لکھا گیا تھا ، ابھی کچھ معمولی سی ایڈجسٹمنٹ کرنا پڑیں (ہو رہی ہے) 🙂
    بہت اچھا کام

  13. 18

    حیرت انگیز مددگار ، آپ کا بہت بہت شکریہ! مجھے "جہاں" کے بجائے نئے "ہاؤنگ" کے ساتھ کچھ پریشانی ہو رہی تھی ، لیکن ایک بار جب میں نے یہاں تبصرے پڑھے (مایوسی کے عالم میں دانت پیسنے کے تقریبا half آدھے گھنٹے کے بعد) ، تو میں اسے اچھی طرح سے کام کرنے میں کامیاب ہوگیا۔ آپ کا شکریہ ^ _ ^

  14. 19
  15. 20

    دھیان میں رکھیں کہ اس طرح کا ایک منتخب بیان بہت کمپیوٹیشنل شدید ہوگا لہذا اس کی رفتار سست ہوگی۔ اگر آپ کے پاس بہت سارے سوالات ہیں تو ، یہ چیزوں کو کافی تیزی سے پھسل سکتا ہے۔

    بہت کم شدید نقطہ نظر کے لئے ایک پہلا (خام) منتخب کرنا اسکوائر ایریا کا استعمال کرتے ہوئے منتخب کرنا ہے جس کا حساب کتاب سے فاصلہ ہوتا ہے یعنی "ٹیبل نام سے منتخب کریں * جہاں عرض البلد اور لات 1 کے درمیان طول البلد اور لمبائی اور لمبائی کے درمیان طول البلد"۔ لیت 2 = ٹارگیٹ لٹیڈ - لٹڈف ، لٹ 1 ، ٹارگٹ لٹ + لیٹف ، اسی طرح لون۔ لیتڈف ~ = فاصلہ / 2 (کلومیٹر کے لئے) ، یا فاصلہ / 1 میل کے فاصلے کے بعد طول البلد کی 2 ڈگری ~ 111 کلومیٹر ہے (اس وجہ سے زمین میں تھوڑا سا تغیر ہے ، لیکن اس مقصد کے لئے کافی ہے)۔ لنڈف = فاصلہ / (عباس (کوسو (ڈگ 69 پار (لیتھاد)) * 1)) - یا میل کے فاصلے پر 111 (مختلف حالتوں میں محاسبہ کرنے کے ل you آپ واقعی میں تھوڑا سا بڑا چوک لے سکتے ہیں)۔ پھر اس کا نتیجہ لیں اور اسے ریڈیل سلیک میں کھلا دیں۔ بس حدود سے باہر کے نقاط کا محاسبہ کرنا نہ بھولیں - یعنی قابل قبول طول البلد کی حد -2 سے +111 ہے اور قابل قبول طول البلد کی حد -69 سے +180 ہے - اگر آپ کے لیٹڈف یا لنڈف اس حد سے باہر چل پائیں تو . نوٹ کریں کہ زیادہ تر معاملات میں اس کا اطلاق ممکن نہیں ہے کیونکہ یہ قطب سے قطب تک بحر الکاہل کے ایک خط سے زیادہ کے حساب کو متاثر کرتا ہے ، حالانکہ اس سے چکوٹکا کا کچھ حصہ اور الاسکا کا کچھ حصہ مل جاتا ہے۔

    اس کے ذریعہ ہم جو کچھ انجام دیتے ہیں وہ ان نکات کی تعداد میں ایک نمایاں کمی ہے جس کے خلاف آپ یہ حساب کتاب کرتے ہیں۔ اگر آپ کے پاس ڈیٹا بیس میں دس لاکھ عالمی پوائنٹس ہیں جو آپ کو یکساں طور پر یکساں طور پر تقسیم کیا گیا ہے اور آپ 100 کلومیٹر کے فاصلے پر تلاش کرنا چاہتے ہیں تو آپ کی پہلی (تیز) تلاش 10000 مربع کلومیٹر کے علاقے کی ہوگی اور ممکنہ طور پر 20 نتائج برآمد ہوں گے۔ سطح کا رقبہ لگ بھگ 500M مربع کلومیٹر) ، جس کا مطلب ہے کہ آپ اس استفسار کے ل the پیچیدہ فاصلے کا حساب دس لاکھ بار کی بجائے 20 مرتبہ چلائیں۔

    • 21

      مثال کے طور پر معمولی غلطی… جو 50 کلومیٹر (100 نہیں) کے اندر ہوگی کیونکہ ہم اپنے… مربع کے ”رداس“ کو دیکھ رہے ہیں۔

      • 22

        لاجواب مشورہ! میں نے اصل میں ایک ڈویلپر کے ساتھ کام کیا جس نے ایک فنکشن لکھا جس نے اندر کا مربع کھینچ لیا اور پھر ایک بار بار چلنے والی فنکشن جس نے باقی پوائنٹس کو شامل کرنے اور خارج کرنے کے لئے فریم کے گرد 'چوکوں' بنائے۔ نتیجہ ایک حیرت انگیز طور پر تیز رفتار نتیجہ تھا - وہ مائیکرو سیکنڈ میں لاکھوں پوائنٹس کا اندازہ کرسکتا ہے۔

        میرا مندرجہ بالا انداز یقینا '' خام 'ہے لیکن قابل ہے۔ دوبارہ شکریہ!

        • 23

          ڈوگ ،

          میں اس کی تشخیص کرنے کے لئے ایس کیو ایل اور پی ایچ پی کو استعمال کرنے کی کوشش کر رہا ہوں کہ آیا کوئی لمبائی نقطہ کثیرالاضحی کے اندر ہے یا نہیں۔ کیا آپ جانتے ہیں کہ اگر آپ کے ڈویلپر دوست نے اس کام کو کس طرح انجام دینے کے بارے میں کوئی مثالوں شائع کی ہے۔ یا آپ کو کوئی اچھی مثال معلوم ہے۔ پیشگی شکریہ.

  16. 24

    سب کو ہیلو یہ میرا ٹیسٹ ایس کیو ایل کا بیان ہے۔

    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

    یہ بہت اچھا ہے ، تاہم یہ بالکل اسی طرح ہے جیسے پرندے اڑتے ہیں۔ گوگل نقشہ جات API کو کسی نہ کسی طرح شامل کرنے کی کوشش کرنا (اور شاید سڑکیں وغیرہ استعمال کرنا) بہت اچھا ہوگا۔ صرف نقل و حمل کی ایک مختلف شکل کا استعمال کرتے ہوئے ایک نظریہ پیش کرنے کے لئے۔ مجھے ابھی بھی پی ایچ پی میں انلیل انلیئل فنکشنل کرنا باقی ہے جو ٹریول سیلزمین کی ٹریولنگ کا مسئلہ موثر حل پیش کرسکیں گے۔ لیکن مجھے لگتا ہے کہ ایسا کرنے کے ل I میں آپ کے کوڈ میں سے کچھ کو دوبارہ استعمال کرنے کے قابل ہوسکتا ہوں۔

  18. 27

    ہیلو ڈگلس ،
    اس مضمون کے لئے آپ کا بہت بہت شکریہ - آپ نے مجھے بہت وقت بچایا۔
    اپنا خیال رکھنا،
    نیمروڈ @ اسرایل

  19. 28

    اچھا مضمون! مجھے بہت سارے مضامین ملے جن میں یہ بیان کیا گیا تھا کہ دو نکات کے مابین فاصلے کا حساب کتاب کیا جائے لیکن میں واقعی میں ایس کیو ایل کے ٹکڑوں کی تلاش کر رہا تھا۔

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

    2 دن کی تحقیق کے آخر میں اس صفحے کو تلاش کریں جو میری پریشانی کو حل کرتا ہے۔ ایسا لگتا ہے کہ میں اپنے وولفرمالفھا کو بہتر انداز میں ڈھونڈتا ہوں اور اپنی ریاضی میں برش کرتا ہوں۔ ورکنگ آرڈر کے سلسلے میں WHEE سے HAVING میں تبدیل کرنے کا اسکرپٹ ہے۔ شکریہ

  25. 37
    • 38

      شکریہ جارجی مجھے کالم ملتا رہا 'فاصلہ' نہیں ملا۔ ایک بار جب میں WHEE کو تبدیل کر رہا ہوں تو اس نے ایک دلکش کی طرح کام کیا!

  26. 39

    کاش یہ پہلا صفحہ تھا جس پر میں اسے تلاش کرتا ہوں۔ بہت سے مختلف کمانڈوں کو آزمانے کے بعد یہ صرف ایک ہی تھا تاکہ صحیح طریقے سے کام کیا جاسکے ، اور میرے اپنے ڈیٹا بیس کو فٹ ہونے کے لئے کم سے کم تبدیلیاں درکار ہوں۔
    بہت بہت شکریہ!

  27. 40

    کاش یہ پہلا صفحہ تھا جس پر میں اسے تلاش کرتا ہوں۔ بہت سے مختلف کمانڈوں کو آزمانے کے بعد یہ صرف ایک ہی تھا تاکہ صحیح طریقے سے کام کیا جاسکے ، اور میرے اپنے ڈیٹا بیس کو فٹ ہونے کے لئے کم سے کم تبدیلیاں درکار ہوں۔
    بہت بہت شکریہ!

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

    میں جانتا ہوں کہ یہ فارمولا کام کرتا ہے ، لیکن میں نہیں دیکھ سکتا کہ زمین کے رداس کو کہاں لیا جاتا ہے۔ کیا کوئی مجھے روشن کر سکتا ہے؟

  34. 49
  35. 50
  36. 52

    آپ کا شکریہ ڈگلس ، ایس کیو ایل سوال بالکل وہی ہے جس کی مجھے ضرورت ہے ، اور میں نے سوچا کہ مجھے یہ خود لکھنا پڑے گا۔ آپ نے ممکنہ طور پر طول بلد طولانی سیکھنے کے منحنی خطوط سے مجھے بچایا ہے!

  37. 53
    • 54
  38. 55
  39. 56

    ڈگلس ، اس حیرت انگیز کوڈ کے لئے آپ کا شکریہ۔ میرے جی پی ایس کمیونٹی پورٹل پر یہ کیسے کریں اس کے بارے میں میرے سر کو پھاڑ رہے ہیں۔ آپ نے میرے اوقات بچائے ہیں۔

  40. 58

    اس مددگار مضمون کو پوسٹ کرنے کا شکریہ ،  
    لیکن کسی وجہ سے میں پوچھنا چاہتا ہوں
    صارف کے ذریعہ پی ایچ پی میں داخل ہونے والے کورڈ کور کے درمیان کورڈ کے درمیان فاصلہ کیسے حاصل کیا جا؟؟
    مزید واضح طور پر بیان کرنے کے لئے:
    1. صارف اور خود صارف کے نقاط سے مخصوص ڈیٹا منتخب کرنے کے لئے صارف کو [ID] داخل کرنا ہوگا
    2. پی ایچ پی فائل کو [ID] کا استعمال کرتے ہوئے ہدف کا ڈیٹا (کورڈ) مل جاتا ہے اور پھر صارف اور ہدف نقطہ کے مابین فاصلے کا حساب لگاتا ہے

    یا صرف نیچے دیے گئے کوڈ سے فاصلہ حاصل کرسکتے ہیں؟

    ry کیری = "منتخب کریں * ، ((ایکوس (گناہ ((... طول بلد." * pi () / 180)) * گناہ ((`عرض البلد * pi () / 180)) + کاس ((“۔ $ عرض البلد۔ "* pi () / 180)) * ((` عرض البلد * pi () / 180)) * کاس (((“.. देशांतर.” - - देशांतर)) * pi () / 180) ))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) جیسے فاصلہ `MyTable` جہاں سے فاصلہ> =". $ فاصلہ۔ " >>>> کیا میں یہاں سے فاصلہ نکال سکتا ہوں؟
    دوبارہ شکریہ،
    ٹمی ایس

    • 59

      کوئی اعتراض نہیں ، مجھے اندازہ ہوگیا ہے کہ پی ایچ پی میں "فنکشن" کیسے کام کرتا ہے
      = dis = getDistanceBetweenPPointNww ($ صارفلیٹی ، $ صارف لونگی ، $ لاٹی ، $ لانگھی ، $ یونٹ = 'کلومیٹر)
      بہت شکریہ!! 

  41. 60

    ٹھیک ہے ، میں نے جو بھی کوشش کی ہے وہ کام نہیں کررہی ہے۔ میرا مطلب ہے ، میرے پاس کیا کام ہے ، لیکن دوریاں دور ہیں۔

    کوئی بھی ممکنہ طور پر دیکھ سکتا ہے کہ اس کوڈ میں کیا غلط ہے؟

    اگر (isset ($ _ POST ['عرض کردہ'])) {$ z = $ _POST ['زپ کوڈ']؛ $ r = $ _POST ['رداس']؛ گونج “کے لئے نتائج“. $ z؛ $ sql = mysql_query ("SEST DISTINCT m.zipcode، m.MktName، m.LocAddSt، m.LocAddity، m.LocAddState، m.x1، m.y1، m.verified، z1.lat، z2.lon، z1. شہر ، z1.state سے Mrk m ، زپ z1 ، زپ z2 WHME Z.cip = z1.zipcode اور z2.zipcode = $ z AND (3963 * acos (truncate (گناہ (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 ") یا مرنا (mysql_error ())؛ جبکہ ($ قطار = mysql_fetch_array ($ sql)) {$ store1 = $ قطار ['MktName']. ""؛ $ store = $ قطار ['LocAddSt' ']۔ ""؛ $ اسٹور. = $ قطار ['لوک ایڈڈ سٹیٹی']۔ "،". $ قطار ['لوک ایڈسٹیٹ']۔ " ". $ قطار ['زپ کوڈ']؛ itude عرض البلد 1 = $ صف ['لیٹ']؛ itude طول البلد 1 = $ قطار ['لون']؛ $ عرض البلد = = $ قطار ['y2']؛ $ طول البلد 1 = $ قطار ['x2']؛ $ شہر = $ قطار ['شہر']؛ $ حالت = $ صف ['ریاست']؛ $ dis = getnew ($ عرض البلد 1 ، $ طول البلد 1 ، $ عرض البلد 1 ، $ طول البلد 2 ، $ یونٹ = 'ایم آئی')؛ // $ ڈس = فاصلہ ($ لیٹ 2 ، $ لون 1 ، $ لیٹ 1 ، $ لون 2)؛ $ تصدیق شدہ = $ قطار ['تصدیق شدہ']؛ اگر (ified تصدیق شدہ == '2') {گونج “”؛ گونج "". $ اسٹور. ""؛ گونج $ ڈس. "میل (s) دور"؛ گونج ""؛ } دوسری {گونج ""۔ $ اسٹور۔ ""؛ گونج $ ڈس. "میل (s) دور"؛ گونج ""؛ }}}

    میرے فنکشنز۔ پی پی پی کوڈ
    فنکشن getnew (itude عرض البلد 1 ، $ طول البلد 1 ، $ عرض البلد 2 ، $ طول البلد 2 ، $ یونٹ = 'ایم آئی) {ta تھیٹا = $ طول البلد 1 - $ طول البلد 2؛ $ فاصلہ = (گناہ (ڈگری 2 ڈگری (1 عرض البلد 2)) * گناہ (ڈگ 2 پار ($ عرض البلد 2)) + (کاس (ڈگ 1 پار ($ لیٹ شیڈ 2)) * کوس (ڈگ 2 پار ($ لیٹ بلڈ 2)) کوس (ڈگ 2 پار ($ تھیٹا)) )؛ $ فاصلہ = ایکوس ($ فاصلہ)؛ $ فاصلہ = Rad60deg ($ فاصلہ)؛ $ فاصلہ = $ فاصلہ * 1.1515 * 1.609344؛ سوئچ ($ یونٹ) {کیس 'ایم آئی': بریک؛ کیس 'کلومیٹر': $ فاصلہ = $ فاصلہ * 2؛ } واپسی (راؤنڈ ($ فاصلہ ، XNUMX))؛ }

    پہلے سے شکریہ

  42. 61
  43. 62

    ارے ڈگلس ، بہت اچھا مضمون۔ مجھے آپ کی جغرافیائی تصورات اور کوڈ کو واقعی دلچسپ معلوم ہوا۔ میری صرف ایک تجویز جگہ اور ڈسپلے کے لئے کوڈ (جیسے اسٹیک اوور فلو ، جیسے مثال کے طور پر) کو دی جائے گی۔ میں سمجھتا ہوں کہ آپ جگہ کا تحفظ کرنا چاہتے ہیں ، لیکن روایتی کوڈ کی جگہ / انڈینٹیشن ایک پروگرامر کی حیثیت سے میرے لئے پڑھنے اور انقطاع کرنا بہت آسان کردے گا۔ بہرحال ، یہ ایک چھوٹی سی چیز ہے۔ بہت بڑا کام جاری رکھیں۔

    • 63

      شکریہ! میں نے پوسٹ کو تھوڑا سا تبدیل کیا ہے… لیکن مساوات نے اتنا کمرا لیا ہے اور اتنا لمبا ہے کہ مجھے یقین نہیں ہے کہ اس سے بہت زیادہ مدد ملتی ہے۔

  44. 64
  45. 65

    یہاں فنکشن کے ساتھ استعمال کرتے ہوئے ہمیں ایک قسم کا فاصلہ مل رہا ہے ۔اس دوران استفسار کرتے ہوئے اس کی دوسری قسم کا فاصلہ بھی دستیاب ہے

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

    انتخاب میں اور جہاں دو بار فارمولہ استعمال کرنا تیز ہے (ایس کیو ایل 5.9) لگتا ہے۔
    $ فارمولہ = "(((اکوس (گناہ ((... طول بلد." * پائی () / 180)))) گناہ ((`عرض البلد * پائ () / 180)) کوس ((". $ عرض البلد) "* pi () / 180)) * کاس ((` عرض البلد * pi () / 180)) * (((“. $ देशांतर.” - `देशांतर`) * pi () / 180)))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) "؛
    $ sql = 'منتخب کریں' ، '. $ فارمولا۔' جہاں تک فاصلہ جدول سے ٹیبل '.. $ فارمولہ'۔ <= '. $ فاصلہ؛

  51. 71
  52. 72

    اس مضمون کی قینچ کا بہت بہت شکریہ۔ یہ بہت مدد گار ہے۔
    پی ایچ پی کو پہلے ایک سادہ سکرپٹ پلیٹ فارم کے طور پر بنایا گیا تھا جسے "پرسنل ہوم پیج" کہتے ہیں۔ آج کل پی ایچ پی (ہائپر ٹیکسٹ پری پروسیسر کے لئے مختصر) مائیکروسافٹ کی ایکٹو سرور پیجز (اے ایس پی) ٹکنالوجی کا متبادل ہے۔

    پی ایچ پی ایک اوپن سورس سرور سائیڈ لینگوئج ہے جو متحرک ویب صفحات بنانے کے لئے استعمال ہوتی ہے۔ یہ HTML میں سرایت کر سکتا ہے۔ پی ایچ پی عام طور پر لینکس / یونکس ویب سرورز پر مائ ایس کیو ایل ڈیٹا بیس کے ساتھ مل کر استعمال ہوتا ہے۔ یہ غالبا. سب سے زیادہ مقبول اسکرپٹ زبان ہے۔

  53. 73

    میں نے اوپر حل تلاش کیا کہ مناسب طریقے سے کام نہیں کررہا ہے۔
    مجھے اس میں تبدیل کرنے کی ضرورت ہے:

    $ کیوقق = "منتخب کریں * ، ((ایکوس (گناہ ((... طول بلد." * پائی () / 180))) * گناہ ((`لاٹ` * پائ () / 180)) + کوس ((" "۔ itude عرض البلد۔ "* pi () / 180)) * کاس ((` لاٹ * * ((/ / 180))) * کاس (((". $ طول بلد۔"۔ ))) * 180 / pi ()) * 180 * 60) بطور فاصلہ `رجسٹر`؛

  54. 75

    آپ کا شکریہ جناب آپ نے مکمل طور پر wroking .. لیکن مجھے ایک سوال ہے اگر میں بغیر کسی دشمنی نقطہ کے آؤٹ پٹ کرنا چاہتا ہوں تو میں کیا کرسکتا ہوں ..؟

    پیشگی شکریہ.

  55. 76

    ہیلو ، براہ کرم مجھے اس پر واقعتا آپ کی مدد کی ضرورت ہوگی۔

    میں نے اپنے ویب سرور سے حاصل کی درخواست کی http://localhost:8000/users/findusers/53.47792/-2.23389/20/
    53.47792 = itude عرض البلد
    -2.23389 = itude طول البلد
    اور 20 = میں جس فاصلہ کو بازیافت کرنا چاہتا ہوں

    تاہم آپ کو فارمولا استعمال کرتے ہوئے ، یہ میرے DB میں موجود تمام قطاریں بازیافت کرتا ہے

    $ نتائج = DB :: منتخب کریں (DB :: Raw (“منتخب کریں *، ((اکوس (گناہ ((.... अक्षांश.” * pi () / 180))) * گناہ ((لات * pi () / 180 )) + کوس ((". $ عرض البلد." * پائی () / 180)) * کوس ((لات * پائی () / 180)) * کاس (((". $ देशांतर." - lng) * pi ( ) / 180)))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) فاصلوں سے فاصلہ مارکر سے فاصلہ> = ". $ فاصلہ))؛

    [{"شناخت": 1 ، "نام": "فرینکی جانی اور لوئیگو تو" ، "پتہ": "939 ڈبلیو ال کیمینو ریئل ، ماؤنٹین ویو ، سی اے" ، "لیٹ": 37.386337280273 ، "lng": - 122.08582305908 ، "فاصلہ": 16079.294719663} ، {"id": 2 ، "نام": "امیسی کا ایسٹ کوسٹ پیزیریہ" ، "پتہ": "790 کاسترو سینٹ ، ماؤنٹین ویو ، CA" ، "لیٹ": 37.387138366699 ، "lng": -122.08323669434، "فاصلہ": 16079.175940152} ، {"id": 3 ، "نام": "کاپس پیزا بار اینڈ گرل" ، "پتہ": "191 کاسترو سینٹ ، ماؤنٹین ویو ، CA" ، "لیٹ": 37.393886566162 ، "lng": - 122.07891845703، "فاصلہ": 16078.381373826}، {"id": 4، "name": "گول ٹیبل پزا: ماؤنٹین ویو" ، "ایڈریس": "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،" name ":" سلاخوں اور گرلز "،" پتہ ":" 24 وائٹلی اسٹریٹ ، مانچسٹر "،" لیٹ ": 53.485118865967 ،" lng ": - 2.1828699111938 ،" فاصلہ ": 8038.7620112314}]

    میں 20 میل کے ساتھ صرف قطاریں بازیافت کرنا چاہتا ہوں لیکن اس سے تمام قطاریں لائی گئیں۔ براہ کرم میں کیا غلط کر رہا ہوں

  56. 77

    میں اسی طرح کے سوال کی تلاش کر رہا ہوں لیکن تھوڑا سا آگے بڑھا - مختصر طور پر یہ ہے کہ تمام کوآرڈینیٹ کو ہر کوآرڈینیٹ کے 2 میل کے اندر گروپ کریں اور پھر گنیں کہ ہر گروپ میں کتنے کوآرڈینیٹ ہیں اور صرف ایک گروپ کو آؤٹ پٹ کریں جس میں سب سے زیادہ کوآرڈینیٹ ہوں - چاہے آپ کے گروپوں میں ایک سے زیادہ گروہ ہیں جن میں زیادہ سے زیادہ کوآرڈینیٹ ہیں - صرف ایک ہی بڑی تعداد والے گروپوں سے بے ترتیب گروپ نکالیں -

آپ کا کیا خیال ہے؟

سپیم کو کم کرنے کے لئے یہ سائٹ اکزمیت کا استعمال کرتا ہے. جانیں کہ آپ کا تبصرہ کس طرح عملدرآمد ہے.