CRM နှင့်ဒေတာပလက်ဖောင်းAnalytics & စမ်းသပ်ခြင်းစျေးကွက်ရှာဖွေရေးကိရိယာများ

Haversine ဖော်မြူလာ (PHP၊ Python၊ MySQL၊ MSSQL ဥပမာများ) ကို အသုံးပြု၍ လတ္တီတွဒ်နှင့် လောင်ဂျီတွဒ်တို့အကြား ကြီးမားသော စက်ဝိုင်းအကွာအဝေးကို တွက်ချက်ပါ

ယခုလတွင်ငါ GIS နှင့် ပတ်သက်၍ PHP နှင့် MySQL တွင်အတော်လေးပရိုဂရမ်ရေးသားခဲ့သည်။ ပိုက်ကွန်ကိုလှည့်ပတ်ကြည့်ရှုခြင်းအားဖြင့်၊ ပထဝီဝင်တွက်ချက်မှုများ နေရာနှစ်ခုအကြားအကွာအဝေးကိုရှာဖို့ဒီတော့ငါသူတို့ကိုဒီမှာမျှဝေချင်တယ်။

ဥရောပကိုကြီးသောစက်ဝိုင်းအဝေးသင်ဖြင့်မြေပုံဆွဲပါ

အချက်နှစ်ချက်အကြားအကွာအဝေးကိုတွက်ချက်ရန်ရိုးရှင်းသောနည်းလမ်းမှာ Pythagorean formula ကို သုံး၍ တြိဂံ၏ hypotenuse ကိုတွက်ချက်ရန် (A² + B² = C²) ဖြစ်သည်။ ၎င်းကိုလူသိများသည် ယူကလစ်အကွာအဝေး.

၎င်းသည်စိတ် ၀ င်စားစရာကောင်းသောအရာဖြစ်သော်လည်းလတ္တီတွဒ်နှင့်လောင်ဂျီတွဒ်မျဉ်းများအကြားရှိအကွာအဝေးဖြစ်သောကြောင့်ပထဝီဝင်နှင့်မသက်ဆိုင်ပါ တူညီသောအကွာအဝေးမရှိပါ။ ဆိတ်ကွယ်ရာ။ အီကွေတာနှင့်သင်နီးကပ်လာသည်နှင့်အမျှလတ္တီတွဒ်လိုင်းများသည်လည်းထပ်မံကွဲထွက်လာသည်။ အကယ်၍ သင်သည်ရိုးရှင်းသောတြိဂံပုံညီမျှခြင်းတစ်မျိုးမျိုးကိုအသုံးပြုပါကကမ္ဘာ၏အဖြစ်အပျက်များကြောင့်၎င်းသည်တစ်နေရာတည်းတွင်အကွာအဝေးကိုတိကျစွာတိုင်းတာနိုင်ပြီးအခြားတစ်ခုတွင်လွန်စွာမှားယွင်းနိုင်သည်။

မဟာစက်ဝိုင်းအကွာအဝေး

ကမ္ဘာပတ်ပတ်လည်တွင်ရှည်လျားသောအကွာအဝေးများကိုဖြတ်သန်းသွားသောလမ်းကြောင်းများကိုထိုလမ်းကြောင်းဟုလူသိများသည် မဟာစက်ဝိုင်းအကွာအဝေး. ဆိုလိုသည်မှာ... စက်လုံးရှိ အမှတ်နှစ်ခုကြား အတိုဆုံးအကွာအဝေးသည် ပြားချပ်ချပ်မြေပုံရှိ အမှတ်များထက် ကွာခြားပါသည်။ လတ္တီတွဒ်နှင့် လောင်ဂျီတွဒ်မျဉ်းများသည် ညီမျှခြင်းမဟုတ်သောအချက်နှင့် ပေါင်းစပ်ပါ... သင့်တွင် ခက်ခဲသော တွက်ချက်မှုတစ်ခုရရှိပါသည်။

ဤတွင် Great Circles ၏အလုပ်လုပ်ပုံနှင့် ပတ်သက်၍ စိတ်ကူးကောင်းသည့်ဗီဒီယိုရှင်းလင်းချက်ဖြစ်သည်။

အဆိုပါ Haversine ဖော်မြူလာ

ကမ္ဘာ၏အဖြစ်များတတ်သည်ကို အသုံးပြု၍ အကွာအဝေးကိုထည့်သွင်းထားသည် Haversine ပုံသေနည်း, ကမ္ဘာ၏အဖြစ်များတတ်သည်အဘို့အခွင့်ပြုရန် trigonometry ကိုအသုံးပြုသည်။ သင်သည်ကမ္ဘာပေါ်ရှိနေရာ ၂ ခု (ကျီးကန်းပျံသန်းစဉ်) အကြားအကွာအဝေးကိုရှာတွေ့သောအခါ၊ ဖြောင့်မတ်သောမျဉ်းသည်အမှန်တကယ်ပင် arc ဖြစ်သည်။

၎င်းသည်လေယာဉ်ပျံသန်းရာတွင်အသုံးပြုနိုင်သည် - သင်သည်အမှန်တကယ်ပျံသန်းမှုမြေပုံကိုကြည့်ပြီး၎င်းတို့သည် arched ဖြစ်နေသည်ကိုသတိပြုမိပါသလား။ ဘာဖြစ်လို့လဲဆိုတော့နှစ်ခုလုံးကြားမှာတည်နေရာကိုတိုက်ရိုက်မဟုတ်ဘဲနှစ်ခေါက်ကြားထဲပျံသန်းတာကတိုတယ်။

PHP: 2 လတ္တီတွဒ်နှင့်လောင်ဂျီတွဒ်အကြားအကွာအဝေးကိုတွက်ချက်ပါ

ဤသည်မှာ အမှတ်နှစ်မှတ်ကြား အကွာအဝေးကို တွက်ချက်ရန်အတွက် PHP ဖော်မြူလာ ( Mile vs. Kilometer conversion နှင့်အတူ) ဒဿမနေရာနှစ်ခုသို့ ဝိုင်းထားသည်။

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 - သင့်ပထမတည်နေရာ၏လတ္တီတွဒ်အတွက် ပြောင်းလဲနိုင်သောပုံစံတစ်ခု။
  • $လောင်ဂျီကျု ၁ - သင့်ပထမတည်နေရာ၏ လောင်ဂျီတွဒ်အတွက် ပြောင်းလဲမှုတစ်ခု
  • $Latitude2 - သင့်ဒုတိယတည်နေရာ၏လတ္တီတွဒ်အတွက် ပြောင်းလဲနိုင်သောပြောင်းလဲမှုတစ်ခု။
  • $လောင်ဂျီကျု ၁ - သင့်ဒုတိယတည်နေရာ၏ လောင်ဂျီတွဒ်အတွက် ပြောင်းလဲမှုတစ်ခု။
  • $unit - ပုံသေဖြစ်ခြင်း။ ထောင်ပေါင်းများစွာသော. ၎င်းကို အပ်ဒိတ် သို့မဟုတ် ကျော်သွားနိုင်သည်။ ကီလိုမီတာ.

