编程语言
首页 > 编程语言> > c# – 在asp.net中使用nominatim进行反向地理编码

c# – 在asp.net中使用nominatim进行反向地理编码

作者:互联网

我在我的asp.net网站(Visual Studio 2010,C#)中使用nominatim进行反向地理编码.

我在另一个网页上得到XML或json格式的答案,如下所示:

> json
> xml

我无法使用XML阅读器或HTTP响应读取此地址.

需要帮助才能将此文本转换为纯文本并显示在我的网站上.

解决方法:

好吧,你必须反序列化你从Web服务获得的json数据.
你必须定义两个新类,即:

 [DataContract]
        public class Address
        {
            [DataMember]
            public string road { get; set; }
            [DataMember]
            public string suburb { get; set; }
            [DataMember]
            public string city { get; set; }
            [DataMember]
            public string state_district { get; set; }
            [DataMember]
            public string state { get; set; }
            [DataMember]
            public string postcode { get; set; }
            [DataMember]
            public string country { get; set; }
            [DataMember]
            public string country_code { get; set; }
        }

        [DataContract]
        public class RootObject
        {
            [DataMember]
            public string place_id { get; set; }
            [DataMember]
            public string licence { get; set; }
            [DataMember]
            public string osm_type { get; set; }
            [DataMember]
            public string osm_id { get; set; }
            [DataMember]
            public string lat { get; set; }
            [DataMember]
            public string lon { get; set; }
            [DataMember]
            public string display_name { get; set; }
            [DataMember]
            public Address address { get; set; }
        }

之后,您将能够使用以下代码获取数据:

WebClient webClient = new WebClient();
            var jsonData = webClient.DownloadData("http://nominatim.openstreetmap.org/reverse?format=json&lat=23.02951&lon=72.48689");

            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(RootObject));
            var rootObject = ser.ReadObject(new MemoryStream(jsonData));

rootObject包含您需要的所有数据,以便将其转换为纯文本或任何其他格式.

标签:c,asp-net,openstreetmap,reverse-geocoding,nominatim
来源: https://codeday.me/bug/20190718/1491701.html