Unity之GPS定位(腾讯sdk)

目录

Unity之GPS定位(腾讯sdk)

前言

Unity版本及使用插件

正题

编写脚本

Run运行, 跑起来就行,具体要什么,去相关类找就好了。

没有腾讯地图SDK的Key?

希望大家:点赞,留言,关注咯~

唠家常

今日无推荐


前言

这段时间在写项目的时候,需要用到GPS逆地址解析,小黑果断就拿出来了之前写的一篇文章Unity之GPS定位(高德),但是经过商量,决定用腾讯地图的SDK腾讯位置服务,于是我们就开始了,也有了这篇文章。

Unity版本及使用插件

Unity版本:        Unity2020.3.13f1c1
命名空间:         Newtonsoft.Json

那么,废话不多说,之前每篇博客废话太多,自己都开始嫌弃了。。

正题

编写脚本

第一个脚本:别忘了挂载

public class TencentLocation : MonoBehaviour
{
/// <summary>
/// 获取当前位置及周围信息
/// </summary>
/// <param name="lat">纬度</param>
/// <param name="lng">经度</param>
/// <param name="callback">当前位置信息</param>
/// <returns></returns>
public IEnumerator GetRequest(float lat, float lng, Action<LocationAnalysis> callback)
{
Uri uri = new Uri("https://apis.map.qq.com/ws/geocoder/v1/?location=" + $"{lat},{lng}" + "&key= 你在腾讯官网申请的Key &get_poi=1");
using (UnityWebRequest webRequest = UnityWebRequest.Get(uri))
{
// Request and wait for the desired page.
yield return webRequest.SendWebRequest();
if (webRequest.result == UnityWebRequest.Result.Success)
{
System.Object obj = JsonConvert.DeserializeObject(webRequest.downloadHandler.text);
Newtonsoft.Json.Linq.JObject js = obj as Newtonsoft.Json.Linq.JObject;
if (js == null)
yield return null;
callback?.Invoke(js["result"].ToObject<LocationAnalysis>());
}
}
}
}

第二个脚本:这个脚本可花了我不少时间,小黑要赞!

using System.Collections.Generic;

