यह पृष्ठ यूएस में अपने अक्षांश और देशांतर के साथ, सभी ज़िप कोडों के डेटाबेस (सीएसवी में) प्रदान करता है। http://zips.sourceforge.net/
फ़ाइल 500k अनपॅक है। यहां डेटा की पहली कुछ पंक्तियां दी गई हैं:
"35004", "AL", " 33.606379", " -86.50249", "Moody", "Alabama"
"35005", "AL", " 33.592585", " -86.95969", "Adamsville", "Alabama"
"35006", "AL", " 33.451714", " -87.23957", "Adger", "Alabama"
इस डेटा को स्थानीय डेटाबेस में डंप करें। निकटतम बिंदु खोजने के लिए अपने निर्देशांक और डेटाबेस में से किसी की तुलना करने के लिए हावर्सिन फॉर्मूला का उपयोग करें। कोरलोकेशन में एक फ़ंक्शन मिलता है, जिसमें से आप भी इसका उपयोग कर सकते हैं।
- (CLLocationDistance)getDistanceFrom:(const CLLocation *)location
इस पृष्ठ में सी में एक हावरसिन फ़ंक्शन है और ज़िप डेटाबेस के बारे में जानकारी है।
http://www.jaimerios.com/?p=39
संपादित करें: उसके बारे में यहां काफी दूर की गणना के बारे में गूगल से स्पष्टीकरण। यह MySQL और PHP का उपयोग करता है, लेकिन निकटतम बिंदु खोजने के लिए एसक्यूएल भी उपयोगी है। यह GetDistanceFrom फ़ंक्शन के बजाय एसक्यूएल का उपयोग करके क्वेरी करने के लिए शायद तेज़ होगा।
http://code.google.com/support/bin/answer.py?answer=87134&topic=11364
निकटतम 20 स्थानों है कि 37 करने के लिए 25 मील की दूरी के दायरे में हैं का पता लगाएं, -122 समन्वय:
SELECT id, (3959 * acos(cos(radians(37))
* cos(radians(lat)) * cos(radians(lng) - radians(-122))
+ sin(radians(37)) * sin(radians(lat))))
AS distance FROM markers HAVING distance < 25
ORDER BY distance LIMIT 0 , 20;
मील के बजाय किलोमीटर की दूरी से खोजने के लिए, 6371 के साथ 3959 की जगह।
मैं तुम्हें CoreLocation में मिल जाएगा शक है, लेकिन यह एक कोशिश के लायक है ... यह देखने के लिए दिलचस्प होगा अगर यह – hhafez