ios - ऑनल - जीपीएस ट्रैकर मोबाइल नंबर




जीपीएस को परिवर्तित करने के लिए एआर में ओपनएल शब्द का समन्वय (2)

यह इसलिए हो सकता है क्योंकि जीपीएस एक गोलाकार (आईएसएच) समन्वय प्रणाली का उपयोग करता है, और आप इसे किसी कार्टेशियन समन्वय प्रणाली (एक हवाई जहाज़) में सीधे मैप करने की कोशिश कर रहे हैं।

आप अपने जीपीएस निर्देशांक को एक स्थानीय संदर्भ विमान में बदलने के बजाय क्या कर सकते हैं, उन्हें सीधे मैप करने के बजाय यदि आप अपने स्थान पर अपने समन्वय प्रणाली का मूल मानते हैं, तो आप अपने स्थान के बीच महान चक्र दूरी (आर) और असर (थीटा) का उपयोग करके मूल और रिश्तेदार के आधार पर जमीन के विमान के बिंदुओं के ध्रुवीय निर्देशांक प्राप्त कर सकते हैं। दूरदराज के समन्वय, और उसके बाद काटेप्सियन को (एक्स, वाई) = (आर * कॉस (थेटा), आर * पाप (थीटा) का उपयोग करके समन्वयित किया जाता है।

आपके केस के लिए फिर से बेहतर, एक बार आपके पास सर्कल असर होने पर, आप केवल आर (दूरी) को दिखा सकते हैं। यह आपके पास एक्स और वाई दोनों में बिन्दुओं को खींच देगा, लेकिन वे अभी भी सही रिश्तेदार असर पर होंगे, आपको इसे किसी तरह से संकेत करने की आवश्यकता होगी।

एक अन्य दृष्टिकोण उन वस्तुओं के आकार को स्केल करना है, जिन्हें आप विज़ुअलाइज़ कर रहे हैं ताकि वे परिप्रेक्ष्य के लिए क्षतिपूर्ति की दूरी के साथ बड़े हो जाएं। इस तरह आप सीधे सही स्थिति और अभिविन्यास का उपयोग कर सकते हैं।

इस पृष्ठ में असर / दूरी एल्गोरिदम हैं: http://www.movable-type.co.uk/scripts/latlong.html

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

समस्या यह है कि दूर-दूर निर्देशांक अब भी "देख" करने के लिए बहुत दूर होंगे, इसलिए मैं एक समीकरण को अपनी स्थिति के करीब रहने के लिए हर चीज का अनुवाद करना चाहता हूं, लेकिन उनकी मूल रिश्तेदार स्थिति के साथ।

double kGpsToOpenglCoorRatio = 1000;
    - (void)convertGlobalCoordinatesToLocalCoordinates:(double)latitude x_p:(double *)x_p longitude:(double)longitude y_p:(double *)y_p {

        *x_p = ((latitude - _userLocation.coordinate.latitude)   * kGpsToOpenglCoorRatio);
        *y_p = ((longitude - _userLocation.coordinate.longitude) * kGpsToOpenglCoorRatio);

    } 

मैंने उन्हें "दूरी सीमा" देने के लिए स्क्वायर रूट को लागू करने की कोशिश की, लेकिन उनकी स्थिति अपेक्षाकृत उनके मूल स्थिति में गड़बड़ी हुई।


जीपीएस समन्वयन के समीकरण का उपयोग करते हुए मैंने इसे समाप्त कर दिया, चक्र के साथ पकड़े गए, मैं चाहता हूं कि सभी पोस को दिखाना होगा, यह पूरी तरह से काम करता है। मैंने कहीं भी बीयरिंग का इस्तेमाल नहीं किया यहां कोड है अगर कोई दिलचस्पी है:

- (void)convertGlobalCoordinatesToLocalCoordinates:(double)latitude x_p:(double *)x_p longitude:(double)longitude y_p:(double *)y_p {

    double x = (latitude - _userLocation.coordinate.latitude) * kGpsToOpenglCoorRatio;
    double y = (longitude - _userLocation.coordinate.longitude) * kGpsToOpenglCoorRatio;

    y = (y == 0 ? y = 0.0001 : y);
    x = (x == 0 ? x = 0.0001 : x);

    double slope = x / ABS(y);

    double outY = sqrt( kPoiRadius / (1+pow(slope,2)) );
    double outX = slope * outY;

    if (y < 0) {
        outY = -1 * outY;
    }

    *x_p = outX;
    *y_p = outY;
}