namespace TencentInverseAnalysis
{
/// <summary>
/// 地址解析
/// </summary>
public class LocationAnalysis
{
/// <summary>
/// 经纬度位置
/// </summary>
public Location location { get; set; }
/// <summary>
/// 北京市朝阳区广顺北大街
/// </summary>
public string address { get; set; }
/// <summary>
/// 格式化地址
/// </summary>
public Formatted_addresses formatted_addresses { get; set; }
/// <summary>
/// 地址成分
/// </summary>
public Address_component address_component { get; set; }
/// <summary>
/// 地址信息
/// </summary>
public Ad_info ad_info { get; set; }
/// <summary>
/// 地址参考
/// </summary>
public Address_reference address_reference { get; set; }
/// <summary>
/// 信息点数量
/// </summary>
public int poi_count { get; set; }
/// <summary>
/// 信息点
/// </summary>
public List<PoisItem> pois { get; set; }
} /// <summary>
/// 经纬度位置
/// </summary>
public class Location
{
/// <summary>
/// 纬度
/// </summary>
public double lat { get; set; }
/// <summary>
/// 经度
/// </summary>
public double lng { get; set; }
} /// <summary>
/// 格式化后的地址
/// </summary>
public class Formatted_addresses
{
/// <summary>
/// 推荐定位地址
/// </summary>
public string recommend { get; set; }
/// <summary>
/// 粗糙定位地址
/// </summary>
public string rough { get; set; }
} /// <summary>
/// 地址成分
/// </summary>
public class Address_component
{
/// <summary>
/// 国家
/// </summary>
public string nation { get; set; }
/// <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; }
/// <summary>
/// 街道号
/// </summary>
public string street_number { get; set; }
} /// <summary>
/// 地址信息
/// </summary>
public class Ad_info
{
/// <summary>
/// 国家编码
/// </summary>
public string nation_code { get; set; }
/// <summary>
/// 省份编码
/// </summary>
public string adcode { get; set; }
/// <summary>
/// 城市编码
/// </summary>
public string city_code { get; set; }
/// <summary>
/// 位置名
/// </summary>
public string name { get; set; }
/// <summary>
/// 经纬度位置
/// </summary>
public Location location { get; set; }
/// <summary>
/// 国家
/// </summary>
public string nation { get; set; }
/// <summary>
/// 省份
/// </summary>
public string province { get; set; }
/// <summary>
/// 市
/// </summary>
public string city { get; set; }
/// <summary>
/// 区
/// </summary>
public string district { get; set; }
} /// <summary>
/// 地址参考
/// </summary>
public class Address_reference
{
/// <summary>
///
/// </summary>
public Street_number street_number { get; set; }
/// <summary>
///
/// </summary>
public Business_area business_area { get; set; }
/// <summary>
///
/// </summary>
public Famous_area famous_area { get; set; }
/// <summary>
///
/// </summary>
public Crossroad crossroad { get; set; }
/// <summary>
///
/// </summary>
public Town town { get; set; }
/// <summary>
///
/// </summary>
public Street street { get; set; }
/// <summary>
///
/// </summary>
public Landmark_l2 landmark_l2 { get; set; }
}
#region 地址参考
/// <summary>
/// 街道号码
/// </summary>
public class Street_number
{
/// <summary>
/// 街道ID
/// </summary>
public string id { get; set; }
/// <summary>
/// 街道台头
/// </summary>
public string title { get; set; }
/// <summary>
/// 街道经纬度位置
/// </summary>
public Location location { get; set; }
/// <summary>
/// 街道据当前距离
/// </summary>
public double _distance { get; set; }
/// <summary>
/// 街道据当前方向
/// </summary>
public string _dir_desc { get; set; }
} /// <summary>
/// 所在经营范围
/// </summary>
public class Business_area
{
/// <summary>
/// 范围ID
/// </summary>
public string id { get; set; }
/// <summary>
/// 范围台头
/// </summary>
public string title { get; set; }
/// <summary>
/// 范围经纬度
/// </summary>
public Location location { get; set; }
/// <summary>
/// 距离
/// </summary>
public int _distance { get; set; }
/// <summary>
/// 方向
/// </summary>
public string _dir_desc { get; set; }
} /// <summary>
/// 范围内已注册信息点
/// </summary>
public class Famous_area
{
/// <summary>
/// 店铺ID
/// </summary>
public string id { get; set; }
/// <summary>
/// 店铺台头
/// </summary>
public string title { get; set; }
/// <summary>
/// 店铺位置
/// </summary>
public Location location { get; set; }
/// <summary>
/// 店铺距离
/// </summary>
public int _distance { get; set; }
/// <summary>
/// 店铺方向
/// </summary>
public string _dir_desc { get; set; }
} /// <summary>
/// 十字路口
/// </summary>
public class Crossroad
{
/// <summary>
/// 十字路口ID
/// </summary>
public string id { get; set; }
/// <summary>
/// 路口台头
/// </summary>
public string title { get; set; }
/// <summary>
/// 路口经纬度位置
/// </summary>
public Location location { get; set; }
/// <summary>
/// 路口据当前位置距离
/// </summary>
public double _distance { get; set; }
/// <summary>
/// 路口据当前位置方向
/// </summary>
public string _dir_desc { get; set; }
} /// <summary>
/// 区块
/// </summary>
public class Town
{
/// <summary>
/// 区块ID
/// </summary>
public string id { get; set; }
/// <summary>
/// 区块台头
/// </summary>
public string title { get; set; }
/// <summary>
/// 区块位置
/// </summary>
public Location location { get; set; }
/// <summary>
/// 区块据当前位置距离
/// </summary>
public int _distance { get; set; }
/// <summary>
/// 区块据当前位置方向
/// </summary>
public string _dir_desc { get; set; }
} /// <summary>
/// 街道
/// </summary>
public class Street
{
/// <summary>
/// 街道ID
/// </summary>
public string id { get; set; }
/// <summary>
/// 街道台头
/// </summary>
public string title { get; set; }
/// <summary>
/// 街道经纬度位置信息
/// </summary>
public Location location { get; set; }
/// <summary>
/// 街道据当前位置距离
/// </summary>
public double _distance { get; set; }
/// <summary>
/// 街道据当前位置方向
/// </summary>
public string _dir_desc { get; set; }
} /// <summary>
/// 地标信息
/// </summary>
public class Landmark_l2
{
/// <summary>
/// 地标ID
/// </summary>
public string id { get; set; }
/// <summary>
/// 地标台头
/// </summary>
public string title { get; set; }
/// <summary>
/// 地标经纬度位置
/// </summary>
public Location location { get; set; }
/// <summary>
/// 地标据当前位置距离
/// </summary>
public int _distance { get; set; }
/// <summary>
/// 地标据当前位置方向
/// </summary>
public string _dir_desc { get; set; }
}
#endregion /// <summary>
/// 信息点
/// </summary>
public class PoisItem
{
/// <summary>
/// 信息点ID
/// </summary>
public string id { get; set; }
/// <summary>
/// 信息点台头
/// </summary>
public string title { get; set; }
/// <summary>
/// 信息点所在地
/// </summary>
public string address { get; set; }
/// <summary>
/// 信息点种类
/// </summary>
public string category { get; set; }
/// <summary>
/// 信息点经纬度位置
/// </summary>
public Location location { get; set; }
/// <summary>
/// 信息点位置信息
/// </summary>
public Ad_info ad_info { get; set; }
/// <summary>
/// 距离当前经纬度的相对距离
/// </summary>
public int _distance { get; set; }
/// <summary>
/// 据当前位置方向
/// </summary>
public string _dir_desc { get; set; }
}
}

