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. 编译安装PHP7.4

    1.下载PHP源码包 wget https://www.php.net/distributions/php-7.4.30.tar.gz 2.解压缩 tar xf php-7.4.30.tar.gz - ...

  2. Codeforces Round #820 (Div. 3) A-G

    比赛链接 A 题解 知识点:模拟 时间复杂度 \(O(1)\) 空间复杂度 \(O(1)\) 代码 #include <bits/stdc++.h> #define ll long lon ...

  3. Vue3笔记(二)了解组合式API的应用与方法

    一.组合式API(Composition API)的介绍 官方文档: https://v3.cn.vuejs.org/guide/composition-api-introduction.html 组 ...

  4. 7 款殿堂级的开源 CMS(内容管理系统)

    最近,有读者留言让我推荐开源 CMS.我本想直接回复 WordPress,但是转念一想我玩 WordPress 是 2010 年左右的事情了,都过去十年了,它会不会有些过时呢?有没有新的.更好玩的开源 ...

  5. SolidWorks2020下载安装中文版教程,你solidworks安装失败是什么原因?

    SW2020 WIN10 64位安装步骤: 1.先使用"百度网盘客户端"下载SW20S5_CN_x64安装包到电脑磁盘英文路径文件夹里,并鼠标右击进行解压缩,安装前先断开电脑网络, ...

  6. Conda 环境移植 (两种方式)

    ------------------------方法一------------------------ 优点: 在原机器上需要进行的操作较少,且除了conda不需要其余的库来支撑:需要传输的文件小,操 ...

  7. 【云原生 · Kubernetes】部署 kube-proxy 组件

    个人名片: 因为云计算成为了监控工程师‍ 个人博客:念舒_C.ying CSDN主页️:念舒_C.ying kube-proxy 运行在所有 worker 节点上,它监听 apiserver 中 se ...

  8. i春秋Backdoor

    点开是道没有任何窗口的题,右键查看源码也没上面东西,抓包试试,也没找到什么提示性的信息,根据提示去看看敏感文件泄露是什么吧 这里找到了篇敏感文件泄露的介绍及利用方法:https://www.cnblo ...

  9. vscode 更新后重启恢复旧版

    vscode的自动更新自动安装在C:\Users\admin\AppData\Local\,如果之前的vscode不在默认位置,就会更新出两个版本,如果还用了固定在开始屏幕或者任务栏,则一直在打开旧版 ...

  10. DTSE Tech Talk 第13期:Serverless凭什么被誉为未来云计算范式?

    摘要:在未来,云上交付模式会逐步从Serverful为主转向Serverless为主. 本文分享自华为云社区<DTSE Tech Talk 第13期:Serverless凭什么被誉为未来云计算范 ...