أكثر

كفاءة حساب أبعد نقطة من الأصل

كفاءة حساب أبعد نقطة من الأصل


أحاول إيجاد طريقة ذكية / فعالة لحساب أبعد نقطة عن الأصل ، مع إعطاء قائمة من نقاط الطول والخط العرض.

على سبيل المثال ، إذا كنت تحاول العثور على أقرب نقطة من أصل ، يمكنني تكييف هذه الوظيفة التي تجد جميع النقاط القريبة:

def getNearby (origin_dict، geo_dict_list، radius_miles): # مقتبس من http://www.scribd.com/doc/2569355/Geo-Distance-Search-with-MySQL # سيؤدي هذا إلى إنشاء مربع lat + lng # الزوايا ليست صحيح من الناحية الفنية ، لكن الفكرة العامة: # lat_1 ---> lng_1 # | | # | | # | | # lat_2 ---> lng_2 # إذا كانت النقطة الجغرافية داخل مربع خط العرض + lng ، فقم بإجراء عملية حسابية مكلفة للمسافة الدقيقة # لمعرفة ما إذا كانت داخل دائرة نصف القطر مع / في المربع (الدائرة غير معروضة) # geo_dict_list = [ {'lat': 1.234، 'lng': 5.678}،…] offset = radius_miles / 69.1 lat_1 = origin_dict ['lat'] - offset lat_2 = origin_dict ['lat'] + offset offset = radius_miles / abs (math.cos (math.radians (origin_dict ['lat'])) * 69.1) lng_1 = origin_dict ['lng'] - offset lng_2 = origin_dict ['lng'] + offset return_indexes = [] للفهرس ، geo_dict في التعداد (geo_dict_list): إذا (geo_dict ['lat']> = lat_1) و (geo_dict ['lat'] <= lat_2) و (geo_dict ['lng']> = lng_1) و (geo_dict ['lng'] <= lng_2): إذا getDistance (origin_dict، geo_dict، الوحدات = "أميال") <= radius_miles: return_indexes.append (index) إرجاع return_indexes

هل هناك طريقة مماثلة لمقاربة هذا لإيجاد أبعد نقطة عن الأصل؟ أو ربما هناك طريقة لتنظيم القائمة الأصلية بطريقة تسمح للمرء بالقيام ببعض الفرز الذكي؟


ما هو الأقرب إلى الأصل هو الأبعد عن الزاوية المقابلة لـ "المربع" ، بشرط ألا تكون الكرة الأرضية بأكملها التي تتحدث عنها.

تم اختبار هذا على 10 درجات "مربعة" باستخدام 100 نقطة عشوائية:


شاهد الفيديو: Računanje s postocima