2012-06-05 12 views
6

मुझे पता है कि मेरे फोन वर्तमान में मौजूद स्थान के लिए सही शीर्षक/चुंबकीय शीर्षक कैसे प्राप्त करें, लेकिन क्या दूरस्थ स्थान के लिए चुंबकीय विचलन/अस्वीकरण संभव है?सीएलएलोकेशन - किसी अन्य स्थान पर चुंबकीय गिरावट/विचलन पाएं

मैं क्या करना चाहता हूं मानचित्र पर किसी स्थान पर पिन छोड़ने और उस बिंदु से चुंबकीय भिन्नता के साथ वास्तविक असर और असर दोनों को खोजने में सक्षम होना चाहिए।

धन्यवाद!

+0

मेरे विचारों में से एक यह सीएलएलोकेशन की स्थान संपत्ति को लिखना था, लेकिन यह पूरी तरह से पढ़ा गया, ताकि खिड़की से बाहर हो। –

उत्तर

4

क्या आपने इसे हल किया है? अन्यथा आप दूरस्थ स्थान के एजीमुथ कोण की गणना कर सकते हैं। सबसे पहले चुंबकीय उत्तर शीर्षक के साथ और फिर सही उत्तर शीर्षक के साथ। अंत में आप चुंबकीय विचलन प्राप्त करने के लिए दोनों को घटाएं।

यहाँ कैसे एक दूरस्थ स्थान के लिए एक दिगंश कोण की गणना करने के लिए है:

-(float)azimuthFromLocations:(CLLocationCoordinate2D)first toCoordinate:(CLLocationCoordinate2D)second{ 
float longitudeDifference = second.longitude - first.longitude; 
float latitudeDifference = second.latitude - first.latitude; 
float possibleAzimuth = (M_PI * .5f) - atan(latitudeDifference/longitudeDifference); 

if (longitudeDifference > 0) 
    return possibleAzimuth; 
else if (longitudeDifference < 0) 
    return possibleAzimuth + M_PI; 
else if (latitudeDifference < 0) 
    return M_PI; 

return 0.0f; 
} 
+0

धन्यवाद, समाधान थोड़ी अधिक जटिल होने के बावजूद समाप्त हुआ। मुझे किसी दिए गए समन्वय के लिए विचलन को समझने के लिए विश्व चुंबकीय मॉडल का उपयोग करना पड़ा। –

+0

* विविधता। विचलन संवेदक में है। –

+0

यह समाधान भूमध्य रेखा के पास केवल (लगभग) सत्य है। जैसे ही आप ध्रुवों के नजदीक आते हैं, अजीमुथ दूरी पर आधारित होना चाहिए, न कि लेट/लोन निर्देशांक। – MikeMayer67

3

कोड गणना करने के लिए यह पहले से ही कहीं एक रूपरेखा में मौजूद है, क्योंकि यह CLHeading द्वारा प्रयोग किया जाता है जब स्थान सेवाएं उपलब्ध होना चाहिए।

यदि कोई भी उस कोड को ढूंढ सकता है या विश्व चुंबकीय मॉडल पोस्टिंग के लिए उद्देश्य सी है तो इसकी सराहना की जाएगी।

अद्यतन: मुझे एक अच्छा ओपन सोर्स आईओएस रैपर मिला! धन्यवाद Crookneck! https://github.com/stephent/ObjectiveWMM

एक Git submodule

run this command: 
$git submodule add https://github.com/stephent/ObjectiveWMM.git ObjectiveWMM 

Add these files to your Xcode project: 
CCMagneticDeclination.h 
CCMagneticDeclination.m 
CCMagneticModel.h 
CCMagneticModel.m 
NSDate+DecimalYear.h 
NSDate+DecimalYear.m 
WMM/EGM9615.h 
WMM/GeomagnetismHeader.h 
WMM/GeomagnetismLibrary.c 
WMM/WMM.COF 
0

के रूप में सरल स्थापना मैं विश्व चुंबकीय मॉडल के आधार पर स्विफ्ट में एक ही समाधान की जरूरत है,। https://github.com/kanchudeep/Geomagnetism-Swift

यह एक सरल एकल वर्ग है जो किसी भी परियोजना में छोड़ा जा सकता है और प्रयोग किया जाता है:

यहाँ मेरी कार्यान्वयन है।

संबंधित मुद्दे