2009-08-16 27 views
5

मैं सिर्फ इस महान एपीआई भर में आ गए हैं: http://ipinfodb.com/ip_location_api.phpभौगोलिक-स्थान API

हालांकि, मैं भी महाद्वीप को पुनः प्राप्त करना चाहते हैं। क्या यह संभव है क्योंकि मुझे यह नहीं मिल रहा है।

शायद एक और एपीआई है जो स्वतंत्र रूप से उपलब्ध है जो शहर, देश और महाद्वीप की पेशकश करेगी? मैंने गूगल्स AJAX एपीआई की कोशिश की है लेकिन वे महाद्वीप की पेशकश नहीं करते हैं।

शायद मुझे बस जो कुछ भी पहले से ही महाद्वीपों में परिवर्तित करना है, कैसे करना है?

मुझे आशा है कि यह बहुत ही व्यक्तिपरक नहीं है!

धन्यवाद सभी

उत्तर

14

क्यों आप प्रत्येक देश कोड XX संबंधित महाद्वीप के लिए देश कोड के नक्शे नहीं है? बहुत मुश्किल नहीं होना चाहिए क्योंकि केवल 200 देशों और 5 या 7 महाद्वीप हैं।

संपादित करें: मैं PHP में इस तरह के तैयार डेटाबेस का ज्ञान नहीं है, लेकिन यहां मूल्य के रूप में कुंजी और महाद्वीप नाम के रूप में देश कोड के साथ सभी देशों के लिए एक json_encode 'घ सरणी है:

$json = '{"AD":"Europe","AE":"Asia","AF":"Asia","AG":"North America","AI":"North America","AL":"Europe","AM":"Asia","AN":"North America","AO":"Africa","AQ":"Antarctica","AR":"South America","AS":"Australia","AT":"Europe","AU":"Australia","AW":"North America","AZ":"Asia","BA":"Europe","BB":"North America","BD":"Asia","BE":"Europe","BF":"Africa","BG":"Europe","BH":"Asia","BI":"Africa","BJ":"Africa","BM":"North America","BN":"Asia","BO":"South America","BR":"South America","BS":"North America","BT":"Asia","BW":"Africa","BY":"Europe","BZ":"North America","CA":"North America","CC":"Asia","CD":"Africa","CF":"Africa","CG":"Africa","CH":"Europe","CI":"Africa","CK":"Australia","CL":"South America","CM":"Africa","CN":"Asia","CO":"South America","CR":"North America","CU":"North America","CV":"Africa","CX":"Asia","CY":"Asia","CZ":"Europe","DE":"Europe","DJ":"Africa","DK":"Europe","DM":"North America","DO":"North America","DZ":"Africa","EC":"South America","EE":"Europe","EG":"Africa","EH":"Africa","ER":"Africa","ES":"Europe","ET":"Africa","FI":"Europe","FJ":"Australia","FK":"South America","FM":"Australia","FO":"Europe","FR":"Europe","GA":"Africa","GB":"Europe","GD":"North America","GE":"Asia","GF":"South America","GG":"Europe","GH":"Africa","GI":"Europe","GL":"North America","GM":"Africa","GN":"Africa","GP":"North America","GQ":"Africa","GR":"Europe","GS":"Antarctica","GT":"North America","GU":"Australia","GW":"Africa","GY":"South America","HK":"Asia","HN":"North America","HR":"Europe","HT":"North America","HU":"Europe","ID":"Asia","IE":"Europe","IL":"Asia","IM":"Europe","IN":"Asia","IO":"Asia","IQ":"Asia","IR":"Asia","IS":"Europe","IT":"Europe","JE":"Europe","JM":"North America","JO":"Asia","JP":"Asia","KE":"Africa","KG":"Asia","KH":"Asia","KI":"Australia","KM":"Africa","KN":"North America","KP":"Asia","KR":"Asia","KW":"Asia","KY":"North America","KZ":"Asia","LA":"Asia","LB":"Asia","LC":"North America","LI":"Europe","LK":"Asia","LR":"Africa","LS":"Africa","LT":"Europe","LU":"Europe","LV":"Europe","LY":"Africa","MA":"Africa","MC":"Europe","MD":"Europe","ME":"Europe","MG":"Africa","MH":"Australia","MK":"Europe","ML":"Africa","MM":"Asia","MN":"Asia","MO":"Asia","MP":"Australia","MQ":"North America","MR":"Africa","MS":"North America","MT":"Europe","MU":"Africa","MV":"Asia","MW":"Africa","MX":"North America","MY":"Asia","MZ":"Africa","NA":"Africa","NC":"Australia","NE":"Africa","NF":"Australia","NG":"Africa","NI":"North America","NL":"Europe","NO":"Europe","NP":"Asia","NR":"Australia","NU":"Australia","NZ":"Australia","OM":"Asia","PA":"North America","PE":"South America","PF":"Australia","PG":"Australia","PH":"Asia","PK":"Asia","PL":"Europe","PM":"North America","PN":"Australia","PR":"North America","PS":"Asia","PT":"Europe","PW":"Australia","PY":"South America","QA":"Asia","RE":"Africa","RO":"Europe","RS":"Europe","RU":"Europe","RW":"Africa","SA":"Asia","SB":"Australia","SC":"Africa","SD":"Africa","SE":"Europe","SG":"Asia","SH":"Africa","SI":"Europe","SJ":"Europe","SK":"Europe","SL":"Africa","SM":"Europe","SN":"Africa","SO":"Africa","SR":"South America","ST":"Africa","SV":"North America","SY":"Asia","SZ":"Africa","TC":"North America","TD":"Africa","TF":"Antarctica","TG":"Africa","TH":"Asia","TJ":"Asia","TK":"Australia","TM":"Asia","TN":"Africa","TO":"Australia","TR":"Asia","TT":"North America","TV":"Australia","TW":"Asia","TZ":"Africa","UA":"Europe","UG":"Africa","US":"North America","UY":"South America","UZ":"Asia","VC":"North America","VE":"South America","VG":"North America","VI":"North America","VN":"Asia","VU":"Australia","WF":"Australia","WS":"Australia","YE":"Asia","YT":"Africa","ZA":"Africa","ZM":"Africa","ZW":"Africa"}'; 

