У меня есть MapView, что я показываю "полезный радиус" (думаю, точность координаты). Используя MapView
Projection metersToEquatorPixels, что, по общему признанию, просто для экваториальное расстояние) не дает мне достаточно точного расстояния (в пикселях). Как бы вы вычислили это, если бы вы хотели отобразить круг вокруг вашей координаты, заданный радиус?
Как вычислить радиус вокруг точки в Android MapView?
Ответ 1
Таким образом, Google Maps использует прогноз Меркатора. Это означает, что чем дальше вы выходите от экватора, тем больше искажается расстояние. Согласно это обсуждение, правильный способ преобразования для расстояний - это что-то вроде:
public static int metersToRadius(float meters, MapView map, double latitude) {
return (int) (map.getProjection().metersToEquatorPixels(meters) * (1/ Math.cos(Math.toRadians(latitude))));
}
Ответ 2
mMap.addCircle(
new CircleOptions().center(
new LatLng(
bounds.getCenter().latitude,
bounds.getCenter().longitude
)
)
.radius(50000)
.strokeWidth(0f)
.fillColor(0x550000FF)
);
Ответ 3
projection.toPixels(GeoP, pt);
float radius = projection.metersToEquatorPixels(50);
Попробуйте это и посмотрите... я использовал его на моем MapRadius и, похоже, работает