如何在Android MapView中计算点周围的半径?

时间:2010-01-16 10:50:34

标签: android gps android-mapview

我有MapView我正在显示“有用的半径”(想想坐标的准确性)。使用MapView的{​​{3}}的Projection,这肯定只是赤道距离)并没有给我一个足够准确的距离(以像素为单位)。如果你想在给定半径的坐标周围显示一个圆圈,你会如何计算?

3 个答案:

答案 0 :(得分:28)

因此,Google地图使用Mercator projection。这意味着从赤道越远,距离变得越扭曲。根据{{​​3}},转换距离的正确方法如下:

public static int metersToRadius(float meters, MapView map, double latitude) {
    return (int) (map.getProjection().metersToEquatorPixels(meters) * (1/ Math.cos(Math.toRadians(latitude))));         
}

答案 1 :(得分:0)

mMap.addCircle(
    new CircleOptions().center(
        new LatLng(
            bounds.getCenter().latitude, 
            bounds.getCenter().longitude
        )
    )
    .radius(50000)
    .strokeWidth(0f)
    .fillColor(0x550000FF)
);

答案 2 :(得分:-1)

projection.toPixels(GeoP, pt);
float radius = projection.metersToEquatorPixels(50);

试试这个,然后看看......我在MapRadius上使用它,它似乎正在工作