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定位(高德解析)相关推荐

  1. Unity之GPS定位(腾讯sdk)

    Unity之GPS定位(腾讯sdk) 目录 Unity之GPS定位(腾讯sdk) 前言 Unity版本及使用插件 正题 编写脚本 Run运行, 跑起来就行,具体要什么,去相关类找就好了. 没有腾讯地图 ...

  2. python模拟gps定位_python解析nmea0183协议获取GPS定位信息

    python解析nmea0183协议获取GPS定位信息 nmea0183协议里面定位数据主要在GPRMC报文里面,下面是报文的大体形式: b'$GPRMC,111025.00,A,2517.03374 ...

  3. Unity获取GPS经纬度并解析成具体位置

    其实unity也有自带的api获取GPS经纬度的信息的,地址是:点击这里 下面写一个demo,把获取到的GPS信息的经纬度解析成具体地址,具体思路是通过unity 自带api获取经纬度,然后通过高德的 ...

  4. 高德地图八:手机定位和GPS定位

    高德地图八:手机定位和GPS定位 高德地图八:手机定位和GPS定位 代码实现: layout/activity_main.xml <?xml version="1.0" en ...

  5. Android有官方的GPS定位API,为什么还要使用百度/高德定位SDK ?

    1. 背景 小组在一个Demo项目中,图省事准备使用官方的GPS定位API. 但在我的印象中,官方的定位API是不好用的,一般都是用 高德地图/百度地图 的定位SDK的. 使用官方的定位API获取定位 ...

  6. 远程定位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 ...

  7. Unity GPS定位之逆地理编码(获取经纬度并转换成地理位置)

    unity定位 前言 最近在做一款手游,然后策划给的需求就是定位到当前用户所在的城市,然后花了一个上午给做了出来,思路大概就是通过手机定位获取到当前位置的经度和纬度,然后通过各个地图(我这里用的是百度 ...

  8. 高德定位SDK踩坑-高精度模式下获取不到GPS定位(无网络环境)

    高德定位SDK踩坑-高精度模式下获取不到GPS定位(无网络环境) 关键字:定位模式 高精度模式 GPS定位 无网络 一句话描述问题:高精度模式在断网环境下不可靠.有几率重复报错或使用缓存定位,不使用G ...

  9. SIMCom芯片关于GPS定位信息的的解析(AT+CGNSINF)

    SIMCom用户手册里的关于AT+CGNSINF的返回值的解释: AT+CGNSINF return ParametersIndex Parameter Unit Range Length 1 GNS ...

最新文章

  1. 一文读懂因果推断的起源
  2. java根据日期判断星座_根据日期计算星座
  3. unbalanced enable irq 问题的解决 以及共享的gpio中断引起的问题
  4. python 正则之提取字符串中的汉字,数字,字母
  5. IO模型(select, poll, epoll的区别和原理)
  6. 数组名加取地址符的理解
  7. 我为什么觉得数据产品经理更吃香了?
  8. 单片机c语言必背代码_【典藏】深度剖析单片机程序的运行(C程序版)
  9. CodeForces 139C Literature Lesson(模拟)
  10. 锂电池保护板原理(转)
  11. 怎么关闭虚拟机服务器,ESXI | 命令行 | 强行关闭虚拟机进程 | 无法远程访问服务器...
  12. linux nfs限制连接数,linux – 对NFS有一个有效的稳定性参数吗?
  13. iOS 9 升级过程汇中白苹果 iPhone或iPad 解决方案
  14. OpenStack创业“五虎将”分化
  15. 用Java打印棱形的思路,java打印菱形思路
  16. protoc java out_protoc 命令参数
  17. 产生式系统的基本概念
  18. Unity url编码转换
  19. 金庸《倚天屠龙记》中的一个瑕疵
  20. E1: 在idea中执行flink程序时报错 No ExecutorFactory found to execute the application.

热门文章

  1. 领扣LintCode问题答案-35. 翻转链表
  2. 动态多目标优化算法:动态多目标狮群优化算法DMOLSO求解cec2015(提供完整MATLAB代码及所有测试问题的真实POF,含GD、IGD、HV和SP评价指标)
  3. js忍者秘籍读书笔记(前四章)
  4. 山东建筑安全员A证怎么考多选题库
  5. 使用Eolinker即时同步SwaggerHub
  6. java 微信定位到市_java 实现微信搜索附近人功能
  7. My97DatePicker无权限问题
  8. 打开计算机管理出现“未指定错误”
  9. ArduPilot飞控之DIY-F450计划
  10. 写给岳父岳母的一封信,感人吗?