View Full Version : جستجو در بانک بر حسب موقعیت جغرافیایی
milad_d993
یک شنبه 10 آبان 1394, 14:26 عصر
سلام دوستان
فرض کنید مختصات جغرافیایی رستوران های شهر رو توی بانک اطلاعاتیمون داریم
حالا میخوام لیست رستوران هایی که در شعاع یک کیلومتری ما هستند رو بکشم بیرون
136397
NeoFighT
یک شنبه 10 آبان 1394, 15:10 عصر
سلام ،
اگه سمت اندروید لیست رو داری ، میتونی با متد distanceTo از کلاس Location استفاده کنی و distance همه رستوران هارو در بیاری ،
بعد sort کنی و نزدیک ترین هارو بیابی.
saeed_g21
یک شنبه 10 آبان 1394, 15:13 عصر
اینم (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2276575&viewfull=1#post2276575)برای پیدا کردن فاصله بین دو نقطه جغرافیایی
milad_d993
یک شنبه 10 آبان 1394, 15:54 عصر
سلام ،
اگه سمت اندروید لیست رو داری ، میتونی با متد distanceTo از کلاس Location استفاده کنی و distance همه رستوران هارو در بیاری ،
بعد sort کنی و نزدیک ترین هارو بیابی.
اطلاعات داخل سرور هستش و نمیخوام مختصات تمام رستوران ها رو بکشم بیرون
برای واکشی اطلاعات چه کوئری باید بزنم که فقط رستوران هایی رو برگردانه که داخل این دایره فرضی هستند؟؟؟
ho3ein.3ven
یک شنبه 10 آبان 1394, 17:14 عصر
سلام
ار کوئری زیر استفاده کنید :
$result = mysqli_query($con , "SELECT *,(((acos(sin((".$Lat."*pi()/180)) *
sin((`Lat`*pi()/180))+cos((".$Lat."*pi()/180)) *
cos((`Lat`*pi()/180)) * cos(((".$Lng."- `Lng`)*
pi()/180))))*180/pi())*60*1.1515*1.609344
) as distance
FROM `Products`
INNER JOIN `Shops`
ON Products.ShopCode = Shops.ShopCode
HAVING distance <= $LocationFilterDistance and Products.StateOfProduct=1");
FastCode
یک شنبه 10 آبان 1394, 19:31 عصر
نههههههههههه. این کار رو نکن.
(l*l*%pi)/(4*l*l); میشه pi/4 که میشه 0.7853981633974483
اگر یک مربع رو کامل سلکت کنی و با کد اون چند تا رو در بیاری فقط 21.5% اطلاعات اضافه از دیتابیس میگیری ولی سرعت محاسباتت حداقل 400 تا 2500 برابر میشه
400 تا 2500 رو سر انگشتی حساب کردم. دقیق نیست.
milad_d993
یک شنبه 10 آبان 1394, 21:49 عصر
نههههههههههه. این کار رو نکن.
(l*l*%pi)/(4*l*l); میشه pi/4 که میشه 0.7853981633974483
اگر یک مربع رو کامل سلکت کنی و با کد اون چند تا رو در بیاری فقط 21.5% اطلاعات اضافه از دیتابیس میگیری ولی سرعت محاسباتت حداقل 400 تا 2500 برابر میشه
400 تا 2500 رو سر انگشتی حساب کردم. دقیق نیست.
داشتم بهش فکر میکردم...
مختصات این چهار تا نقطه قرمز رو چطوری پیدا کنم؟؟؟ فقط میخوام که اضلاع این مربع 2 کیلومتر باشه نه قطرش...
یعنی برای نقطه سمت راست-بالا باید lng و lat مختصات کاربر هر کدام به اندازه 1 کیلومتر اظافه بشه؛ مشکلی که هست اینه که نمیدانم بر حسب چی باید اینا رو اظافه کنم بر حسب متر؟؟؟ کیلومتر؟؟؟ سانتی متر؟؟؟ مایل؟؟؟
اگه
latitude = 34.798379208143565
longitude = 48.51478067398068
باشه مختصات نقطه قرمز راست-بالا چی میشه؟؟؟ اعداد بعد اعشار تا چند رقم میتونه باشه؟؟؟؟ بیشتر باشه یعنی دقیقتره؟؟؟
136404
ho3ein.3ven
یک شنبه 10 آبان 1394, 22:49 عصر
نههههههههههه. این کار رو نکن.
(l*l*%pi)/(4*l*l); میشه pi/4 که میشه 0.7853981633974483
اگر یک مربع رو کامل سلکت کنی و با کد اون چند تا رو در بیاری فقط 21.5% اطلاعات اضافه از دیتابیس میگیری ولی سرعت محاسباتت حداقل 400 تا 2500 برابر میشه
400 تا 2500 رو سر انگشتی حساب کردم. دقیق نیست.
بیشتر توضیح میدین ؟
milad_d993
یک شنبه 10 آبان 1394, 23:20 عصر
بیشتر توضیح میدین ؟
اینجا (http://barnamenevis.org/showthread.php?499285-%D8%B3%D9%88%D8%A7%D9%84-%D8%A7%D8%B2-%D8%A7%D8%B3%D8%A7%D8%AA%DB%8C%D8%AF-php-%D9%88-mysql&p=2230792#post2230792)رو ببین
milad_d993
یک شنبه 10 آبان 1394, 23:27 عصر
یه چند تا سوال دیگه هم دارم
ضریب خطای gps گوشی ها حداکثر چقدره؟؟؟؟
آیا این ضریب خطا بجز ساختمان و جنگل و موانع به خود گوشی و سخت افزارش بستگی داره؟؟؟ یعنی مثل دوربین که رزولیشن و کیفیت و ... داره gps هم همچین قر و فر هایی داره؟؟؟
آیا مختصاتی که با نرم افزار های java با مختصاتی که با b4a یا phoneGap فرقی میکنه؟؟؟
با حذف کردن بخش اعشاری lat و long حداکثر و حداقل چند متر با نقطه اورجینال تفاوت پیدا میکنه؟؟؟
FastCode
دوشنبه 11 آبان 1394, 15:33 عصر
با حذف کردن بخش اعشاری lat و long حداکثر و حداقل چند متر با نقطه اورجینال تفاوت پیدا میکنه؟؟؟
Latitude: 1 deg = 110.574 km
Longitude: 1 deg = 111.320*cos(latitude) km
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.