Unity之GPS定位(高德解析)
Unity之GPS定位
- Unity之GPS定位(高德解析)
- 前言
- 开篇
- Unity版本及使用插件
- 正题
- 创建场景
- 写脚本
- 把脚本挂载到场景中
- 打包发布场景
- 安装真机并且测试
- 代码中的==Key==怎么来的
- 1、找平台
- 2、登录或者申请账号
- 3、获取KEY
- 结尾
- 结尾唠叨
- 今日无推荐
Unity之GPS定位(高德解析)
前言
开篇
- 哈喽艾瑞宝嘚,又一周没见到小黑了,肯定想我了吧。
- 既然这样,那小黑一定要给大家一个忠告,在办公大楼上厕所千万别玩手机啊~~,小黑深受其害,手机(OPPO R9 Plus)自己提前退休了,其实还是有些不舍得的,不过毕竟用了4年多了,也该换了,然后今儿手机到了,心情很好啊,哈哈哈哈哈哈哈!
- 好了好了,不给大家扯皮了,咱们直入主题!
Unity版本及使用插件
说到Unity版本,那当然还是老样子啦,Unity2019.4.4f1
插件用到了:LitJson
正题
- 这两天项目上边说是让加一个显示当前位置的功能,那我一想那不就是定位么,果断就答应了,这是学习的时候啊,然而,我马上就搜到了大佬的博客,然后有了下边的代码。。。。。。。。
- 当然了啊,我也自己想了好多完善了好多,不过这版中只有申请权限。
创建场景
第一步在场景中创建相关Text文本,用来显示
写脚本
using UnityEngine;
using System.Collections;
using LitJson;
using UnityEngine.Networking;
using UnityTools;
using UnityEngine.Android;
namespace Location
{public class LocationTest : MonoBehaviour{private string longitude;//经度private string latitude;//纬度void Start() => StartCoroutine(StartGPS());IEnumerator StartGPS(){//Unity给我们提供的一个相关权限类 Permission,可以判断当前相关权限是否开启if (Permission.HasUserAuthorizedPermission(Permission.FineLocation)){//如果没有开启就提示开启权限Permission.RequestUserPermission(Permission.FineLocation);}Debuger.LogError("开始获取GPS信息");// 检查位置服务是否可用 if (!Input.location.isEnabledByUser){Debuger.Log("位置服务不可用");yield break;}// 查询位置之前先开启位置服务Debuger.Log("启动位置服务");Input.location.Start();// 等待服务初始化 int maxWait = 20;while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0){Debuger.Log(Input.location.status.ToString() + ">>>" + maxWait.ToString());yield return new WaitForSeconds(1);maxWait--;}// 服务初始化超时 if (maxWait < 1){Debuger.Log("服务初始化超时");yield break;}// 连接失败 if (Input.location.status == LocationServiceStatus.Failed){Debuger.Log("无法确定设备位置");yield break;}else{Debuger.Log("Location: \n" +"纬度:" + Input.location.lastData.latitude + " \n" +"经度:" + Input.location.lastData.longitude + " \n" +"海拔:" + Input.location.lastData.altitude + " \n" +"水平精度:" + Input.location.lastData.horizontalAccuracy + " \n" +"垂直精度:" + Input.location.lastData.verticalAccuracy + " \n" +"时间戳:" + Input.location.lastData.timestamp);longitude = Input.location.lastData.longitude.ToString();latitude = Input.location.lastData.latitude.ToString();StartCoroutine(GetRequest("http://restapi.amap.com/v3/geocode/regeo?key="+ key + "&location=" + longitude + "," + latitude));}// 停止服务,如果没必要继续更新位置,(为了省电Input.location.Stop();}string key = ""; //去高德地图开发者申请IEnumerator GetRequest(string uri){using (UnityWebRequest webRequest = UnityWebRequest.Get(uri)){// Request and wait for the desired page.yield return webRequest.SendWebRequest();string[] pages = uri.Split('/');int page = pages.Length - 1;if (webRequest.isNetworkError){// Debug.Log(pages[page] + ": Error: " + webRequest.error);}else{JsonData jd = JsonMapper.ToObject(webRequest.downloadHandler.text);Debuger.LogError("rn" + jd["regeocode"]["formatted_address"].ToString());}}}}
}
把脚本挂载到场景中
打包发布场景
安装真机并且测试
小黑为了给你们看动态结果,只好先拿手机录像,并且从电脑上制作GIF图看咯。
怎么样,是不是很顶!!!!给
Unity之GPS定位(高德解析)相关推荐
- Unity之GPS定位(腾讯sdk)
Unity之GPS定位(腾讯sdk) 目录 Unity之GPS定位(腾讯sdk) 前言 Unity版本及使用插件 正题 编写脚本 Run运行, 跑起来就行,具体要什么,去相关类找就好了. 没有腾讯地图 ...
- python模拟gps定位_python解析nmea0183协议获取GPS定位信息
python解析nmea0183协议获取GPS定位信息 nmea0183协议里面定位数据主要在GPRMC报文里面,下面是报文的大体形式: b'$GPRMC,111025.00,A,2517.03374 ...
- Unity获取GPS经纬度并解析成具体位置
其实unity也有自带的api获取GPS经纬度的信息的,地址是:点击这里 下面写一个demo,把获取到的GPS信息的经纬度解析成具体地址,具体思路是通过unity 自带api获取经纬度,然后通过高德的 ...
- 高德地图八:手机定位和GPS定位
高德地图八:手机定位和GPS定位 高德地图八:手机定位和GPS定位 代码实现: layout/activity_main.xml <?xml version="1.0" en ...
- Android有官方的GPS定位API,为什么还要使用百度/高德定位SDK ?
1. 背景 小组在一个Demo项目中,图省事准备使用官方的GPS定位API. 但在我的印象中,官方的定位API是不好用的,一般都是用 高德地图/百度地图 的定位SDK的. 使用官方的定位API获取定位 ...
- 远程定位gps linux,GPS(NMEA)数据解析
一.GPS定位信息 设置好gps模式,启动gps,正常的话在gps通路有NMEA数据上报,如下: $GPGSV,3,1,11,01,62,130,42,07,61,201,43,11,72,075,2 ...
- Unity GPS定位之逆地理编码(获取经纬度并转换成地理位置)
unity定位 前言 最近在做一款手游,然后策划给的需求就是定位到当前用户所在的城市,然后花了一个上午给做了出来,思路大概就是通过手机定位获取到当前位置的经度和纬度,然后通过各个地图(我这里用的是百度 ...
- 高德定位SDK踩坑-高精度模式下获取不到GPS定位(无网络环境)
高德定位SDK踩坑-高精度模式下获取不到GPS定位(无网络环境) 关键字:定位模式 高精度模式 GPS定位 无网络 一句话描述问题:高精度模式在断网环境下不可靠.有几率重复报错或使用缓存定位,不使用G ...
- SIMCom芯片关于GPS定位信息的的解析(AT+CGNSINF)
SIMCom用户手册里的关于AT+CGNSINF的返回值的解释: AT+CGNSINF return ParametersIndex Parameter Unit Range Length 1 GNS ...
最新文章
- 一文读懂因果推断的起源
- java根据日期判断星座_根据日期计算星座
- unbalanced enable irq 问题的解决 以及共享的gpio中断引起的问题
- python 正则之提取字符串中的汉字,数字,字母
- IO模型(select, poll, epoll的区别和原理)
- 数组名加取地址符的理解
- 我为什么觉得数据产品经理更吃香了?
- 单片机c语言必背代码_【典藏】深度剖析单片机程序的运行(C程序版)
- CodeForces 139C Literature Lesson(模拟)
- 锂电池保护板原理(转)
- 怎么关闭虚拟机服务器,ESXI | 命令行 | 强行关闭虚拟机进程 | 无法远程访问服务器...
- linux nfs限制连接数,linux – 对NFS有一个有效的稳定性参数吗?
- iOS 9 升级过程汇中白苹果 iPhone或iPad 解决方案
- OpenStack创业“五虎将”分化
- 用Java打印棱形的思路,java打印菱形思路
- protoc java out_protoc 命令参数
- 产生式系统的基本概念
- Unity url编码转换
- 金庸《倚天屠龙记》中的一个瑕疵
- E1: 在idea中执行flink程序时报错 No ExecutorFactory found to execute the application.
热门文章
- 领扣LintCode问题答案-35. 翻转链表
- 动态多目标优化算法:动态多目标狮群优化算法DMOLSO求解cec2015(提供完整MATLAB代码及所有测试问题的真实POF,含GD、IGD、HV和SP评价指标)
- js忍者秘籍读书笔记(前四章)
- 山东建筑安全员A证怎么考多选题库
- 使用Eolinker即时同步SwaggerHub
- java 微信定位到市_java 实现微信搜索附近人功能
- My97DatePicker无权限问题
- 打开计算机管理出现“未指定错误”
- ArduPilot飞控之DIY-F450计划
- 写给岳父岳母的一封信,感人吗?