0

如何在Wp7中查找地址的纬度和经度

前任 :

如果我给出位置名称:“纽约”,那么我想得到它的纬度和经度。

提前致谢

4

3 回答 3

2
WebClient webClient = new WebClient();
string xml = webClient.DownloadString("http://nominatim.openstreetmap.org/search?city=%22new%20york%22&format=xml");
于 2013-02-06T09:18:18.997 回答
2

这应该有效:

用于反序列化 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; }
}

这是从网站获取信息的代码:格式为 JSON,我使用的是 c# 的 json 序列化器

使用 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

于 2013-02-06T10:04:30.007 回答
1

也许你可以使用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

于 2013-02-05T12:20:52.590 回答