2009-08-16 13 views
5

私はこの偉大なAPIに遭遇していますhttp://ipinfodb.com/ip_location_api.phpジオロケーションAPI

をしかし、私はまた、大陸を取得したいと思います。私はそれを見つけることができないので、これも可能ですか?

多分、都市、国および大陸を提供する自由に利用できる別のAPIがありますか?私はGoogleのAJAX APIを試しましたが、どちらも大陸を提供していません。

多分私はすでに大陸に持っているものに変換する必要があるだろう、どのように!

これはあまりにも主観的ではないと思います!

おかげで、すべての

答えて

14

は、なぜあなたは、それぞれの大陸にそれぞれのCountryCode XX国番号をマップしませんか?約200の国と5つまたは7つの大陸しか存在しないので、あまりにも厳しくはありません。

編集:私はPHPで、このような準備データベースの知識がないが、ここでは値としてキーと大陸名として国コードとすべての国のjson_encode D「の配列である:

$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これは信頼できる情報源ですが、Webサービス(http://services.sapo.pt/GIS/GetCountries)で利用できるとわかりました。私はそれを削り取り、大陸名を英語に翻訳しました。 –

6

のみ200ish国のみ6大陸にありますので、あなたは情報のビットを決定するために、Webサービスを必要とする理由あなたはFユーザーの多くを得ることを計画していない限り、私は...質問ですrom国は政治的に不安定なので、あなたのアプリが行う前に名前を変更したり、存在をやめたりするでしょう。ちょうど静的なリストを保つ。

また、すべての国が大陸にあるわけではありません。例えば、ニュージーランドはオーストラリアの一部ではない(少なくともウィキペディアによると)。

ユーザーの国をプログラムで決定できる場合は、所有している静的リストで大陸を検索するのに十分な情報があります。その情報を自分で組み立ててデータベースやXMLファイルに入れるには1時間かかりますが、変更することはめったにありません。大陸を動的に決定する方法を見つけようとすると、すでにかなりの時間を費やしています。

+0

最後のビット情報は何ですか?あなたは大陸を意味しますか?私はユーザーの大陸の場所に基づいてさまざまな機能を実行したいと思うので、これを決定する必要があります。次に、国、都市などでドリルダウンします。私の質問は単純かもしれませんが、私の考え方はそうではありません。 :) – Abs

+0

@Absは私の編集を参照してください(解説に答えを移して明確にする) –

+0

ありがとうRex。わかりました。それはちょうど私が怠け者であり、それが準備され、すべて私のためにパッケージ化されることを望んでいたことです! – Abs

1

MaxMind GeoLite CountryMaxMind GeoLite Cityをご覧ください。

GeoLiteが保存しているかどうかわからない大陸なら、GeoLiteデータベースの国コードをMySqlがサンプルデータベースとして使用するworld databaseの国コードにマップすることができます。それは各国が保管されている大陸を持っています。

+0

私はこれらの人を試してみましたが、その実装は面倒です、精度は無料の機能にはそれほど大きくありません。しかし、あなたは正しい、私が出会った最高の、しかし私はより良いと軽いものが必要です。 – Abs

+2

@Abs - mysqlの世界データベースには大陸があります。 GeoLiteデータベースに国コードがある場合(チェックしていない場合)、これは機能します。 – karim79

+0

良い点。私はそれがそうだと思う。親愛なる神、私はシンプトンです! :) – Abs

関連する問題