बस से कॉल करने की:

echo '<pre>'; 
print_r(json_decode($json, true)); 
echo '</pre>'; 
+0

ठीक वही करता है जो मैं करने की कोशिश कर रहा हूं, लेकिन सरली में एक डेटाबेस है जो पहले से मौजूद है या PHP के पास ऐसा करने के लिए कुछ अंतर्निहित कार्य है? – Abs

+0

बहुत बढ़िया !! आपको वह आंख कहाँ मिली और आपको यह कितना सटीक लगता है? – Abs

+0

AFAIK यह एक विश्वसनीय स्रोत है, मैंने इसे एक वेब सेवा (http://services.sapo.pt/GIS/GetCountries) पर उपलब्ध पाया है, मैंने इसे अभी स्क्रैप किया है और महाद्वीप नामों का अंग्रेजी में अनुवाद किया है। –

6

वहाँ केवल 200ish देशों और केवल 6 महाद्वीपों है, तो मैं सवाल क्यों आप जानकारी की कि बिट निर्धारित करने के लिए एक वेब सेवा की आवश्यकता है ... जब तक आप उन की च एक बहुत हो रही पर योजना रोम देश इतने राजनीतिक रूप से अस्थिर हैं कि वे आपके ऐप से पहले नाम बदल देंगे या अस्तित्व में रहेंगे। बस एक स्थिर सूची रखें।

इसके अलावा, सभी देश एक महाद्वीप पर नहीं हैं। उदाहरण के लिए न्यूजीलैंड ऑस्ट्रेलिया का हिस्सा नहीं है (कम से कम विकिपीडिया के अनुसार)।

यदि आप उपयोगकर्ता के देश को प्रोग्रामेटिक रूप से निर्धारित कर सकते हैं, तो आपके पास अपनी स्थिर स्थिति में अपने महाद्वीप को देखने के लिए पर्याप्त जानकारी है। यह आपको उस जानकारी को इकट्ठा करने और डेटाबेस या एक्सएमएल फ़ाइल में रखने के लिए एक घंटा लेगा, और यह शायद ही कभी बदल जाएगा। महाद्वीप गतिशील रूप से निर्धारित करने के तरीके को जानने के लिए आप लगभग उस समय तक खर्च कर चुके हैं।

+0

अंतिम जानकारी क्या है? आप महाद्वीप का मतलब है?मुझे इसे निर्धारित करने की ज़रूरत है क्योंकि मैं उपयोगकर्ताओं के महाद्वीप स्थान के आधार पर विभिन्न कार्यों को करना चाहता हूं और फिर देश, शहर आदि द्वारा ड्रिल करना चाहता हूं। मेरा प्रश्न सरल हो सकता है, लेकिन विचार की मेरी रेखा नहीं है। :) – Abs

+0

@Abs मेरा संपादन देखें (स्पष्टीकरण में मदद के लिए उत्तर में टिप्पणी को स्थानांतरित करें) –

+0

धन्यवाद रेक्स। मै समझता हुँ। यह सिर्फ इतना है कि मैं आलसी हूं और उम्मीद कर रहा था कि यह तैयार होगा और सभी मेरे लिए पैक किए जाएंगे! – Abs

1

MaxMind GeoLite Country और MaxMind GeoLite City देखें।

यदि यह महाद्वीप है तो आप मुख्य रूप से (मुझे नहीं पता कि जियोलाइट स्टोर करता है या नहीं) आप हमेशा जिओलाइट डेटाबेस से देश कोड को world database के देश कोड पर मैप कर सकते हैं जो MySQL एक नमूना डेटाबेस के रूप में उपयोग करता है। इसमें प्रत्येक देश के लिए महाद्वीप है।

+0

मैंने इन लोगों की कोशिश की है और उनका कार्यान्वयन गन्दा है, मुफ्त सुविधा के लिए सटीकता इतनी महान नहीं है। लेकिन आप सही हैं, यह सबसे अच्छा है जो मैंने पार किया है, लेकिन मुझे कुछ बेहतर और हल्का चाहिए। – Abs

+2

@ एबीएस - mysql विश्व डेटाबेस महाद्वीप है। यदि जियोलाइट डेटाबेस (ओं) में देश कोड हैं (चेक नहीं किया गया है) यह काम कर सकता है। – karim79

+0

अच्छा बिंदु। मुझे लगता है कि यह करता है। प्रिय भगवान, मैं एक साधारण हूँ! :) – Abs