我想制作一个函数,根据真北计算用户与一个兴趣点 (POI) 之间的角度。
我已经有了我所在位置的经度和纬度以及 POI 位置,现在我需要它们之间的角度。
这是我所拥有的:
private float calcAzimuth1(float lat0, float long0, float lat1, float long1)
{
//user's latitude and longitude
float userLat = (float) ((lat0 * ((float)Math.PI))/180);
float userLong = (float) ((long0 * ((float)Math.PI))/180);
//POI's latitude and longitude
float latT1 = (float) ((lat1 * ((float)Math.PI))/180);
float longT1 = (float) ((long1 * ((float)Math.PI))/180);
//angle between them
float angle=??}
最佳答案
检查 Location 类的 bearingTo 函数 http://developer.android.com/reference/android/location/Location.html#bearingTo(android.location.Location) 您可以根据纬度/经度创建两个 Location 对象,然后获取它们之间的方位。
您可能需要做的另一件事是计算设备方向,然后将它们组合在一起。这需要监听传感器并根据收到的信息计算北方。在这里查看答案: Compass readings on SGS III
关于android - 在android中计算用户和POI(兴趣点)之间的角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10657094/