zoukankan      html  css  js  c++  java
  • C#微信开发之旅(七):根据经纬度获取地址(百度地图Api)

    开发过程中遇到这样的需求,根据用户的地理位置不同,显示不同区域的产品。

    这里用到了微信:获取用户地理位置 的功能,(每隔5秒上报 或 进入回话时上报一次),我们根据微信推送过来的经纬度,来转换成实际地址,这里用到的是百度地图Api(要用的话先申请百度ak)。

    PS:微信的这个功能很不稳定,靠它不靠谱,经常不推送。。。(后来加了手动定位,百度地图Web定位组件 还不错,不是广告!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是针对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; }
        }

    调用:

                //需配置 WeiXineConst的BaiduAk
                string lat = "31.1430"; //经度
                string lng = "121.2943";// 纬度
                var model = WeiXinHelper.GeoCoder(lat, lng);
  • 相关阅读:
    kafka_consumer3->spark_master
    为什么.NET感觉上比Java差一点
    学习Scala: 初学者应该了解的知识
    函数式编程 : 一个程序猿进化的故事
    Scala underscore的用途
    不变(Invariant), 协变(Covarinat), 逆变(Contravariant) : 一个程序猿进化的故事
    Scala Collection简介
    C# on Visual Studio Code
    我的Machine Learning学习之路
    Scala on Visual Studio Code
  • 原文地址:https://www.cnblogs.com/hetring/p/4054595.html
Copyright © 2011-2022 走看看