Python- လတ္တီတွဒ်နှင့် လောင်ဂျီကျုဒ် 2 မှတ်ကြား အကွာအဝေးကို တွက်ချက်ပါ။

မည်သို့ပင်ဆိုစေကာမူ၊ ဤသည်မှာ ဒဿမနေရာနှစ်ခုမှ အမှတ်နှစ်ခုကြားအကွာအဝေးကို တွက်ချက်ရန်အတွက် Python ဖော်မြူလာဖြစ်သည်။ ကျွန်ုပ်၏သား Bill Karr သည် Data Scientist ဖြစ်သည် အဖွင့်အမြင်များကုဒ်အတွက်။

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)

ကိန်းရှင်များမှာ-

  • မြောက်လတ္တီတွဒ် ၉၅၂၀ - သင့်ပထမဆုံးတည်နေရာအတွက် ပြောင်းလဲမှုတစ်ခု လတီ္တတွဒ်.
  • လောင်ဂျီတွဒ် ၁ - သင့်ပထမဆုံးတည်နေရာအတွက် ပြောင်းလဲမှုတစ်ခု လောင်ဂျီတွဒ်
  • မြောက်လတ္တီတွဒ် ၉၅၂၀ - သင့်ဒုတိယတည်နေရာအတွက် ပြောင်းလဲမှုတစ်ခု လတီ္တတွဒ်.
  • လောင်ဂျီတွဒ် ၁ - သင့်ဒုတိယတည်နေရာအတွက် ပြောင်းလဲမှုတစ်ခု လောင်ဂျီတွဒ်.
  • ယူနစ် - ပုံသေဖြစ်ခြင်း။ ထောင်ပေါင်းများစွာသော. ၎င်းကို အပ်ဒိတ် သို့မဟုတ် ကျော်သွားနိုင်သည်။ ကီလိုမီတာ.

MySQL- လတ္တီတွဒ်နှင့် လောင်ဂျီကျုတို့ကို အသုံးပြု၍ မိုင်အကွာအဝေးကို တွက်ချက်ခြင်းဖြင့် အကွာအဝေးတစ်ခုအတွင်း မှတ်တမ်းအားလုံးကို ပြန်လည်ရယူခြင်း

တိကျသောအကွာအဝေးအတွင်းရှိမှတ်တမ်းများကိုရှာဖွေရန်တွက်ချက်မှုတစ်ခုပြုလုပ်ရန် SQL ကိုသုံးနိုင်သည်။ ဒီဥပမာမှာ MySQL မှာ MyTable ကိုရှာမယ်၊ variable ကို $ Distance (Miles မှာ) ထက်နည်းဒါမှမဟုတ်ညီမျှတဲ့မှတ်တမ်းအားလုံးကို $ latitude နဲ့ $ longitude မှာရှာမယ်။

သတ်သတ်မှတ်မှတ်တစ်ခုအတွင်းရှိမှတ်တမ်းများအားလုံးကိုပြန်လည်ရယူခြင်းအတွက်ရှာဖွေမှု အကွာအဝေး လတ္တီတွဒ်နှင့်လောင်ဂျီတွဒ်နှစ်ခုကြားရှိမိုင်အကွာအဝေးကိုတွက်ချက်ခြင်းအားဖြင့် -

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

သင်ဤပြင်ဆင်ရန်လိုအပ်သည် -

  • $ လောင်ဂျီတွဒ် - ဒါက PHP variable တစ်ခုပါ။
  • $ လတ္တီတွဒ် - ဒါက PHP variable တစ်ခုပါ။
  • $ အကွာအဝေး - ဒီအကွာအဝေးဟာသင်အကုန်လုံးကိုနည်းနည်းနဲ့တန်းတူဖြစ်ချင်တဲ့အကွာအဝေးဖြစ်တယ်။
  • စားပှဲ - ဒါကဒီစားပွဲပါ။ သင်စားပွဲနာမည်နဲ့အစားထိုးချင်တယ်။
  • လတီ္တတွဒ် - ဒါကမင်းရဲ့လတ္တီတွဒ်ရဲ့ကွက်လပ်ပါ။
  • လောင်ဂျီတွဒ် ဒါကခင်ဗျားရဲ့လောင်ဂျီတွဒ်နယ်ပယ်ပဲ။

MySQL- လတ္တီတွဒ်နှင့် လောင်ဂျီကျုတို့ကို အသုံးပြု၍ အကွာအဝေးကို ကီလိုမီတာ တွက်ချက်ခြင်းဖြင့် အကွာအဝေးတစ်ခုအတွင်း မှတ်တမ်းအားလုံးကို ပြန်လည်ရယူခြင်း

ဒီမှာ MySQL မှာကီလိုမီတာသုံးပြီး SQL query:

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

သင်ဤပြင်ဆင်ရန်လိုအပ်သည် -

  • $ လောင်ဂျီတွဒ် - ဒါက PHP variable တစ်ခုပါ။
  • $ လတ္တီတွဒ် - ဒါက PHP variable တစ်ခုပါ။
  • $ အကွာအဝေး - ဒီအကွာအဝေးဟာသင်အကုန်လုံးကိုနည်းနည်းနဲ့တန်းတူဖြစ်ချင်တဲ့အကွာအဝေးဖြစ်တယ်။
  • စားပှဲ - ဒါကဒီစားပွဲပါ။ သင်စားပွဲနာမည်နဲ့အစားထိုးချင်တယ်။
  • လတီ္တတွဒ် - ဒါကမင်းရဲ့လတ္တီတွဒ်ရဲ့ကွက်လပ်ပါ။
  • လောင်ဂျီတွဒ် ဒါကခင်ဗျားရဲ့လောင်ဂျီတွဒ်နယ်ပယ်ပဲ။

