डेटाबेस में स्थान तालिका है:
आईडी | अक्षांश | देशांतर --- | -------- | -------- 1 | 45.0000 | 90.0000 ...
तो मैं उन स्थानों को क्वेरी करने के लिए SQL का उपयोग कर सकता हूं, जिन्हें मैं चाहता हूं:
स्थान का चयन आईडी जहां के बीच अक्षांश और max_latitude और देशांतर के बीच मिन_लैगट्रैड और अधिकतम_लाँगइट;
जिसमें min_latitude, max_latitude, min_longitude, max_longitude का मतलब है 1KM के पास current_location के 4 सीमाएं।
अब मैं जानना चाहता हूं, मैं कैसे min_latitude, max_latitude, min_longitude प्राप्त कर सकता हूं , Current_location का उपयोग करते हुए max_longitude?
I इस प्रश्न का उत्तर देखा है, यदि बहुत अधिक सभी स्थानों हैं, तो मुझे नहीं लगता कि यह एक अच्छा समाधान है।
कृपया ध्यान रखें कि अधिकतम और न्यूनतम अक्षांश / लॉन के साथ आपका वांछित दृष्टिकोण उन पंक्तियों का चयन करता है जो वर्तमान स्थिति से बॉक्स के भीतर होते हैं और आरेख के रूप में एक वृत्त के भीतर नहीं।
चुनौती यह है कि डिग्री में अनुदैर्ध्य डेल्टा एक दूरी के लिए अक्षांश के साथ भिन्न है। यह कोड पृथ्वी को एक संपूर्ण क्षेत्र में सरल करता है।
डबल सेंटर लेट = 45.0; डबल सेंटर लॉन = 90.0; डबल डी = 1000; // मीटर की दूरी में वांछित दूरी डबल कोण = 45 * M_PI / 180; रेडियन में 45 डिग्री / एक डिग्री दोग्राद = 11131 9.9; // भूमध्य रेखा पर डिग्री से डिग्री तक मीटर दूरी अधिकतम maxLat = centerLat + (d / oneDegree) * पाप (कोण); डबल मैक्सलॉन = सेंटरएलॉन + (डी / (एकडेग्राइड * (कॉस (सेंटर लेट * एमओपीआई / 180))) * कॉस (कोण); डबल मिनलैट = सेंटर लाट - (डी / वनडेग्रि) * पाप (कोण); डबल मिनलोन = सेंटर लॉन - (डी / (एकडेग्रिड * (कॉस (सेंटर लेट * एमओजी / 180))) * कॉस (एंगल);
Comments
Post a Comment