RegionInfo
クラスまたはその他の方法を使用して、C#で国の大陸を見つける方法はありますか?
たとえば、国名に「デンマーク」を指定すると、「ヨーロッパ」が返されます。
RegionInfo
クラスまたはその他の方法を使用して、C#で国の大陸を見つける方法はありますか?
たとえば、国名に「デンマーク」を指定すると、「ヨーロッパ」が返されます。
.NETFrameworkではそのようなものはありません。また、ユーラシア大陸とオセアニアの地理的定義についてもかなりあいまいです。使用されている6つの異なる定義があります。独自のdbaseが必要になります。
ハッシュテーブルを保存できます。エントリには、キーとして国名、値として大陸名が含まれます。パブリックデータベースからこのテーブルを生成するだけで、取得したらクエリを実行できます。また、かなり高速です。
http://www.geonames.org/countries/
そこからデータベースを取得できます
大陸は数か国、国は数百か国しかないので、自分でテーブルを作るのはそれほど難しいことではありません。大陸が何であるか(オーストラリア/オセアニア/オーストラレーシア/アジアは時々特に厄介なものです)、そして例えばトルコとロシアがヨーロッパ、アジア、またはその両方にあるかどうかについては意見の違いがあります。それでも、自分でロールすることで、少なくともこれらの問題について自分で電話をかけることができます。
http://products.wolframalpha.com/api/を使用できます
http://www.wolframalpha.com/input/?i=continent+THECOUNTRY
http://www.wolframalpha.com/input/?i=continent+sweden
RegionInfoは大陸を保存しません。ただし、 GeoNames.org国情報を使用してデータベースを構築できます。データ形式は、utf8エンコーディングのタブ区切りテキストです。それはあなたが必要とするすべての情報とより多くを持っています。
古い質問だとは思いますが、C#用のライブラリを作成しました。これには、大陸情報が含まれています。私のプロジェクトはここNager.Countryで見つけることができます。お役に立てば幸いです。
nugetパッケージも利用可能ですinstall-package Nager.Country
例
ICountryProvider countryProvider = new CountryProvider();
var countryInfo = countryProvider.GetCountry(Alpha2Code.DK);
唯一の解決策は、必要な大陸モデルに従って独自のルックアップリストを作成することです。たとえば、米国と英国では、アメリカを2つの別々の大陸(北アメリカと南アメリカ)と見なしていますが、他のほとんどの国の人々は、アメリカは単一の大陸であると教えられています。
また、いくつかの国が2つの大陸にあることも考慮する必要があります。ロシアの一部はヨーロッパにあり、残りはアジアにあります。トルコも同じです。