Wp7で住所の緯度と経度を見つける方法
元 :
場所の名前を「ニューヨーク」とすると、緯度と経度を取得したいと思います。
前もって感謝します
Wp7で住所の緯度と経度を見つける方法
元 :
場所の名前を「ニューヨーク」とすると、緯度と経度を取得したいと思います。
前もって感謝します
WebClient webClient = new WebClient();
string xml = webClient.DownloadString("http://nominatim.openstreetmap.org/search?city=%22new%20york%22&format=xml");
これは機能するはずです:
json文字列を逆シリアル化するためのクラス
public class PlaceInfo
{
public string place_id { get; set; }
public string licence { get; set; }
public string osm_type { get; set; }
public string osm_id { get; set; }
public List<string> boundingbox { get; set; }
public string lat { get; set; }
public string lon { get; set; }
public string display_name { get; set; }
public string @class { get; set; }
public string type { get; set; }
public double importance { get; set; }
public string icon { get; set; }
}
これは、Webサイトから情報を取得するためのコードです。形式はJSONで、c#のjsonserializorを使用しています。
System.Runtime.Serializationを使用します。System.Runtime.Serialization.Jsonを使用します。
WebClient webClient = new WebClient();
string jsonString = webClient.DownloadString("http://nominatim.openstreetmap.org/search?city=%22new%20york%22&format=json");
//load into memorystream
using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(jsonString)))
{
//parse
var ser = new DataContractJsonSerializer(typeof(PlaceInfo[]));
PlaceInfo[] obj = (PlaceInfo[])ser.ReadObject(ms);
}
配列objには、その名前で見つかったすべての場所が含まれるようになりました。たとえば、jsutは、obj[0].lonおよびobj[0].latで見つかった最初の場所になります。
多分あなたはopenstreetmapsを使うことができます:
http://nominatim.openstreetmap.org/search?city=%22new%20york%22&format=json
http://nominatim.openstreetmap.org/search?city= "--- cityname ---"&countrycodes = "--- CountryCode ---"&limit = 2&format = json
http://wiki.openstreetmap.org/wiki/Nominatim
結果はjsonまたはxmlとして取得できます