问题描述
|
我想找到两个已知地理位置之间的夹角,基本上我想要的是指向箭头的箭头,该箭头的尾点在我当前的位置,而箭头的头部指向固定的地理位置。
所以我在想,如果我能够在这两个地理位置之间取得一个角度,那么很可能我将能够做到这一点。
你们有一些建议以更好的方式做到这一点。任何帮助,将不胜感激。
解决方法
参照此,有几种方法被解释。
如何计算两个WGS84坐标之间的方位角(与北方的夹角)
, 我想达到同样的目的。使用此参考来计算角度如下:
private double angleFromCoordinate(double lat1,double long1,double lat2,double long2) {
double dLon = (long2 - long1);
double y = Math.sin(dLon) * Math.cos(lat2);
double x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1)
* Math.cos(lat2) * Math.cos(dLon);
double brng = Math.atan2(y,x);
brng = Math.toDegrees(brng);
brng = (brng + 360) % 360;
brng = 360 - brng;
return brng;
}
然后旋转ImageView到这个角度
private void rotateImage(ImageView imageView,double angle) {
Matrix matrix = new Matrix();
imageView.setScaleType(ScaleType.MATRIX); // required
matrix.postRotate((float) angle,imageView.getDrawable().getBounds()
.width() / 2,imageView.getDrawable().getBounds().height() / 2);
imageView.setImageMatrix(matrix);
}
, 真的,这是简单的触发。如果它们足够靠近,则可以使用平面几何。取两个位置,找出具有两个位置作为锐角的直角三角形,然后进行计算。
已经有一个指向基本数学的链接。
一件事-如果位置相距很远,您将要使用球形三角钻,否则角度将不准确。
好吧,有一个链接... http://www.easycalculation.com/trigonometry/triangle-angles.php
, 我不确定我是否了解您想要做什么,但是请检查以下内容:
Android参考,位置,distanceBetween(double startLatitude,double startLongitude,double endLatitude,double endLongitude,float []结果)
结果参数应为浮点数数组-至少2个元素。然后在results [0]中,您将找到这两个点之间的距离和结果1。重要的是“使用WGS84椭球定义距离和方位。”