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

参考文档: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; }
}

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

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

集成腾讯位置服务到webapi的更多相关文章

  1. # 初体验之腾讯位置服务彩云天气开发者api

    初体验 最近接触到了boxjs,看到了里面一个比较有意思的彩云天气的脚本,由于自己本身就是彩云天气pro的用户,日常使用过程中感觉到彩云的降雨提醒还是挺方便的,于是就准备开始使用这个天气的脚本. 脚本 ...

  2. 腾讯位置服务API快速入门

    前言 之前项目有个需求,在网页上显示微信发送过来的位置信息,该开始想用百度地图,后来发现腾讯地图相对简单一点 快速入门 申请Key https://lbs.qq.com/guides/startup. ...

  3. 集成TBS(腾讯浏览服务)x5内核的webView

    由于公司产品需要展示html5页面,一开始我使用的是android自带webview,一些简单的页面没什么问题,但是碰到比较复杂的页面就让人无语了. 1.Android各大厂商都有自己定制的ROM,导 ...

  4. 腾讯浏览服务X5内核集成

    腾讯浏览服务X5内核集成https://www.jianshu.com/p/8a7224ff371a TBS 腾讯浏览器服务接入文档https://x5.tencent.com/tbs/guide/s ...

  5. 使用springboot集成腾讯云短信服务,解决配置文件读取乱码问题

    springboot集成腾讯云短信服务: (1)导入依赖 <dependency> <groupId>org.springframework.boot</groupId& ...

  6. 安卓开发笔记(二十四):手把手教你一步步集成腾讯X5内核(Tencent TBS X5)

    1.为什么要集成腾讯X5内核? X5内核相对于系统webview,具有下述明显优势: 1) 速度快:相比系统webview的网页打开速度有30+%的提升: 2) 省流量:使用云端优化技术使流量节省20 ...

  7. Android使用腾讯浏览服务X5内核

    [前期准备] 腾讯X5 jar包下载地址 [点击打开] 本次完整DEMO源码 [打开Github] [集成步骤] 第一步:下载jar包添加到项目 第二步:添加权限 <uses-permissio ...

  8. Unity3D集成腾讯语音GVoice SDK

    友情提示:最近发现腾讯GVoice有另一个官网,叫做腾讯游戏服务,经过对比发现这个网站才是最新的,下面我介绍的那个估计是已经废弃的,但不知道为啥老的网站没有直接链接到新网址而是仍然保留了.不过新官网的 ...

  9. TencentTbs腾讯浏览服务 x5内核使用

    Tencent TBS (下简称TBS) 腾讯浏览服务 What is it? 百度百科解释: 腾讯浏览服务(Tencent Browsing Service,以下简称TBS),由腾讯X5浏览服务升级 ...

随机推荐

  1. Java实现zip压缩文件的解压

    需求描述: 前段时间写了一篇博客<Java实现对文本文件MD5加密并ftp传送到远程主机目录>,实现了一部分的业务需求.然而有些业务可能不止传送一个文件,有时候客户需要传多个文件,原有系统 ...

  2. EF学习笔记(十二):EF高级应用场景

    学习总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇链接:EF学习笔记(十一):实施继承 本篇原文链接:Advanced Entity Framework Scenari ...

  3. 《python语言程序设计》_第5章_循环

    #5.1_引言 程序1: 结果: 程序2: 结果: sum is 45 ##注意整个循环语句都要内缩进循环内部 ##ctrl+c中止一个无限循环运行 程序清单5-1: 结果: #5.2.1_实例研究: ...

  4. App性能测试之启动时间(安卓)手动+脚本

    这个测试可以使用adb工具,adb的安装方式 测试策略 安装后首次启动 常规冷启动 热启动(一般这个都很少测试) 针对1和2的测试方法 步骤1:在cmd中输入如下命令 adb logcat * > ...

  5. post推送消息时的乱码

    URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求 ...

  6. [转]Request Flow for Provisioning Instance in Openstack

      One of the most important use-case in any cloud is provisioning a VM . In this article we shall do ...

  7. 使用Python多渠道打包apk

    使用Python生成多渠道包 往apk包中追加到一个空文件到META-INF目录以标识渠道,Android中获取此文件即可获得App的下载渠道 首先在info文件夹新建一个qdb.txt的空文本文件 ...

  8. Akka-Cluster(6)- Cluster-Sharding:集群分片,分布式交互程序核心方式

    在前面几篇讨论里我们介绍了在集群环境里的一些编程模式.分布式数据结构及具体实现方式.到目前为止,我们已经实现了把程序任务分配给处于很多服务器上的actor,能够最大程度的利用整体系统的硬件资源.这是因 ...

  9. Javascript高级编程学习笔记(83)—— 富文本选区(3)

    富文本选区 在富文本编辑器中使用 iframe 的 getSelection() 方法可以获取选中的文本 该方法是 window 对象和 document 对象的属性,调用后会返回一个当前选选择文本的 ...

  10. Javascript高级编程学习笔记(32)—— 客户端检测(1)能力检测

    能力检测 浏览器厂商虽然在实现公共接口方面投入了大量的精力 但是每种浏览器仍旧存在许多差异 为了让网页能跨浏览器的运行,对浏览器差异做的兼容处理自然无法避免 其中最常用的也就是我们现在所说的能力检测 ...