ငါဒီကုဒ်ကိုမြောက်အမေရိကတလွှားတည်နေရာ ၁၀၀၀ ကျော်ရှိသည့်လက်လီအရောင်းဆိုင်တစ်ခုအတွက်အသုံးချပြီးစီးပွားရေးမြေပုံတစ်ခုမှာသုံးခဲ့သည်။

Microsoft SQL Server Geographic Distance: STDistance

အကယ်၍ သင်သည် Microsoft SQL Server ကိုအသုံးပြုနေပါက၊ ၎င်းတို့သည် ၎င်းတို့၏ကိုယ်ပိုင်လုပ်ဆောင်ချက်ကို ပေးဆောင်သည်၊ 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);  

Manash Sahoo၊ VP နှင့် Architect ၏ ဦးထုပ်ထိပ်ဖျား Highbridge.

Douglas Karr

Douglas Karr တည်ထောင်သူဖြစ်ပါတယ် Martech Zone နှင့်ဒစ်ဂျစ်တယ်အသွင်ပြောင်းအပေါ်အသိအမှတ်ပြုကျွမ်းကျင်သူ။ Doug သည် အဓိကပြောရေးဆိုခွင့်နှင့်စျေးကွက်ရှာဖွေရေးပြည်သူ့ဥက္ကဌ။ သူသည် VP နှင့်တွဲဖက်တည်ထောင်သူဖြစ်သည် HighbridgeSalesforce နည်းပညာကို အသုံးပြု၍ သူတို့၏နည်းပညာရင်းနှီးမြှုပ်နှံမှုကိုဒီဂျစ်တယ်ပြောင်းလဲရန်နှင့်အမြင့်ဆုံးတိုးမြှင့်နိုင်ရန်စီးပွားရေးကုမ္ပဏီများကိုကူညီရန်အထူးပြုသည့်ကုမ္ပဏီတစ်ခုဖြစ်သည်။ သူသည်ဒီဂျစ်တယ်စျေးကွက်ရှာဖွေရေးနှင့်ထုတ်ကုန်ဆိုင်ရာနည်းဗျူဟာများကိုတီထွင်ခဲ့သည် Dell က Technologies က, GoDaddy, Salesforce, ဝက်ဘ်ဆိုက်များနှင့် နေပြည်တော်။ ဒေါက်ဂလပ်သည်လည်းစာရေးသူဖြစ်သည် Dummies အတွက်ကော်ပိုရိတ် Blogging နှင့်ပူးတွဲရေးသားသူ သာ။ ကောင်း၏စီးပွားရေးစာအုပ်.

