Home  >  Article  >  WeChat Applet  >  C# WeChat development: Get address based on latitude and longitude

C# WeChat development: Get address based on latitude and longitude

高洛峰
高洛峰Original
2017-03-04 15:00:331923browse

During the development process, we encountered such a need to display products in different regions according to the user's geographical location.

WeChat is used here: the function of obtaining the user's geographical location (reported every 5 seconds or when entering a reply), we convert it into an actual address based on the longitude and latitude pushed by WeChat, which is used here It is Baidu Map API (if you want to use it, apply for Baidu ak first).

PS: This function of WeChat is very unstable, it is unreliable, and it often does not push. . . (Manual positioning was added later, and the Baidu Map Web positioning component is pretty good, not an advertisement! 0.0)

#region 根据经纬度 获取地址信息 BaiduApi

        /// <summary>
        /// 根据经纬度  获取 地址信息
        /// </summary>
        /// <param name="lat">经度</param>
        /// <param name="lng">纬度</param>
        /// <returns></returns>
        public static BaiDuGeoCoding GeoCoder(string lat, string lng)
        {
            string url = string.Format(WeiXinConst.Baidu_GeoCoding_ApiUrl, lat, lng);

            var model = HttpClientHelper.GetResponse<BaiDuGeoCoding>(url);

            return model;
        }

        #endregion

BaiduGeoCoding is an object encapsulated for the corresponding results of the Api:

public class BaiDuGeoCoding
    {
        public int Status { get; set; }
        public Result Result { get; set; }
    }

    public class Result
    {
        public Location Location { get; set; }

        public string Formatted_Address { get; set; }

        public string Business { get; set; }

        public AddressComponent AddressComponent { get; set; }

        public string CityCode { get; set; }
    }

    public class AddressComponent
    {
        /// <summary>
        /// 省份
        /// </summary>
        public string Province { get; set; }
        /// <summary>
        /// 城市名
        /// </summary>
        public string City { get; set; }

        /// <summary>
        /// 区县名
        /// </summary>
        public string District { get; set; }

        /// <summary>
        /// 街道名
        /// </summary>
        public string Street { get; set; }

        public string Street_number { get; set; }

    }

    public class Location
    {
        public string Lng { get; set; }
        public string Lat { get; set; }
    }

Call:

            //需配置 WeiXineConst的BaiduAk
            string lat = "31.1430"; //经度
            string lng = "121.2943";// 纬度
            var model = WeiXinHelper.GeoCoder(lat, lng);

For more C# WeChat development: For related articles about obtaining addresses based on longitude and latitude, please pay attention to the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn