Unity之GPS定位(腾讯sdk)
Unity之GPS定位(腾讯sdk)目录Unity之GPS定位(腾讯sdk)前言Unity版本及使用插件正题编写脚本Run运行, 跑起来就行,具体要什么,去相关类找就好了。没有腾讯地图SDK的Key?希望大家:点赞,留言,关注咯~唠家常今日无推荐前言这段时间在写项目的时候,需要用到GPS逆地址解析,小黑果断就拿出来了之前写的一篇文章Unity之GPS定位(高德),但是经过商量,决定用腾讯地图的SD
·
Unity之GPS定位(腾讯sdk)
目录
前言
这段时间在写项目的时候,需要用到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,大家一起进步。
今日无推荐
- 客官,看完get之后记得点赞哟!
- 小伙伴你还想要别的知识?好的呀,分享给你们😄
- 小黑的杂货铺,想要什么都有,客官不进来喝杯茶么?
更多推荐
已为社区贡献1条内容
所有评论(0)