zoukankan      html  css  js  c++  java
  • 集成腾讯位置服务到webapi

    经纬度转换为详细地址信息

    参考文档:http://lbs.qq.com/webservice_v1/guide-gcoder.html

    首先申请key,如果使用的是服务端请求webservice API ,申请密钥的时候要选择“服务端”,创建成功之后设置ip白名单,否则默认全部ip都可以使用的你的key。

    下面是我封装的工具类

        /// <summary>
        /// 腾讯地图经纬度转换帮助类
        /// 参考文档:http://lbs.qq.com/webservice_v1/guide-gcoder.html
        /// </summary>
        public class TencentMapHelper
        {
            /// <summary>
            /// 根据经纬度返回对应的城市信息
            /// </summary>
            /// <param name="location">纬度+,+经度:36.15849,120.42385</param>
            /// <returns>转化之后的地址</returns>
            public static TencentAddressModel GetAddress(string location)
            {
                var key = ConfigurationManager.AppSettings["mapkey"];
                var convertAddress = $"http://apis.map.qq.com/ws/geocoder/v1/?location={location}&key={key}";
                var res = HttpClientHelper.SendMessage(convertAddress);
                var ipModel = JObject.Parse(res).ToObject<TencentAddressModel>();
    
                return ipModel;
            }
        }
    
        /// <summary>
        /// 经纬度转换后得到的结果实体
        /// </summary>
        public class TencentAddressModel
        {
            /// <summary>
            /// 状态码,0为正常,
            /// 310请求参数信息有误,
            /// 311Key格式错误,
            /// 306请求有护持信息请检查字符串,
            /// 110请求来源未被授权
            /// </summary>
            public string status { set; get; }
    
            /// <summary>
            /// 状态说明
            /// </summary>
            public string message { set; get; }
    
            /// <summary>
            /// 逆地址解析结果
            /// </summary>
            public AddressModel result { set; get; }
    
            /// <summary>
            /// 转换之后的坐标。若有多个坐标,则用 “;”进行区分和间隔
            /// </summary>
            public string locations { set; get; }
    
        }
    
        /// <summary>
        /// result
        /// </summary>
        public class AddressModel
        {
            /// <summary>
            /// 地址描述
            /// </summary>
            public string address { set; get; }
    
            /// <summary>
            /// 位置描述
            /// </summary>
            public RegeModel formatted_addresses { set; get; }
    
            /// <summary>
            /// 地址部件,address不满足需求时可自行拼接
            /// </summary>
            public Component address_component { set; get; }
            
        }
    
        /// <summary>
        /// 位置描述
        /// </summary>
        public class RegeModel
        {
            /// <summary>
            /// 经过腾讯地图优化过的描述方式,更具人性化特点
            /// </summary>
            public string recommend { set; get; }
    
            /// <summary>
            /// 大致位置,可用于对位置的粗略描述
            /// </summary>
            public string rough { set; get; }
        }
    
        /// <summary>
        /// 地图组件
        /// </summary>
        public class Component
        {
            /// <summary>
            /// 国家
            /// </summary>
            public string nation { set; get; }
    
            /// <summary>
            ////// </summary>
            public string province { set; get; }
    
            /// <summary>
            ////// </summary>
            public string city { set; get; }
    
            /// <summary>
            /// 区,可能为空字串
            /// </summary>
            public string district { set; get; }
    
            /// <summary>
            /// 街道,可能为空字串
            /// </summary>
            public string street { set; get; }
    
            /// <summary>
            /// 门牌,可能为空字串
            /// </summary>
            public string street_number { set; get; }
        }

    反射的实体只是写了我自己需要的字段,大家可以加上自己需要的字段,就可以直接使用了。

    上面的代码只是把经纬转化为详细地址信息,大家如果有别的需求可以自己修改。重在分享。

  • 相关阅读:
    UML类图学习总结
    Java和C# RSA加解密相互通信和使用公钥加密传输
    C#des加密算法指定键的大小对于此算法无效
    WCF--找不到具有绑定 BasicHttpBinding 的终结点的与方案 https 匹配的基址。注册的基址方案是 [http]。
    IIS7 使用server farms 进行负载均衡
    iis7 未注册framework4 导致 莫名的404错误
    启用代理导致 有道云笔记未知错误、网络错误和OneDrive断线
    AspNetCore发布到Centos7
    c# 操作临时数据---XML操作
    c# 获取程序目录
  • 原文地址:https://www.cnblogs.com/dawenyang/p/9018728.html
Copyright © 2011-2022 走看看