2012-05-11 34 views
1

我使用Bing地圖SOAP服務,GeocodeService在我的web應用程序,以反向地理地圖上的一個點(即得到經度和緯度國家名稱)所有國家名稱。我需要獲取Web服務可以返回的所有確切國家名稱。我試圖從here獲得所有國家名稱,但例如「前南斯拉夫共和國馬其頓共和國」在網絡服務中返回'FYRO馬其頓'。有沒有辦法讓Web服務可以返回所有確切的國家名稱,因爲我需要將它們存儲在數據庫中?獲取Bing地圖SOAP服務使用

回答

0

蠻力? (你可能會錯過梵蒂岡,但是我希望你會得到其他人,它也將花費大量時間試圖地理編碼海洋)

 GeoServiceReference.GeocodeServiceClient client = new GeoServiceReference.GeocodeServiceClient(); 

     var countries = new List<string>(); 

     for (double lat = 0; lat < 360; lat+=0.1) 
      for(double lon = 0; lon < 360; lon+=0.1) 
     { 
      var result = client.ReverseGeocode(new GeoServiceReference.ReverseGeocodeRequest 
      { 
       Location = new GeoServiceReference.Location 
       { 
        Latitude = lat, 
        Longitude = lon 
       } 
      }); 

      if (!countries.Contains(result.Results.First().Address.CountryRegion)) 
      { 
       Console.WriteLine(result.Results.First().Address.CountryRegion); 
       countries.Add(result.Results.First().Address.CountryRegion); 
      } 
     } 
+2

幾個要點:第一,緯度從-90變化到+90,經度從-180到+180 ......沒有一個從0到360 :)其次,如果我的數學是正確的,這種方法蠻力地理編碼超過12萬*點,並且正如你自己所說的,其中大部分都在海洋中。爲什麼不建立一個包含所有世界首都城市經緯度的列表,然後查看爲每個城市返回的國家?首先建立列表的時間很短,但您只需製作200個地理編碼即可 - 每個國家/地區一個。 –

+0

@AlastairAitchison是的,我同意你的觀點,在這裏有一個首都城市名單:http://lab.lmnixon.org/4th/worldcapitals.html雖然我不知道它有多完整 – paul