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

参考文档: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. JS求数组差集的几种方法

    第一种:如果不考虑IE8的兼容性完全可以使用Foreach ,此方法求出arr1 减去 arr2的差集, arr1 = [1,2,3,4];arr2 = [1,2,3]; var subSet = f ...

  2. js读取txt文件

    $('#selectAreaFile').on('change',function(e){//用户区域的文件选择        var files=e.target.files;        if ...

  3. ESP定律学习

    ESP = 堆栈平衡 ESP定理脱壳: (1)开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成红色)(这只是一  般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值) ( ...

  4. 基于Fusioncharts的报表统计

    先了解fusioncharts插件,fusioncharts是一款基于XML和flash的报表组件,支持Java.PHP.AngularJS等等开发语言,所以,开发出来,加入swf文件,就可以出现动态 ...

  5. 小白必读:闲话HTTP短连接中的Session和Token

    本文引用了刘欣的文章,感谢原作者的分享. 1.引言 Http协议在现今主流的IM系统中拥有无可替代的重要性(在IM系统中用HTTP发起的连接被大家简称为http短连接),但Http作为传统互联网信息交 ...

  6. Javascript高级编程学习笔记(75)—— 表单(3)表单字段

    表单字段 表单作为web应用中不可或缺的一部分,当然也是可以使用原生的 DOM 元素来访问的 除了标准的访问方式之外,每个表单都拥有一个 elements 属性,该属性保存着该表单所有 表单元素 的集 ...

  7. 从零开始单排学设计模式「简单工厂设计模式」黑铁 III

    阅读本文大概需要 2 分钟. 本篇是设计模式系列的第二篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统.所以现在打算重写,加上距离现在也有一段时间了,也算 ...

  8. IntelliJ IDEA 的使用方法总结

    创建普通 Java 项目 1.首次新建一个项目 如果是首次使用,在这个界面可以点击 Create New Project ,创建一个新项目. 选择Java,然后选好 JDK 的位置,接着点击下一步 N ...

  9. mongoose的save无效的问题

    概述 今天朋友遇到了使用mongoose中的save无效的问题,我通过查找资料帮他解决了,把心得记录下来,供以后开发时参考,相信对其他人也有用. 参考资料: Mongoose学习参考文档--基础篇 M ...

  10. websocket ----简介,以及demo

    #导报 from dwebsocket.decorators import accept_websocket WebSocket是一种在单个TCP连接上进行全双工通信的协议 WebSocket使得客户 ...