Android 计算地图上街道两侧的gps坐标

Android 计算地图上街道两侧的gps坐标,android,google-maps,gps,Android,Google Maps,Gps,我在地图上有用户的GPS坐标(由图片中的红点指示) 我想计算地图上蓝点的GPS坐标 这些点与两侧的红点距离相等。如果我能得到与磁北相比的街道方向,我可以计算点,或者有其他简单的方法吗?(我测试了它的使用,而不是地图api V2。) 在执行步骤之前,您应该在找到坐标之前知道距离和角度 步骤: 将地理点更改为像素(x,y)。(使用) 获取距离(d)的像素大小。(使用) 然后你得到一个点(d,0) 旋转(d,0)=>您将获得一个新点,该点在d处与(0,0)=>(a,b)隔开 (x+a,b+y)是您想要

我在地图上有用户的GPS坐标(由图片中的红点指示)

我想计算地图上蓝点的GPS坐标

这些点与两侧的红点距离相等。如果我能得到与磁北相比的街道方向,我可以计算点,或者有其他简单的方法吗?

(我测试了它的使用,而不是地图api V2。)

在执行步骤之前,您应该在找到坐标之前知道距离和角度

步骤:

  • 将地理点更改为像素(x,y)。(使用)

  • 获取距离(d)的像素大小。(使用)

  • 然后你得到一个点(d,0)

  • 旋转(d,0)=>您将获得一个新点,该点在d处与(0,0)=>(a,b)隔开

  • (x+a,b+y)是您想要的点

  • 获取(x+a,y+b)使用的地理坐标

  • 旋转公式为

    (x'*cos(θ) - y'*sin(θ), x'*sin(θ) + y'*cos(θ))
    
    所以,你可以改变这个简单的

    (d*cos(θ), d*sin(θ)) // This is a point of step 4. (a,b)
    
    我的密码是

    // you should know distance and angle
    
    Point px = new Point();
    Point px2 = new Point();
    
    mapView.getProjection().toPixels(mGeoPt, px);
    float pixedDis = mapView.getProjection().metersToEquatorPixels(distance);
    
    px2.x = (int)(pixedDis*Math.cos(angle)) + px.x;
    px2.y = (int)(pixedDis*Math.sin(angle)) + px.y;
    
    GeoPoint gp3 = mapView.getProjection().fromPixels(px2.x, px2.y);
    

    这是一个有效的问题,可以解决,如下所示,我很确定没有一个“搁置投票人”能够解决这个问题。@AlexWien谢谢这是我的想法。不管怎样,我也找到了另一种方法,等我有时间的时候会更新它。我为我的工作解决了这个任务,这是学校几何的结合,考虑到纬度和经度不是笛卡尔坐标(你想先转换成caretsian坐标),你是怎么解决的