نوع مکانی (geography ) در mysql
با سلام خدمت دوستان عزیز من میخواستم جدولی ایجاد کنم که تو جدول موقعیت طول و عرض جغرافیایی رو ثبت کنم. بعد اگر یه مقدار جدید دستم رسید نزدیکترین فاصله رو در رکورد هام پیدا کنم. با سرچی که کردم تو sql server و mysql v5.7 یک نوعی هست به نام geography که میتونه به من کمک کنه. اما مشکل اینجاست که سرور من mysql ورژن 5.7 رو نداره. به نظر دوستان چیکار میتونم بکنم؟ کسی راهی به نظرش میرسه. برای تعداد کم میشه فاصله رو محاسبه کرد اما وقتی تعداد میره بالا این کار امکان مذیر نیست.
نقل قول: نوع مکانی (geography ) در mysql
اگر نقاط شما روی سطح صاف باشند کار راحت انجام میشه و با دو تا فیلد برای x و y و یک تابع ساده میتونی کار رو انجام بدی:
مثلا تابع dist(x1,y1,x2,y2) رو مینویسی
بعد این کد:
select * from
(select id,dist from table) as t
order by dist desc
limit 1
اما اگر نقاط روی یک کره (کره زمین) باشه (بصورت lat و long) کار سخت میشه چون باید دستور ST_Distance_Sphere رو پیاده کنی برای همون دو فیلد طول و عرض