msajad 501 ارسال شده در 16 اسفند، 2015 اشتراک گذاری ارسال شده در 16 اسفند، 2015 سلام دوستان شعاع یک نقطه درنقشه رو دارم حالا میخوام بفهمم که نقطه دوم داخل شعاع نقطه اول هست یا نه مثلا فرض کنید یک مکان داخل نقشه مشخص کردم و حالا میخوام ببینم نقطه دوم داخل شعاع یک کیلومتری مکان ثبت شده هست یا نه لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Elyas Erfani 3,582 ارسال شده در 16 اسفند، 2015 اشتراک گذاری ارسال شده در 16 اسفند، 2015 ببخشید یه مقدار گیچ شدم قسمت هایی که کامنت کردی باید استفاده کنم یا نه؟ بعد بعضی از متغییر ها مثل 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 ارسال شده در 16 اسفند، 2015 اشتراک گذاری ارسال شده در 16 اسفند، 2015 سلام شما میتونید مسافت 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 ارسال شده در 16 اسفند، 2015 سازنده اشتراک گذاری ارسال شده در 16 اسفند، 2015 ممنون من فقط حواسم نبود تو بخش اندروید استدیو سوالم پرسیدم منتقل کنید به بیسیک دوم اول امکانش هست کد بیسیک رو به من بدید چون بعضی از توابع مثل Math.asin نمیدونم بیسیکش چی میشه لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Elyas Erfani 3,582 ارسال شده در 16 اسفند، 2015 اشتراک گذاری ارسال شده در 16 اسفند، 2015 ممنون من فقط حواسم نبود تو بخش اندروید استدیو سوالم پرسیدم منتقل کنید به بیسیک دوم اول امکانش هست کد بیسیک رو به من بدید چون بعضی از توابع مثل 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 ارسال شده در 16 اسفند، 2015 سازنده اشتراک گذاری ارسال شده در 16 اسفند، 2015 ببخشید یه مقدار گیچ شدم قسمت هایی که کامنت کردی باید استفاده کنم یا نه؟ بعد بعضی از متغییر ها مثل 1e-7 و sn تعریف نشدن :gol: لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
msajad 501
سلام دوستان
شعاع یک نقطه درنقشه رو دارم حالا میخوام بفهمم که نقطه دوم داخل شعاع نقطه اول هست یا نه
مثلا فرض کنید یک مکان داخل نقشه مشخص کردم و حالا میخوام ببینم نقطه دوم داخل شعاع یک کیلومتری مکان ثبت شده هست یا نه
لینک ارسال
به اشتراک گذاری در سایت های دیگر
5 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.