2012-09-17 15 views
5

मैं आईओएस में एक भौगोलिक बाउंडिंग बॉक्स गणना करना चाहता हूं। यह aprox हो सकता है।आईओएस में भूगोल बाध्यकारी बॉक्स की गणना कैसे करें?

इनपुट पैरामीटर:

वर्तमान स्थान (उदाहरण: ४१.१,४५,४९५, -73,994901)

मीटर में दायरा: (उदाहरण: 2000)

आवश्यक आउटपुट:

MinLong : (उदाहरण: 41.9 995495)

MinLat: (उदाहरण: -74,004901)

MaxLong: (उदाहरण: 41,0005495)

MaxLat: (उदाहरण: -73,004901)

आवश्यकता: कोई नेटवर्क कॉल

किसी भी विचार ? मैपकिट/कोरलोकेशन इस प्रकार की चीज़ पेश नहीं कर रहा है?

कोई अन्य भौगोलिक एसडीके जिसका मैं उपयोग कर सकता था?

धन्यवाद

उत्तर

4

मुझे लगता है कि आप मानक MapKit कार्यों का उपयोग कर सकते हैं: MKCoordinateRegionMakeWithDistance, यह एक MKCoordinateRegion, जो वास्तव में सिर्फ एक केंद्र बिंदु (अक्षां, देशांतर) और डिग्री में latitudal और longitudal दिशा में फैला है वापस आ जाएगी। क्रमशः अक्षांश और देशांतर से अवधि का आधा जोड़ें/घटाएं और आपके पास वे मान हैं जिन्हें आप ढूंढ रहे हैं।

CLLocationCoordinate2D centerCoord = CLLocationCoordinate2DMake(41.145495, −73.994901); 
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(centerCoord, 2000, 2000); 

double latMin = region.center.latitude - .5 * startRegion.span.latitudeDelta; 
double latMax = region.center.latitude + .5 * startRegion.span.latitudeDelta; 
double lonMin = region.center.longitude - .5 * startRegion.span.longitudeDelta; 
double lonMax = region.center.longitude + .5 * startRegion.span.longitudeDelta; 

वैसे: इस छोटे से फैला के लिए देशांतर के लिए केवल प्रतिनिधि, किलोमीटर की एक जोड़ी के क्रम में है। quote Apple करने के लिए:

latitudeDelta
उत्तर करने वाली दक्षिण दूरी की राशि (डिग्री में मापा जाता है) अवधि के लिए उपयोग करने के लिए। अनुदैर्ध्य दूरी के विपरीत, जो अक्षांश के आधार पर भिन्न होता है, अक्षांश की एक डिग्री हर समय लगभग 111 किलोमीटर (69 मील) होती है।

longitudeDelta
पूर्व-से-पश्चिम दूरी की राशि (डिग्री में मापा जाता है) अवधि के लिए उपयोग करने के लिए। एक अक्षांश सीमा से फैले किलोमीटर की संख्या वर्तमान अक्षांश के आधार पर भिन्न होती है। उदाहरण के लिए, एक डिग्री रेखांश भूमध्य रेखा पर लगभग 111 किलोमीटर (6 9 मील) की दूरी फैलाता है लेकिन ध्रुवों पर 0 किलोमीटर तक गिर जाता है।

+0

यह कुछ हद तक समस्याग्रस्त जब आपका व्यूपोर्ट ओवरलैप 0 रेखांश चिह्न –

+1

उपर्युक्त गणना –

+0

@JamesBillingham या ± 180 देशांतर ± 9 0 अक्षांश अंक – wyu

0

मैं जानता हूँ कि मैं पार्टी के लिए देर से एक सा है, लेकिन मैं सिर्फ एक वर्ग GTBoundingBox बनाया कि हो सकता है (या शायद नहीं) मदद:

https://github.com/wpearse/ios-geotools

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