ورود

View Full Version : گفتگو: نوع مکانی (geography ) در mysql



nader3
دوشنبه 23 بهمن 1396, 01:53 صبح
با سلام خدمت دوستان عزیز من میخواستم جدولی ایجاد کنم که تو جدول موقعیت طول و عرض جغرافیایی رو ثبت کنم. بعد اگر یه مقدار جدید دستم رسید نزدیکترین فاصله رو در رکورد هام پیدا کنم. با سرچی که کردم تو sql server و mysql v5.7 یک نوعی هست به نام geography که میتونه به من کمک کنه. اما مشکل اینجاست که سرور من mysql ورژن 5.7 رو نداره. به نظر دوستان چیکار میتونم بکنم؟ کسی راهی به نظرش میرسه. برای تعداد کم میشه فاصله رو محاسبه کرد اما وقتی تعداد میره بالا این کار امکان مذیر نیست.

golbafan
دوشنبه 20 فروردین 1397, 11:43 صبح
اگر نقاط شما روی سطح صاف باشند کار راحت انجام میشه و با دو تا فیلد برای 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 رو پیاده کنی برای همون دو فیلد طول و عرض