Run运行,
跑起来就行,具体要什么,去相关类找就好了。

没有腾讯地图SDK的Key?

来,让小黑带你去找。

首先打开人家的官网腾讯位置服务 。

然后右上角登录 或者 注册

完成后,还是点击右上方的控制台

然后创建一个应用

创建完成后,增加一个key

接着你就有Key值了。然后拿着你的这个key添加到代码中,就ok了。

至此,圆满结束。

希望大家:点赞,留言,关注咯~

唠家常

  • 小黑的今日分享结束啦,小伙伴们你们get到了么,你们有没有更好的办法呢,可以评论区留言分享,也可以加小黑的QQ:841298494,大家一起进步。

今日无推荐

Unity之GPS定位(腾讯sdk)的更多相关文章

  1. Unity之GPS定位(高德解析)

    Unity之GPS定位 Unity之GPS定位(高德解析) 前言 开篇 Unity版本及使用插件 正题 创建场景 写脚本 把脚本挂载到场景中 打包发布场景 安装真机并且测试 代码中的==Key==怎么 ...

  2. Android开发之位置定位详解与实例解析(GPS定位、Google网络定位,BaiduLBS(SDK)定位)

    在android开发中地图和定位是很多软件不可或缺的内容,这些特色功能也给人们带来了很多方便.定位一般分为三种发方案:即GPS定位.Google网络定位以及基站定位 最简单的手机定位方式当然是通过GP ...

  3. ArcGIS Runtime SDK for Android 定位权限(GPS定位\网络定位)

    ACCESS_COARSE_LOCATION和ACCESS_FINE_LOCATION: android.permission.ACCESS_COARSE_LOCATION:是基站定位,即基于无线网络 ...

  4. GPS定位解决偏差

    目录 GPS定位解决偏差 开篇 实践 1.解决思路以及步骤 2.实践出真理! 3.上坐标系之间的代码. 希望大家:点赞,留言,关注咯~ 唠家常 今日推荐都在文章中了 GPS定位解决偏差 开篇 大家都知 ...

  5. GPS定位学习笔记

    ********************************* GPS定位简介 ********************************** 1. iOS SDK提供两个框架来实现位置服务 ...

  6. 与众不同 windows phone (20) - Device(设备)之位置服务(GPS 定位), FM 收音机, 麦克风, 震动器

    原文:与众不同 windows phone (20) - Device(设备)之位置服务(GPS 定位), FM 收音机, 麦克风, 震动器 [索引页][源码下载] 与众不同 windows phon ...

  7. [置顶] xamarin android使用gps定位获取经纬度

    看了文章你会得出以下几个结论 1.android定位主要有四种方式GPS,Network(wifi定位.基站定位),AGPS定位 2.绝大部分android国产手机使用network进行定位是没有作用 ...

  8. GPS定位 测试

    public class MainActivity extends Activity { private final String TAG = "BX"; private Loca ...

  9. Android中GPS定位的简单应用

    在Android中通过GPS获得当前位置,首先要获得一个LocationManager实例,通过该实例的getLastKnownLocation()方法获得第一个的位置,该方法的说明如下: void ...

随机推荐

  1. Ubuntu安装Docker及镜像加速器

    一.安装Docker sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificate ...

  2. JS数据结构与算法-队列结构

    队列结构 一.认识队列 受限的线性结构: 我们已经学习了一种受限的线性结构:栈结构. 并且已经知道这种受限的数据结构对于解决某些特定问题,会有特别的 效果. 下面,我们再来学习另外一个受限的数据结构: ...

  3. getAddress和getHostAddress的区别

    getAddress方法和getHostAddress类似,它们的唯一区别是getHostAddress方法返回的是字符串形式的IP地址,而getAddress方法返回的是byte数组形式的IP地址.

  4. ui自动化测试数据复原遇到的坑——2、python连接informix时pytest报致命错误Windows fatal exception: access violation

    python连接informix只能通过jdbc(需要先部署java环境.我试过到IBM上下载ODBC但结局是失败的),在执行pytest时发现有一串报错(大致是下面的这样): Windows fat ...

  5. MySQL 是怎么加行级锁的?为什么一会是 next-key 锁,一会是间隙锁,一会又是记录锁?

    大家好,我是小林. 是不是很多人都对 MySQL 加行级锁的规则搞的迷迷糊糊,一会是 next-key 锁,一会是间隙锁,一会又是记录锁. 坦白说,确实还挺复杂的,但是好在我找点了点规律,也知道如何如 ...

  6. 机器学习模型评价指标之ROC 曲线、 ROC 的 AUC 和 投资回报率

    前文回顾: 机器学习模型评价指标之混淆矩阵 机器学习模型评价指标之Accuracy.Precision.Recall.F-Score.P-R Curve.AUC.AP 和 mAP 1. 基本指标 1. ...

  7. Day29 派生, 封装 , 多态, 反射

    Day29 派生, 封装 , 多态, 反射 内容概要 派生方法的实践 面向对象之封装 面向对象之多态 面向对象之反射 反射的实践案例 内容详细 1.派生方法的实践 #需求展示 import json ...

  8. 【大数据面试】【框架】kafka:组成、台数/参数配置、持久化、ISR队列、宕机、丢数据、重复数据、数据积压、优化各种配置(刷盘、存盘、副本、压缩)、zk、其他

    一.基本信息 1.组成 生产者 broker 消费者 zookeeper:brokerid.consumer信息(不包含生产者的信息) 2.需要安装多少台 2 * (生产者的峰值生产速率 * 副本 / ...

  9. express 为所有路由添加 405 method not allowd 响应

    背景知识 HTTP Status Code 405 405 Method not allowed The resource was requested using a method that is n ...

  10. day36-ThreadLocal

    ThreadLocal 线程数据共享和安全 1.什么是ThreadLocal? ThreadLocal的作用,可以实现在同一个线程数据共享,从而解决多线程数据安全问题 当http请求发送到Tomcat ...