我想在虚幻引擎4中使用GPS坐标。 用例是我想在操作系统上以米为单位给出到目标的距离,以显示通知。
我试图通过getDistanceBeweenGps将浮点数传递到我的蓝图逻辑中。 但是,每次我在Android设备上运行该数字时,该数字就会变为0.0f。
输入示例:
lat1 = 1.0f;
long1 = 1.0f;
lat2 = 1000.0f;
long2 = 1000.0f;
预期结果:
> 0.0f
代码:
#include "GpsUtils.h"
#include <math.h>
#define d2r (PI / 180.0)
//UGpsUtils::UGpsUtils(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer)
//{
//
//}
float UGpsUtils::getDistanceBeweenGps(float lat1, float long1, float lat2, float long2){
return (float) haversine_km(lat1, long1, lat2, long2);
}
//calculate haversine distance for linear distance
double UGpsUtils::haversine_km(double lat1, double long1, double lat2, double long2)
{
double dlong = (long2 - long1) * d2r;
double dlat = (lat2 - lat1) * d2r;
double a = pow(sin(dlat / 2.0), 2) + cos(lat1*d2r) * cos(lat2*d2r) * pow(sin(dlong / 2.0), 2);
double c = 2 * atan2(sqrt(a), sqrt(1 - a));
double d = 6367 * c;
return d;
}
double UGpsUtils::haversine_mi(double lat1, double long1, double lat2, double long2)
{
double dlong = (long2 - long1) * d2r;
double dlat = (lat2 - lat1) * d2r;
double a = pow(sin(dlat / 2.0), 2) + cos(lat1*d2r) * cos(lat2*d2r) * pow(sin(dlong / 2.0), 2);
double c = 2 * atan2(sqrt(a), sqrt(1 - a));
double d = 3956 * c;
return d;
}
没有错误,我真的看不出来是什么原因。
答案 0 :(得分:1)
GpsUtils变量未正确设置。 当我终于在开发机上启动它并读取日志文件时找到了它。 因此,未来的一个好方法是找到一种方法来查看客户端(android)=)的日志文件,祝您生活愉快