آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

نمایش زنده ی( لحظه به لحظه)مسافت real time

hamcalas  11 سال پیش  11 سال پیش
0 0

سلام برای نمایش لحظه به لحظه ی مسافت بدون استفاده از نقشه چه روشی را پیشنهاد می کنید ؟ می خواهم مسافت طی شده ی یک فرد را در طول روز مشخص کنم ٬ چون مبدا و مقصد مشخصی ندارد به مشکل برخوردم . لطفا راهنمایی کنید . ممنون

+1 0
هرجا که شروع به حرکت میکنه میشه مبدا و هرجاکه بایسته میشه مقصد و مجدد برای هر حرکت و توقف به همین ترتیب. (11 سال پیش)
0 0
ممنون ٬ ولی قرار نیست کاربر مبدا و مقصد را مشخص کند ٬و می خواهم مسافت طی شده حین راه رفتن را محاسبه کند یعنی هنوز مقصد مشخص نیست (11 سال پیش)
+1 0
متوجه شدم منم نگفت کاربر مشخص کنه گفتم هروقت شروع به حرکت کرد شما میگید نقطه قبلی مبدا بوده . (11 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
hamcalas  11 سال پیش
0 0

الان اینو نوشتم درست حساب نمی کند اگر نگاهی بهش بکنید ممنون میشم.مقتی تست می کنم بین کیلومتر ماشین و برنامه تفاوت زیادی ایجاد و این تفاوت بیشتر و بیشتر (چند کیلومتر)می شود .

 

     public void gpsLocation() {
G.locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() {

public void onLocationChanged(Location location) {
boolean isSetStartLocation ;


if (location.getAccuracy() < 100.0 && location.getSpeed() < 6.95) {// بررسی دقت جی پی اس
double latitiude = location.getLatitude();
double longitude = location.getLongitude();
//..........
if (isSetStartLocation == false) {//اگر مختصات شروع تایین نشده بود
startLatitude = latitiude;//اینجا مختصات شروع را می گیرم
startLonitude = longitude;
isSetStartLocation = true;//مشخص می کنم که نقطه شروع تعیین شده

}
distance = getDistance(startLatitude, startLonitude, latitiude, longitude);// فاصله را با توجه به مختصات شروع که گرفتم و مختصات فعلی می گیرم

if (distance >= 1000) {//وقتی مسافت 1000 شد مقدار را بر حسب کیلومتر بر ساعت ذخیره می کنم و مجددا نقطه شروع را می گیرم
finalKilometr = (finalKilometr) + ((long) (distance / 1000));
distance = 0;
isSetStartLocation = false;//درخواست مختصات شروع جدید

}

}


}


public void onStatusChanged(String provider, int status, Bundle extras) {}


public void onProviderEnabled(String provider) {

}


public void onProviderDisabled(String provider) {

}

});

}
//***********************getDistance***************************************************

public static float getDistance(double startLati, double startLongi, double goalLati, double goalLongi) {
float[] resultArray = new float[99];

Location.distanceBetween(startLati, startLongi, goalLati, goalLongi, resultArray);
return resultArray[0];
}


//*******************************************************************************************



 

+1 0
ببنید شما نیاز نیست هر لحظه چک کنید مقدار مسافت رو و هر 5 ثانیه یکبار کافی هست ، نکته دوم اینکه شما باید به اینصورت کار کنی مثلا من الان 1 دقیقه در جایی ساکن هستم و بعد شروع به حرکت میکنم هر 5 ثانیه یکبار موقعیت من رو بررسی کنید ببنید آیا من هنوز در حال حرکتم یا نه ، اگر در حال حرکت بودم که هیچی ولی اگر ایستادم آخرین موقعیت رو بگیرید و مسافت رو محاسبه کنید و در یک ارایه قرار بدید اگر دوباره شروع به حرکت کردم همینکارو باز انجام بدید. (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .