我正在使用AR Toolkit,但我不确定它是否运行良好或者我的iPhone有问题。
当我尝试找到一个点时,我在右边看到它的标签。它永远不会指向那个位置。你有同样的问题吗?
换句话说,当我在iPhone的屏幕上看到我想要指出的地方时。我看到那个地方和它的标签在右边。
我不确定我的指南针是否有问题,或者工具包效果不佳。
有任何线索吗?
答案 0 :(得分:1)
我修改了我的计算,参考Link
的方向Calculating bearing between two CLLocationCoordinate2Ds
double poiLon = coordinate.coordinateGeoLocation.coordinate.longitude;
double poiLat = coordinate.coordinateGeoLocation.coordinate.latitude;
double a = poiLon - self.currentLocation.coordinate.longitude;
double b = poiLat - self.currentLocation.coordinate.latitude;
poiLon=degreesToRadians(coordinate.coordinateGeoLocation.coordinate.longitude);
poiLat=degreesToRadians(coordinate.coordinateGeoLocation.coordinate.latitude);
double radCurrLatPoi=degreesToRadians(self.currentLocation.coordinate.latitude);
double radCurrLonPoi=degreesToRadians(self.currentLocation.coordinate.longitude);
a=sin(poiLon-radCurrLonPoi)*cos(poiLat);
b=cos(radCurrLatPoi)*sin(poiLat)-sin(radCurrLatPoi)*cos(poiLat)*cos(poiLon-radCurrLonPoi);
//sin(tLng-fLng)*cos(tLat), cos(fLat)*sin(tLat)-sin(fLat)*cos(tLat)*cos(tLng-fLng)
double alpha = 180.0 * atan2(a, b) / M_PI;
if (alpha < 0.0)
alpha += 360.0;
else if (alpha > 360.0)
alpha -= 360.0;
CLLocationDirection theHeading = self.currentHeading.trueHeading;
double deltaOrient = alpha - theHeading;
CGFloat X = 320.0/2.0 + (deltaOrient * 320.0f / 30.0);//x position
注意: poiLon,poiLat-来自这方面的立场 radCurrLatPoi,radCurrLonPoi - 在此上下文中定位
这在几点上运作良好,在这种特殊情况下不匹配
我目前的位置: 18.551861,73.942108
我的兴趣点: 73.943202,18.552456 73.943693,18.552754 73.943275,18.552687
我认为这可能是因为我完成了360度角度...任何建议