美文网首页Unity3D
Unity3d判断是否到达目的地

Unity3d判断是否到达目的地

作者: 稚琦 | 来源:发表于2018-02-06 09:24 被阅读0次

因为自己本身对JAVA不是很了解,所以高德的java api基本上是看不懂的,一开始想直接用高德的web api 设立一个地理围栏,然后进行判断,但是最后请求的时候地理围栏列表一直返回为空。

错误的返回值.png

地理围栏确定已创建,就是最后判断时返回的时候没有值,一直找不到哪里有问题。

如果会使用高德的地理围栏,则可以忽略以下部分。

既然没法直接得到,那就在本地算。

计算两个经纬度直接的距离的方法:

private const double EARTH_RADIUS = 6378137;
/// <summary>
/// 计算两点位置的距离,返回两点的距离,单位:米
/// 该公式为GOOGLE提供,误差小于0.2米
/// </summary>
/// <param name="lng1">第一点经度</param>
/// <param name="lat1">第一点纬度</param>        
/// <param name="lng2">第二点经度</param>
/// <param name="lat2">第二点纬度</param>
/// <returns></returns>
public static double GetDistance(double lng1, double lat1, double lng2, double lat2)
{
    double radLat1 = Rad(lat1);
    double radLng1 = Rad(lng1);
    double radLat2 = Rad(lat2);
    double radLng2 = Rad(lng2);
    double a = radLat1 - radLat2;
    double b = radLng1 - radLng2;
    double result = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a / 2), 2) + Math.Cos(radLat1) * Math.Cos(radLat2) * Math.Pow(Math.Sin(b / 2), 2))) * EARTH_RADIUS;
    return result;
}

/// <summary>
/// 经纬度转化成弧度
/// </summary>
/// <param name="d"></param>
/// <returns></returns>
private static double Rad(double d)
{
    return (double)d * Math.PI / 180d;
}

通过Unity接入高德地图的方法可以实时获得设备当前位置,以经纬度显示。然后通过高德地图web api的逆地理编码进行坐标转换,即可得到当前位置信息。

高德开放平台查询目的地坐标,或者可以直接用地理编码获取目的地的经纬度坐标。

然后调用计算两个经纬度直接的距离的方法计算出当前位置距离目标点位置的距离

//计算当前经纬度与目标经纬度的距离
double distance = PublicFunction.GetDistance(当前经度, 当前纬度, 目标点经度, 目标点纬度);

//判断距离
if (distance <= THE_TARGET_RADIUS)
{
    Debug.Log("进入目标范围!");
}
else
{
    Debug.Log("距离目标范围:" + distance + "米");
}

相关文章

  • Unity3d判断是否到达目的地

    因为自己本身对JAVA不是很了解,所以高德的java api基本上是看不懂的,一开始想直接用高德的web api ...

  • 判断ScrollView是否到达底部

  • JS判断页面是否到达底部

  • 无题

    犹豫、徘徊,不愿远行,无奈被时间强推着前进。是否能到达想要到达的目的地,想要弄清楚什么才是目的地。理性梳理心的脉络...

  • 到达目的地

    在七月二十六日,我和爸爸到达了期待已久的目的地,酒泉。 在早上五点半左右,我就醒来了,呆呆的望着火车外面。心里...

  • 到达目的地

    经过了4个小时的路程终于到底目的地了,中间经过两个服务区,7个隧道,有4公里的,6公里的,里面有专车道,大车道在右...

  • 到达目的地

    此刻的盐城并没有传说中那么寒冷。下了火车,查了培训中心安排的住宿宾馆路线,四个人最后决定坐公交车去宾馆。 坐在公交...

  • Android 进阶之旅 | View到达顶部及底部边界判断

    View到达顶部及底部边界判断 ============这个很靠谱/*** 判断View是否滑动到顶部* @par...

  • 漫步和人生的步伐

    步行就是为享受步行而行的, 全不在乎是否能到达目的地, 不呈现些微的紧张和不耐烦, 或希望尽快到达目的地。 步伐是...

  • Unity3D 判断脚本是否继承了某个接口或者类

    简要笔记 判断脚本是否继承了某个对象 返回指定游戏对象的指定接口 参考:Unity反射机制的理解Unity3D架构...

网友评论

    本文标题:Unity3d判断是否到达目的地

    本文链接:https://www.haomeiwen.com/subject/cewwzxtx.html