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

参考文档: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. window系统中 mongodb创建用户名和密码

    use admindb.createUser({user:"root",pwd:"root",roles:[{"role":"us ...

  2. 用python实现文件自动上传

    一.简介 用python实现文件自动上传,主要源于在测试项目中想实现自动化上传文件功能,无须手工输入.比如从windows到Linux,或从Linux到windows,或从Linux到Linux. 主 ...

  3. shell中的常用条件判断

    -e :该“文件名”是否存在.exit-d :该文件名是否为目录.dir-f  :该文件名是否为普通文件.file -b:该文件是否为块文件.block -r :该文件是否具有可读属性 read-w ...

  4. IDEA的Database表的基本操作

    1.创建表 方法一:直接创建:右键-new-table 方法2: 参考别的表,直接用语句,右键-DDL and Sources- 然后直接在控制台修改 修改后直接运行,表就建好了 2.备份表 先用上面 ...

  5. JS canvas 画板 撤销

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  6. 大数据之hiveSQL

    最近增加了学习java基础算法,包括几种排序算法,二叉树(前序,后序,中序),队列和栈,bmp搜索,广义搜索算法,迭代等等一些技巧(自己动手绝对比单纯的理论要强的多,多练练) HIVE是hadoop生 ...

  7. JavaScript自定义鼠标右键菜单

    下面为JavaScript代码 window.onload = function () { //好友列表 var f = 0; //判断指定id的元素在页面中是否存在 if (document.get ...

  8. “Xavier”安卓木马分析:可静默收集数据并远程代码执行

    趋势科技研究发现了一款Android恶意木马——Xavier.在谷歌Play应用市场中,超过800款Android应用感染了该恶意木马,影响数百万Android用户.感染的应用范围覆盖图片编辑器,墙纸 ...

  9. 如何用kaldi做孤立词识别二

    基本模型没有变化,主要是调参,配置: %WER     65%  下降到了     15% 后面再继续优化... Graph compilation finish!steps/decode.sh -- ...

  10. Java的简单类型不能够精确的对浮点数进行运算

    由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精确的浮点数运算,包括加减乘除和四舍五入. import java.math.BigDecimal; /** * 由于Java的简单类 ...