我有MapView我正在显示“有用的半径”(想想坐标的准确性)。使用MapView
的{{3}}的Projection,这肯定只是赤道距离)并没有给我一个足够准确的距离(以像素为单位)。如果你想在给定半径的坐标周围显示一个圆圈,你会如何计算?
答案 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上使用它,它似乎正在工作