كيفية العثور على نتائج iPhone GPS الأكثر دقة
-
05-07-2019 - |
سؤال
أتذكر القراءة في مكان ما (أنسى أين) أنه إذا قام تطبيق iPhone بتشغيل CllocationManager مرة واحدة ، فإنه لم يأت بالنتائج الأكثر دقة.
هل هذا دقيق ، وإذا كان الأمر كذلك ، كيف يمكنني مكافحة هذه المشكلة؟ أريد أن أتوصل إلى نتائج GPS الأكثر دقة ، وأتساءل عما إذا كان مرة واحدة فقط ستنشئ أفضل النتائج.
شكرا على اي مساعدة!
المحلول
CLLocationManager *locationManager.desiredAccuracy = kCLLocationAccuracyBest;
سيعود أفضل نتيجة ممكنة لك. طريقة المندوب
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
ستستمر في إرجاع موقع المستخدم بناءً على تفضيلات الدقة التي حددتها.
إذا كنت بحاجة فقط إلى الموقع مرة واحدة ، فأنت بحاجة إلى تذكر الاتصال stopUpdatingLocation
على self
. إذا كنت بحاجة إلى تحديث موقع المستخدم بشكل مستمر ، فلا تتصل stopUpdatingLocation
أنا أستخدم Corelocation للحصول على موقع المستخدم ، وهو دقيق تمامًا لاستخدامي.
نصائح أخرى
ما تقرأه كان من المحتمل من دليل برمجة تطبيق iPhone:
لاسترداد الموقع الحالي للمستخدم ، قم بإنشاء مثيل لفئة CllocationManager وتكوينه بدقة ودقة مرغوبة. للبدء في استلام إشعارات الموقع ، قم بتعيين مندوب للكائن واتصل طريقة StartuPdatingLocation لبدء تحديد موقع المستخدم الحالي. عند توفر بيانات الموقع الجديدة ، يقوم مدير الموقع بإخطار كائن المندوب المعين. إذا تم بالفعل تسليم تحديث الموقع ، فيمكنك أيضًا الحصول على أحدث بيانات الموقع مباشرة من كائن CllocationManager دون انتظار تسليم حدث جديد.
[...]
يوصى بالتحقق من الطابع الزمني للحدث لأن خدمة الموقع غالبًا ما تُرجع حدث الموقع المخحي مؤقتًا على الفور. قد يستغرق الأمر عدة ثوان للحصول على إصلاح موقع خشن ، بحيث تعمل البيانات القديمة ببساطة كوسيلة لتعكس الموقع المعروف الأخير. يمكنك أيضًا استخدام الدقة كوسيلة لتحديد ما إذا كنت تريد قبول حدث ما. نظرًا لأنها تتلقى بيانات أكثر دقة ، قد تُرجع خدمة الموقع أحداثًا إضافية ، مع وجود قيم الدقة التي تعكس التحسينات وفقًا لذلك.