msajad 501 ارسال شده در 25 آذر، ۱۳۹۴ اشتراک گذاری ارسال شده در 25 آذر، ۱۳۹۴ سلام دوستان شعاع یک نقطه درنقشه رو دارم حالا میخوام بفهمم که نقطه دوم داخل شعاع نقطه اول هست یا نه مثلا فرض کنید یک مکان داخل نقشه مشخص کردم و حالا میخوام ببینم نقطه دوم داخل شعاع یک کیلومتری مکان ثبت شده هست یا نه لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Elyas Erfani 3,582 ارسال شده در 25 آذر، ۱۳۹۴ اشتراک گذاری ارسال شده در 25 آذر، ۱۳۹۴ ببخشید یه مقدار گیچ شدم قسمت هایی که کامنت کردی باید استفاده کنم یا نه؟ بعد بعضی از متغییر ها مثل 1e-7 و sn تعریف نشدن :gol: سلام ن کامنتارو لازم نیست این ساب بدون کامنت : Sub DistanceCalc (p1 As GeoPoint, p2 As GeoPoint) As Long Dim lat1, lat2, lon1, lon2, Dist, d As Double lat1=p1.Latitude lon1=p1.Longitude lat2=p2.Latitude lon2=p2.Longitude Try lat1 = lat1 * cPI / 180 lon1 = -lon1 * cPI / 180 lat2 = lat2 * cPI / 180 lon2 = -lon2 * cPI / 180 d = 2 * ASin(Sqrt(Power(Sin((lat1-lat2)/2),2) + Cos(lat1)*Cos(lat2)*Power(Sin((lon1-lon2)/2),2))) Dist = d * 180 * 60 * 1852/cPI Return Abs(Dist) Catch Return 0 End Try End Sub کتابخانه OSMDROID رو هم ک میدونید قطعا لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Elyas Erfani 3,582 ارسال شده در 25 آذر، ۱۳۹۴ اشتراک گذاری ارسال شده در 25 آذر، ۱۳۹۴ سلام شما میتونید مسافت 2تا نقطه رو از هم تشخیص بدید و اگر برابر 0 بود یعنی نقطه دوم جای نقطه اولی قرار داره میتونید از این دابل استفاده کنید و مثلا توی ی Toast استفاده کنید و نقطه شروع و پایانو بدید و نتیجه رو دریافت کنید Public double Distance(LatLng StartP, LatLng EndP) { int Radius = 6371;// radius of earth in Km double lat1 = StartP.latitude; double lat2 = EndP.latitude; double lon1 = StartP.longitude; double lon2 = EndP.longitude; double dLat = Math.toRadians(lat2 - lat1); double dLon = Math.toRadians(lon2 - lon1); double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) * Math.sin(dLon / 2) * Math.sin(dLon / 2); double c = 2 * Math.asin(Math.sqrt(a)); double valueResult = Radius * c; double km = valueResult / 1; DecimalFormat newFormat = new DecimalFormat("####"); int kmInDec = Integer.valueOf(newFormat.format(km)); double meter = valueResult % 1000; int meterInDec = Integer.valueOf(newFormat.format(meter)); Log.i("Radius Value", "" + valueResult + " KM " + kmInDec + " Meter " + meterInDec); Return Radius * c; } لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
msajad 501 ارسال شده در 25 آذر، ۱۳۹۴ سازنده اشتراک گذاری ارسال شده در 25 آذر، ۱۳۹۴ ممنون من فقط حواسم نبود تو بخش اندروید استدیو سوالم پرسیدم منتقل کنید به بیسیک دوم اول امکانش هست کد بیسیک رو به من بدید چون بعضی از توابع مثل Math.asin نمیدونم بیسیکش چی میشه لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Elyas Erfani 3,582 ارسال شده در 25 آذر، ۱۳۹۴ اشتراک گذاری ارسال شده در 25 آذر، ۱۳۹۴ ممنون من فقط حواسم نبود تو بخش اندروید استدیو سوالم پرسیدم منتقل کنید به بیسیک دوم اول امکانش هست کد بیسیک رو به من بدید چون بعضی از توابع مثل Math.asin نمیدونم بیسیکش چی میشه دقت کن برادرم من فکر کردم واسه اندروید استودیو سوال داری چون تو بخش اندروید استودیو تاپیک زده بودین تاپیک منتقل شد ب بخش بیسیک واسه بیسیکهم این ساب رو استفاده کنید و به متر وارد کنید : Sub DistanceCalc (p1 As GeoPoint, p2 As GeoPoint) As Long 'This sub calculates the distance and course between two Lat/Lon coordinates. 'The formulas are based on this site: http://williams.best.vwh.net/avform.htm (Ed Williams) Dim lat1, lat2, lon1, lon2, Dist, d As Double lat1=p1.Latitude lon1=p1.Longitude lat2=p2.Latitude lon2=p2.Longitude Try lat1 = lat1 * cPI / 180 lon1 = -lon1 * cPI / 180 lat2 = lat2 * cPI / 180 lon2 = -lon2 * cPI / 180 d = 2 * ASin(Sqrt(Power(Sin((lat1-lat2)/2),2) + Cos(lat1)*Cos(lat2)*Power(Sin((lon1-lon2)/2),2))) Dist = d * 180 * 60 * 1852/cPI ' If Cos(lat1) < 1e-7 Then ' If (lat1 > 0) Then ' tc1 = cPI ' Else ' tc1= 2*cPI ' End If ' Else ' sn = Sin(lon2-lon1) ' If Abs(sn) < 1e-7 Then ' If lat1 > lat2 Then tc1 = cPI Else tc1 = 2*cPI ' Else If sn < 0 Then ' tc1=ACos((Sin(lat2)-Sin(lat1)*Cos(d))/(Sin(d)*Cos(lat1))) ' Else ' tc1=2*cPI-ACos((Sin(lat2)-Sin(lat1)*Cos(d))/(Sin(d)*Cos(lat1))) ' End If ' End If ' 'calculating decimal X,Y ' Course = tc1 * 180 / cPI ' 'x=Dist* Cos(tc1-cPI/2) ' 'y=Dist* Sin(tc1-cPI/2) Return Abs(Dist) Catch ' Dist = 0 ' Course = 0 Return 0 End Try End Sub لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
msajad 501 ارسال شده در 25 آذر، ۱۳۹۴ سازنده اشتراک گذاری ارسال شده در 25 آذر، ۱۳۹۴ ببخشید یه مقدار گیچ شدم قسمت هایی که کامنت کردی باید استفاده کنم یا نه؟ بعد بعضی از متغییر ها مثل 1e-7 و sn تعریف نشدن :gol: لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
msajad 501
سلام دوستان
شعاع یک نقطه درنقشه رو دارم حالا میخوام بفهمم که نقطه دوم داخل شعاع نقطه اول هست یا نه
مثلا فرض کنید یک مکان داخل نقشه مشخص کردم و حالا میخوام ببینم نقطه دوم داخل شعاع یک کیلومتری مکان ثبت شده هست یا نه
لینک ارسال
به اشتراک گذاری در سایت های دیگر
5 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.