78 မှတ်ချက်

  1. မျှဝေပေးတဲ့အတွက် ကျေးဇူးအများကြီးတင်ပါတယ်။ ဒါက ကော်ပီကူးထည့်တဲ့အလုပ်က လွယ်ကူပြီး အလုပ်လည်းကောင်းပါတယ်။ မင်းငါ့ကို အချိန်အများကြီး ကယ်ခဲ့တယ်။
    C သို့ ပို့မည့်သူအတွက် FYI
    double deg2rad(double deg) { return deg*(3.14159265358979323846/180.0); }

  2. အရမ်းကောင်းတဲ့ ပို့စ်တစ်ခု - အရမ်းကောင်းတယ် - လတ်ရှည်ကိုင်ထားတဲ့ စားပွဲနာမည်ကိုပဲ ပြောင်းခဲ့ရတယ်။ တော်တော်မြန်ပါတယ်.. ကျွန်တော့်မှာ လက်တင်အရှည် (<400) အနည်းငယ်လောက်ရှိပေမယ့် ဒါဟာ အတိုင်းအတာတစ်ခုအထိ ကောင်းကောင်းလို့ထင်ပါတယ်။ အရမ်းကောင်းတဲ့ site ပါ - ကျွန်ုပ်သည် ၎င်းကို ကျွန်ုပ်၏ del.icio.us အကောင့်တွင် ယခုလေးတင်ထည့်ထားပြီး ပုံမှန်ပြန်စစ်ဆေးပါမည်။

    1. Peter နဲ့ Kerry ကို အရမ်းကျေးဇူးတင်ပါတယ်။ အကယ်၍ သင်သည် GIS ပရောဂျက်များကို လုပ်ဆောင်လိုပါက၊ ကျွန်ုပ်အကြံပြုလိုသည်မှာ-

      1. ကျွန်ုပ်၏ GIS အမျိုးအစားကို ကြည့်ရှုပါ။
      2. ပြီးလျှင် သေချာပေါက် စစ်ဆေးပါ။ Mapperz မှမြေပုံဆွဲသတင်း
  3. ကျွန်တော် တစ်နေကုန် အကွာအဝေး တွက်ချက်မှုများကို ရှာဖွေခဲ့ရာ sql statement တွင် ထည့်သွင်းနည်းကို ဥပမာပေးသည့်အတွက် ကျေးဇူးတင်ပါသည်။ ကျေးဇူးတင်ပါတယ်၊ နှုတ်ဆက်ပါတယ်။

    1. ကူညီရတာ ဝမ်းသာပါတယ် သူငယ်ချင်း။

      ယခု ကျွန်ုပ်သည် မျဉ်းတန်းလတ္တီတွဒ်နှင့် လောင်ဂျီတွဒ် သြဒိနိတ်များကို စီတန်းထားသော လတ္တီတွဒ်နှင့် လောင်ဂျီကျု သြဒိနိတ်များယူမည့် 'Polygon' တွင် PHP လုပ်ဆောင်ချက်ကို ရှာဖွေနေပြီး အခြားအမှတ်သည် ဗဟုဂံအတွင်း သို့မဟုတ် အပြင်ရှိမရှိကို ရှာဖွေနေပါသည်။

  4. မင်းရဲ့ SQL မှာ ကြေငြာချက်တစ်ခုလိုတယ်။
    WHERE အကွာအဝေး <= $distance အစား သင်လိုအပ်နိုင်သည်။
    HAVING distance <= $distance ကိုသုံးပါ။

    မဟုတ်ရင် ငါ့ကို အချိန်နဲ့ ခွန်အားတွေ အများကြီး ကယ်တင်ပေးလို့ ကျေးဇူးတင်တယ်။

    1. , ဒါဝိဒ်မင်္ဂလာပါ

      အကယ်၍ သင်သည် GROUP BY ထုတ်ပြန်ချက် အမျိုးအစား တစ်ခုခုကို လုပ်ဆောင်နေပါက၊ သင် HAVING လိုအပ်ပါသည်။ အထက်ဖော်ပြပါ ဥပမာတွင် ကျွန်ုပ်သည် ထိုသို့မလုပ်ပါ။

      Doug

  5. ကျေးဇူးအများကြီးတင်ပါတယ်။ မင်းက ကောင်းတဲ့အလုပ်ကို လုပ်ခဲ့ပြီးပြီ ဒါ ငါတကယ်လိုချင်တဲ့အရာပဲ။ ကျေးဇူးအများကြီးတင်ပါတယ်။

  6. ဒီကုဒ်ကိုမျှဝေပေးတဲ့အတွက် ကျေးဇူးအများကြီးတင်ပါတယ်။ ဖွံ့ဖြိုးတိုးတက်မှုအချိန်ကို အများကြီး သက်သာစေတယ်။ ထို့အပြင် MySQL 5.x အတွက် HAVING ကြေငြာချက် လိုအပ်ကြောင်း ထောက်ပြသည့်အတွက် သင့်စာဖတ်သူများကို ကျေးဇူးတင်ပါသည်။ အလွန်အထောက်အကူဖြစ်စေသည်။

  7. အထက်ပါ ပုံသေနည်းသည် ကျွန်ုပ်အား အချိန်များစွာ သက်သာစေပါသည်။ ကျေးဇူးအများကြီးတင်ပါတယ်။
    NMEA ဖော်မတ်နှင့် ဒီဂရီများအကြားလည်း ပြောင်းရမည်ဖြစ်ပါသည်။ စာမျက်နှာ၏အောက်ခြေရှိ ဤ URL တွင် ဖော်မြူလာတစ်ခုကို ကျွန်ုပ်တွေ့ရှိခဲ့သည်။ http://www.errorforum.com/knowledge-base/16273-converting-nmea-sentence-latitude-longitude-decimal-degrees.html

    ဒါကို ဘယ်လိုအတည်ပြုရမလဲဆိုတာ တစ်ယောက်ယောက် သိပါသလား။

    ကျေးဇူးတင်ပါတယ်!
    ဟယ်ရီ

  8. ဟလို,

    နောက်မေးခွန်းတစ်ခု။ NMEA စာကြောင်းများအတွက် ဖော်မြူလာရှိပါသလား။

    1342.7500၊N၊10052.2287၊E

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

    ကျေးဇူးတင်ပါတယ်,
    ဟယ်ရီ

  9. ဘယ်မှာမှ အလုပ်မဖြစ်ဘူးဆိုတာကိုလည်း တွေ့ခဲ့ရတယ်။ ၎င်းကို HAVING သို့ ပြောင်းလိုက်ပြီး အရာအားလုံး ပြီးပြည့်စုံအောင် လုပ်ဆောင်သည်။ ပထမတော့ ကျွန်တော် မှတ်ချက်တွေကို မဖတ်ဘဲ nested select ကိုသုံးပြီး ပြန်ရေးတယ်။ နှစ်ခုစလုံး အဆင်ပြေပါလိမ့်မယ်။

  10. mysql မှာရေးထားတဲ့ ဇာတ်ညွှန်းအတွက် ကျေးဇူးအများကြီးတင်ပါတယ်၊ အသေးအဖွဲ ချိန်ညှိမှု အနည်းငယ် လုပ်ခဲ့ရပါတယ် (HAVING) 🙂
    အလုပ်ကောင်းတယ်။

  11. မယုံနိုင်လောက်အောင် အသုံးဝင်ပါတယ်၊ ကျေးဇူးအများကြီးတင်ပါတယ်။ "WHERE" ထက် "HAVING" အသစ်နှင့် ပြဿနာအချို့ရှိနေသော်လည်း ဤနေရာတွင် မှတ်ချက်များကို ဖတ်ပြီးသည်နှင့် (နာရီဝက်ခန့် စိတ်ပျက်လက်ပျက်ဖြင့် သွားကြိတ်ပြီးနောက် =P)၊ ၎င်းကို ကောင်းမွန်စွာ လုပ်ဆောင်နိုင်ခဲ့သည်။ ကျေးဇူးတင်ပါတယ် ^_^

  12. ထိုကဲ့သို့သော ရွေးချယ်ထားသော ထုတ်ပြန်ချက်သည် တွက်ချက်မှုအရ အလွန်ပြင်းထန်ပြီး ထို့ကြောင့် နှေးကွေးမည်ကို မှတ်သားထားပါ။ သင့်တွင် ထိုမေးခွန်းများ အများအပြားရှိပါက၊ ၎င်းသည် အရာများကို လျင်မြန်စွာ ဖျက်ပစ်နိုင်သည်။

    ပိုမိုပြင်းထန်သောချဉ်းကပ်မှုမှာ တွက်ချက်ထားသောအကွာအဝေးဖြင့်သတ်မှတ်ထားသော SQUARE ဧရိယာကိုအသုံးပြု၍ ပထမ (အကြမ်းဖျင်း) ရွေးချယ်မှုတစ်ခုလုပ်ဆောင်ရန်ဖြစ်သည်ဆိုလိုသည်မှာ "လက်တီကျု lat1 နှင့် lat2 ကြားလတ္တီကျုနှင့် lon1 နှင့် lon2 ကြားရှိ လောင်ဂျီကျု * ကိုရွေးချယ်ပါ။ lat1 = targetlatitude – latdiff၊ lat2 = targetlatitude + latdiff၊ lon နှင့် ဆင်တူသည်။ latdiff ~= အကွာအဝေး / 111 (ကီလိုမီတာအတွက်) သို့မဟုတ် လတ္တီတွဒ် 69 ဒီဂရီသည် ~ 1 ကီလိုမီတာ ဖြစ်သောကြောင့် မိုင်အတွက် အကွာအဝေး (မိုင်များအတွက် အကွာအဝေးသည် ~ 111 ကီလိုမီတာ) (ကမ္ဘာမြေသည် အနည်းငယ်ဘဲဥပုံဖြစ်သောကြောင့် အနည်းငယ်ကွဲလွဲသော်လည်း ဤရည်ရွယ်ချက်အတွက် လုံလောက်သည်)။ londiff = အကွာအဝေး / (abs(cos(deg2rad(လတ္တီတွဒ်))*111)) — သို့မဟုတ် မိုင်အတွက် 69 (ကွဲပြားမှုများကိုတွက်ချက်ရန်အတွက် အမှန်တကယ်အားဖြင့် သင်သည် အနည်းငယ်ပိုကြီးသောစတုရန်းကိုယူနိုင်သည်)။ ထို့နောက် ၎င်းရလဒ်ကိုယူ၍ ၎င်းကို radial ရွေးချယ်မှုတွင် ထည့်သွင်းပါ။ နယ်နိမိတ်ပြင်ပ သြဒိနိတ်များကို ထည့်တွက်ရန် မမေ့ပါနှင့် - ဆိုလိုသည်မှာ လက်ခံနိုင်သော လောင်ဂျီတွဒ်၏ အကွာအဝေးမှာ -180 မှ +180 ဖြစ်ပြီး လက်ခံနိုင်သော လတ္တီတွဒ် အကွာအဝေးမှာ -90 မှ +90 ဖြစ်သည် — သင့်လက်တင်ဒစ်ဖ် သို့မဟုတ် လေဒစ်ဖ်သည် ဤဘောင်အပြင်ဘက်တွင် လည်ပတ်နေပါက၊ . နေရာအများစုတွင် ၎င်းသည် chukotka ၏အစိတ်အပိုင်းနှင့် alaska တစ်စိတ်တစ်ပိုင်းကိုဖြတ်သွားသော်လည်း၊ ပစိဖိတ်သမုဒ္ဒရာမှဝင်ရိုးစွန်းအထိမျဉ်းတစ်ကြောင်းမှတွက်ချက်မှုများကိုသာအကျိုးသက်ရောက်သောကြောင့်၎င်းသည်အသုံးပြုနိုင်မည်မဟုတ်ကြောင်းသတိပြုပါ။

    ဤအရာဖြင့် ကျွန်ုပ်တို့ ပြီးမြောက်အောင်မြင်သည်မှာ သင်ဤတွက်ချက်မှုပြုလုပ်သည့် အမှတ်အရေအတွက်ကို သိသာထင်ရှားစွာ လျှော့ချလိုက်ခြင်းဖြစ်သည်။ အကယ်၍ သင့်တွင် အကြမ်းဖျင်း ဖြန့်ကျက်ထားသော ဒေတာဘေ့စ်တွင် ကမ္ဘာလုံးဆိုင်ရာ အမှတ်ပေါင်း သန်းတစ်ထောင်ရှိပြီး ကီလိုမီတာ 100 အတွင်း ရှာဖွေလိုပါက၊ သင်၏ ပထမဆုံး (အမြန်) ရှာဖွေမှုသည် ဧရိယာ 10000 စတုရန်းကီလိုမီတာ ရှိပြီး ရလဒ် 20 ခန့် ထွက်ပေါ်လာနိုင်သည် (တစ်ခုထက်ပိုသော ဖြန့်ဖြူးမှုအပေါ် အခြေခံ၍ မျက်နှာပြင်ဧရိယာ 500M စတုရန်းကီလိုမီတာခန့်)၊ ဆိုလိုသည်မှာ သင်သည် ဤမေးခွန်းအတွက် အကြိမ်တစ်သန်းအစား ရှုပ်ထွေးသောအကွာအဝေးတွက်ချက်မှုကို အကြိမ် 20 လုပ်ဆောင်ခြင်းဖြစ်သည်။

      1. အကြံဉာဏ်ကောင်း။ အထဲမှာ စတုရန်းကို ဆွဲထုတ်တဲ့ ဖန်ရှင်ကို ရေးတဲ့ ဆော့ဖ်ဝဲရေးသားသူနဲ့ အတူ အနားပတ်ပတ်လည်မှာ 'စတုရန်း' လုပ်ထားတဲ့ 'စတုရန်း' လုပ်ဆောင်ချက်ကို ရေးပြီး ကျန်တဲ့အချက်တွေကို ဖယ်ထုတ်လိုက်တယ်။ ရလဒ်သည် မယုံနိုင်လောက်အောင် မြန်ဆန်သော ရလဒ်ဖြစ်သည် - သူသည် မိုက်ခရိုစက္ကန့်အတွင်း အမှတ်သန်းပေါင်းများစွာကို အကဲဖြတ်နိုင်သည်။

        အထက်ဖော်ပြပါ ကျွန်ုပ်၏ချဉ်းကပ်မှုသည် 'ရိုင်းစိုင်း' သော်လည်း အစွမ်းထက်ပါသည်။ ကျေးဇူးထပ်တင်ပါရစေ!

        1. Doug၊

          lat long point သည် polygon အတွင်းရှိမရှိ အကဲဖြတ်ရန် mysql နှင့် php ကိုသုံးရန် ကြိုးစားနေပါသည်။ သင့်ဆော့ဖ်ဝဲရေးသားသူမိတ်ဆွေသည် ဤတာဝန်ကို ပြီးမြောက်အောင်လုပ်ဆောင်ပုံနှင့်ပတ်သက်သည့် ဥပမာများကို ထုတ်ပြန်ထားခြင်းရှိမရှိ သင်သိပါသလား။ ဒါမှမဟုတ် နမူနာကောင်းတွေ သိလား။ ကြိုပြီးကျေးဇူးပါပဲ။

  13. အားလုံးပဲ မင်္ဂလာပါ ဒါက ကျွန်တော့ရဲ့ စမ်းသပ်မှု 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

    Mysql က အကွာအဝေးကို ပြောပြတယ်၊ ကော်လံတစ်ခုအနေနဲ့ မရှိဘူး၊ ငါ အမိန့်ပေးလို့ရတယ်၊ WHERE မပါဘဲ ငါလုပ်နိုင်တယ်၊ အဲဒါက အလုပ်မလုပ်ဘူး...

  14. ဒါပေမယ် ငှက်တွေ ပျံနေသလိုပဲ။ ဤနည်းဖြင့် google maps API ကို ဤနည်းဖြင့် (လမ်းများအသုံးပြု၍ ဖြစ်နိုင်သည်) နှင့် မတူညီသော သယ်ယူပို့ဆောင်ရေးပုံစံကို အသုံးပြု၍ အကြံဥာဏ်တစ်ခုပေးနိုင်ရန် ကြိုးစားခြင်းသည် ကောင်းမွန်ပါသည်။ နယ်လှည့်အရောင်းသမားပြဿနာအတွက် ထိရောက်သောဖြေရှင်းချက်ကို ပေးစွမ်းနိုင်မည့် PHP တွင် အတုယူအနုနည်းလုပ်ဆောင်ချက်ကို ကျွန်ုပ်မပြုလုပ်ရသေးပါ။ ဒါပေမယ့် ဒီလိုလုပ်ဖို့ မင်းရဲ့ကုဒ်တချို့ကို ပြန်သုံးနိုင်မယ်လို့ ငါထင်ပါတယ်။

  15. ဟိုင်းဒေါက်၊
    ဒီဆောင်းပါးအတွက် ကျေးဇူးအများကြီးတင်ပါတယ်- မင်းက ငါ့ကို အချိန်အများကြီး ကယ်တင်ခဲ့တယ်။
    ဂရုစိုက်ပါ,
    nimrod @ အစ္စရေး

  16. ဆောင်းပါးကောင်း။ အချက်နှစ်ချက်ကြား အကွာအဝေးကို တွက်ချက်နည်းကို ဖော်ပြသည့် ဆောင်းပါးများစွာကို ကျွန်ုပ်တွေ့ရှိခဲ့သော်လည်း SQL အတိုအထွာကို အမှန်တကယ် ရှာဖွေနေပါသည်။

  17. ဒီဖော်မြူလာအတွက် ကျေးဇူးအများကြီးတင်ပါတယ်။ ကျွန်မကို စားနေတဲ့ စတိုးဆိုင် တည်နေရာ ပရောဂျက်မှာ အချိန်အတော်ကြာ ရိတ်ခဲ့တယ်။

  18. အတွဲတစ်တွဲကို ကျေးဇူးတင်ပါတယ်။ ဤကုဒ်စာကြောင်းလေးသည် စတိုးဆိုင်တည်နေရာပရောဂျက်တစ်ခုတွင် ကျွန်ုပ်အား အချိန်အတော်အတန်ကြာအောင် သက်သာစေပါသည်။

  19. ကျွန်ုပ်၏ပြဿနာကို ဖြေရှင်းပေးမည့် ဤစာမျက်နှာကို နောက်ဆုံးတွေ့ရှိရန် ၂ ရက်ကြာ သုတေသနပြုခဲ့သည်။ ကျွန်ုပ်သည် ကျွန်ုပ်၏ WolframAlpha ကို ခွဲထုတ်ပြီး ကျွန်ုပ်၏သင်္ချာကို ကောင်းစွာ အသုံးချပုံရသည်။ WHERE မှ HAVING သို့ ပြောင်းလဲခြင်းတွင် ကျွန်ုပ်၏ script သည် အလုပ်လုပ်ရန်အစီအစဥ်ရှိသည်။ ကျေးဇူးတင်ပါသည်

    1. ကျေးဇူးတင်ပါတယ် Georgi။ ကော်လံ 'အကွာအဝေး' ကို ဆက်၍ ရှာမတွေ့ပါ။ ငါဘယ်မှာရှိဖို့ကိုပြောင်းပြီးတာနဲ့ အဲဒါက ကျက်သရေတစ်ခုလိုဖြစ်သွားတယ်။

  20. ဒီစာမျက်နှာမှာ ပထမဆုံးတွေ့ခဲ့ရတဲ့ စာမျက်နှာဖြစ်ချင်ပါတယ် အမျိုးမျိုးသော command များကို စမ်းသုံးပြီးနောက် ၎င်းသည် ကောင်းမွန်စွာအလုပ်လုပ်ရန် တစ်ခုတည်းသာဖြစ်ပြီး၊ ကျွန်ုပ်၏ကိုယ်ပိုင်ဒေတာဘေ့စ်နှင့်ကိုက်ညီရန် အနည်းငယ်သောပြောင်းလဲမှုများလိုအပ်ပါသည်။
    ကျေးဇူးတင်ပါတယ်တွေအများကြီး!

  21. ဒီစာမျက်နှာမှာ ပထမဆုံးတွေ့ခဲ့ရတဲ့ စာမျက်နှာဖြစ်ချင်ပါတယ် အမျိုးမျိုးသော command များကို စမ်းသုံးပြီးနောက် ၎င်းသည် ကောင်းမွန်စွာအလုပ်လုပ်ရန် တစ်ခုတည်းသာဖြစ်ပြီး၊ ကျွန်ုပ်၏ကိုယ်ပိုင်ဒေတာဘေ့စ်နှင့်ကိုက်ညီရန် အနည်းငယ်သောပြောင်းလဲမှုများလိုအပ်ပါသည်။
    ကျေးဇူးတင်ပါတယ်တွေအများကြီး!

  22. ဤဖော်မြူလာ အလုပ်လုပ်သည်ကို ကျွန်ုပ်သိသော်လည်း ကမ္ဘာမြေ၏ အချင်းဝက်ကို ထည့်သွင်းစဉ်းစားမည်ကို ကျွန်ုပ် မမြင်နိုင်ပါ။ ကျေးဇူးပြုပြီး ငါ့ကို ဉာဏ်အလင်းပေးနိုင်တဲ့သူရှိလား။

  23. Douglas ကျေးဇူးတင်ပါတယ်၊ SQL Query သည် ကျွန်ုပ်လိုအပ်သည့်အရာဖြစ်သည်၊ ကျွန်ုပ်ကိုယ်တိုင် ရေးရန်လိုသည်ဟု ထင်ပါသည်။ လတ္တီတွဒ် လောင်ဂျီကျု သင်ယူမှုမျဉ်းကွေးမှ နာရီပေါင်းများစွာ ကယ်တင်နိုင်ခဲ့သည်။

  24. Douglas၊ ဤအံ့သြဖွယ်ကုဒ်အတွက် ကျေးဇူးတင်ပါသည်။ ကျွန်ုပ်၏ GPS အသိုက်အဝန်းပေါ်တယ်တွင် ၎င်းကို မည်သို့ပြုလုပ်ရမည်ကို ကျွန်ုပ် ခေါင်းကွဲနေပါသည်။ မင်းငါ့ကို နာရီတွေ ကယ်လိုက်ပြီ။

  25. ဒီဆောင်းပါးလေး တင်ပေးလို့ ကျေးဇူးတင်ပါတယ်၊  
    ဒါပေမယ့် အကြောင်းတစ်ခုခုကြောင့် မေးချင်ပါတယ်။
    mysql db အတွင်းရှိ coords များနှင့် user မှ php သို့ထည့်သွင်းထားသော coords များကြားအကွာအဝေးကို မည်သို့ရယူရမည်နည်း။
    ပိုမိုရှင်းလင်းစွာဖော်ပြရန်-
    1.user သည် db မှ သတ်မှတ်ထားသော data နှင့် user ကိုယ်တိုင်၏ coords များကို ရွေးချယ်ရန်အတွက် [id] ကို ထည့်သွင်းရမည်ဖြစ်ပါသည်။
    2. php ဖိုင်သည် [id] ကို အသုံးပြု၍ ပစ်မှတ်ဒေတာ (coords) ကို ရယူပြီးနောက် အသုံးပြုသူနှင့် ပစ်မှတ်အမှတ်ကြား အကွာအဝေးကို တွက်ချက်ပါ။

    သို့မဟုတ် အောက်ပါကုဒ်မှ အကွာအဝေးကို ရိုးရိုးရှင်းရှင်း ရနိုင်ပါသလား။

    $qry = “SELECT *,(((acos((“.$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) `MyTable` မှ အကွာအဝေးအဖြစ် အကွာအဝေး >= “.$distance” >>>> ဒီနေရာကနေ အကွာအဝေးကို ဖယ်ထုတ်လို့ ရမလား။
    ကျေးဇူးပါပဲ,
    Timmy S

    1. စိတ်မဆိုးပါဘူး၊ php မှာ "function" က ဘယ်လိုအလုပ်လုပ်တယ်ဆိုတာကို ငါရှာတွေ့ခဲ့တယ်။
      $dis=getDistanceBetweenPointsNew($userLati၊ $userLongi၊ $lati၊ $longi၊ $unit = 'Km')
      ကျေးဇူးအများကြီးတင်ပါတယ်!! 

  26. အိုကေ၊ ငါကြိုးစားခဲ့သမျှ အလုပ်မဖြစ်ဘူး။ ဆိုလိုတာက ငါ့မှာ အလုပ်ရှိတယ်၊ ဒါပေမယ့် အကွာအဝေးက ဝေးတယ်။

    ဤကုဒ်တွင် မှားယွင်းနေသည်ကို မည်သူမဆို မြင်နိုင်ပါသလား။

    if(isset($_POST['submitted'])){ $z = $_POST['zipcode']; $r = $_POST['radius']; ပဲ့တင်သံ ““.$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 FROM mrk m, zip z1, zip z2 WHERE m.zipcode = z1.zipcode AND z2.zipcode = $z AND (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 ) ) ") သို့မဟုတ် <= $ (mysql_error()); while($row = mysql_fetch_array($sql )) { $store1 = $row['MktName'].""; $store = $row['LocAddSt']””; $store .= $row['LocAddCity']”, “.$row['LocAddState']” “.$row['zipcode']; $latitude1 = $row['lat']; $longitude1 = $row['lon']; $latitude2 = $row['y1']; $longitude2 = $row['x1']; $city = $row['city']; $state = $row['state']; $dis = getnew($latitude1၊ $longitude1၊ $latitude2၊ $longitude2၊ $unit = 'Mi'); // $dis = အကွာအဝေး($lat1၊ $lon1၊ $lat2၊ $lon2); $verified = $row['verified']; if($verified == '1'){ သံယောင် “”; ပဲ့တင်သံ ““.$store””; ပဲ့တင်သံ $dis ။ " မိုင်ပေါင်းများစွာ"; ပဲ့တင်သံ ""; } else { echo “”.$store.””; ပဲ့တင်သံ $dis ။ " မိုင်ပေါင်းများစွာ"; ပဲ့တင်သံ ""; } }}

    ငါ့ functions.php ကုဒ်
    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($distance); $distance = rad2deg($distance); $distance = $distance * 60 * 1.1515; switch($unit) { case 'Mi': break; case 'Km' : $distance = $distance * 1.609344; } return ( round($distance,2)); }

    ကြိုတင်ပြီးကျေးဇူးပါပဲ

  27. ဟေ့ ဒေါက်ဂလပ်၊ ဆောင်းပါးကောင်း။ မင်းရဲ့ ပထဝီဝင် သဘောတရားနဲ့ ကုဒ်ရဲ့ ရှင်းပြချက်ဟာ တကယ်ကို စိတ်ဝင်စားဖို့ကောင်းတာကို ငါတွေ့ခဲ့တယ်။ ကျွန်ုပ်၏ တစ်ခုတည်းသော အကြံပြုချက်မှာ ပြသရန်အတွက် နေရာလွတ်နှင့် ကုဒ်ကို အင်တင်းလုပ်ရန်ဖြစ်သည် (ဥပမာ Stackoverflow ကဲ့သို့)။ မင်းက နေရာလွတ်ကို ချွေတာချင်တာလို့ နားလည်ပါတယ်၊ ဒါပေမယ့် သမားရိုးကျ ကုဒ်အကွာအဝေး/အင်တင်းကုဒ်က ပရိုဂရမ်မာတစ်ယောက်အနေနဲ့ ဖတ်ပြီး ခွဲခြမ်းဖို့ ပိုလွယ်ကူစေမှာပါ။ ဘာပဲဖြစ်ဖြစ် အဲဒါက သေးသေးလေးပါ။ ကြီးကျယ်သောအလုပ်ကို ဆက်လုပ်ပါ။

    1. ကျေးဇူးတင်ပါတယ်! ပို့စ်ကို နည်းနည်းပြင်ပြီးပြီ… ဒါပေမယ့် ညီမျှခြင်းတွေဟာ အခန်းအများကြီးယူရပြီး ရှည်လျားလွန်းတာကြောင့် အဲဒါက သိပ်ကိုအထောက်အကူမဖြစ်ဘူးဆိုတာ သေချာပါတယ်။

  28. ဤနေရာတွင် function ဖြင့်အသုံးပြုနေစဉ်တွင် ကျွန်ုပ်တို့သည် အကွာအဝေးအမျိုးအစားတစ်ခုကိုရရှိပါသည်.. ၎င်း၏နောက်ထပ်အကွာအဝေးအမျိုးအစားကို query ကိုအသုံးပြုနေစဉ်

  29. ရွေးချယ်ထားသည့်နေရာတွင် ဖော်မြူလာကို နှစ်ဆသုံးရန် (mysql 5.9) ပိုမြန်ပုံရသည်။
    $formula = “(((acos(sin((“.$latitude.”*pi()/180))) * sin((`Latitude`*pi()/180))+cos((“.$latitude. “*pi()/180)) * cos((`Latitude`*pi()/180)) * cos(((“.$longitude.”- `လောင်ဂျီကျု`)*pi()/180)))) *180/pi())*60*1.1515*1.609344)";
    $sql = 'SELECT *, '.$formula.' '..$ဖော်မြူလာ' နေရာတွင် ဇယားမှ အကွာအဝေးအဖြစ် <='.$distance;

  30. ဒီဆောင်းပါးကို ဝေမျှပေးတဲ့အတွက် ကျေးဇူးအများကြီးတင်ပါတယ်။ အရမ်းအသုံးဝင်ပါတယ်။
    PHP ကို ​​"Personal Home Page" ဟုခေါ်သော ရိုးရှင်းသော ဇာတ်ညွှန်းရေးပလပ်ဖောင်းတစ်ခုအနေဖြင့် အစပိုင်းတွင် ဖန်တီးခဲ့သည်။ ယခုအချိန်တွင် PHP (Hypertext Preprocessor ၏အတိုကောက်) သည် Microsoft ၏ Active Server Pages (ASP) နည်းပညာ၏ အစားထိုးတစ်ခုဖြစ်သည်။

    PHP သည် ဒိုင်းနမစ်ဝဘ်စာမျက်နှာများကို ဖန်တီးရန်အတွက် အသုံးပြုသည့် open source server-side language တစ်ခုဖြစ်သည်။ HTML မှာ ထည့်သွင်းနိုင်ပါတယ်။ PHP ကို ​​အများအားဖြင့် Linux/UNIX ဝဘ်ဆာဗာများတွင် MySQL ဒေတာဘေ့စ်နှင့် တွဲဖက်အသုံးပြုသည်။ ၎င်းသည် လူကြိုက်အများဆုံး scripting language ဖြစ်နိုင်သည်။

  31. အထက်ဖော်ပြပါ ဖြေရှင်းချက် ကောင်းစွာ အလုပ်မလုပ်နိုင်သည်ကို တွေ့ရှိရပါသည်။
    ငါ: သို့ပြောင်းလဲရန်လိုအပ်သည်

    $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) `မှတ်ပုံတင်ရန်` “မှ အကွာအဝေးအဖြစ်၊

  32. မင်္ဂလာပါ ကျေးဇူးပြုပြီး ဒီအတွက် မင်းရဲ့အကူအညီကို ငါတကယ်လိုလိမ့်မယ်။

    ကျွန်ုပ်သည် ကျွန်ုပ်၏ ဝဘ်ဆာဗာသို့ ရယူရန် တောင်းဆိုချက်တစ်ခု ပြုလုပ်ခဲ့သည်။ http://localhost:8000/users/findusers/53.47792/-2.23389/20/
    53.47792 = ဒေါ်လာလတ္တီတွဒ်
    -2.23389 = $လောင်ဂျီကျု
    နှင့် 20 = ကိုယ်ရယူလိုသော အကွာအဝေး

    သို့သော် သင့်ဖော်မြူလာကို အသုံးပြု၍ ကျွန်ုပ်၏ db ရှိ အတန်းအားလုံးကို ထုတ်ယူသည်။

    $results = DB::select(DB::raw(“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) အကွာအဝေးအဖြစ် အမှတ်အသားများမှ အကွာအဝေး >= “.$distance ));

    [{“id”:1,”name”:”Frankie Johnnie & Luigo Too”,”address”:”939 W El Camino Real, Mountain View, CA”,”lat”:37.386337280273,”lng”:-122.08582305908၊ ”distance”:16079.294719663},{“id”:2,”name”:”Amici's East Coast Pizzeria”,”address”:”790 Castro St, Mountain View, CA”,”lat”:37.387138366699,”lng”: -122.08323669434,”distance”:16079.175940152},{“id”:3,”name”:”Kapp's Pizza Bar & Grill”,”address”:”191 Castro St, Mountain View, CA”,”lat”:37.393886566162, "lng":-122.07891845703,"distance":16078.381373826},{"id":4,"name":"Round Table Pizza: Mountain View","address":"570 N Shoreline Blvd, Mountain View, CA"၊ ”lat”:37.402652740479,”lng”:-122.07935333252,”distance”:16077.420540582},{“id”:5,”name”:”Tony & Alba's Pizza & Pasta”,619”တောင်တက်လိပ်စာ၊” View, CA”,”lat”:37.394012451172,”lng”:-122.09552764893,”distance”:16078.563225154},{“id”:6,”name”:”Oregano's Wood-Fired Pizza””,”4546”,” El Camino Real, Los Altos, CA”,”lat”:37.401725769043,”lng”:-122.11464691162,”အကွာအဝေး”:16077.937560795},{“ id":7၊"အမည်":"အရက်ဆိုင်များ","လိပ်စာ":"24 Whiteley Street, Manchester","lat":53.485118865967,"lng":-2.1828699111938,"distance":8038.7620112314}

    မိုင် 20 ရှိသော အတန်းများကို ပြန်လည်ရယူလိုသော်လည်း ၎င်းသည် အတန်းအားလုံးကို ယူဆောင်လာသည်။ ကျေးဇူးပြုပြီး ငါဘာမှားနေတာလဲ

  33. အလားတူမေးခွန်းတစ်ခုကို ကျွန်တော်ရှာနေပေမယ့် နည်းနည်းတိုးလာတယ် - အတိုချုံးပြောရရင် ဒါက သြဒီနိတ်တစ်ခုစီရဲ့ 2 မိုင်အတွင်းမှာရှိတဲ့ သြဒိနိတ်အားလုံးကို အုပ်စုဖွဲ့ပြီး အုပ်စုတစ်ခုစီမှာရှိတဲ့ သြဒီနိတ်ဘယ်နှစ်ယောက်ကို ရေတွက်ပြီး သြဒိနိတ်အများဆုံးရှိတဲ့ အုပ်စုတစ်စုကိုသာ ထုတ်ပေးပါ - ရင်တောင် သင့်တွင် သြဒိနိတ်အရေအတွက် အများဆုံးရှိသော အုပ်စုများထဲတွင် အုပ်စုတစ်ခုထက်ပို၍ ရှိသည် - တူညီသော အကြီးဆုံးနံပါတ်ရှိသော အုပ်စုများမှ ကျပန်းအုပ်စုကို ထုတ်ပါ -

သင်ဘယ်လိုထင်ပါလဲ?

ဤ site ကိုစပမ်လျှော့ချဖို့ Akismet ကိုအသုံးပြုသည်။ သင့်ရဲ့ comment ကိုဒေတာများကိုဆောင်ရွက်ပြီးဖြစ်ပါတယ်လေ့လာ.

Related ဆောင်းပါးများ