Подтвердить что ты не робот

Как вычислить радиус вокруг точки в Android MapView?

У меня есть MapView, что я показываю "полезный радиус" (думаю, точность координаты). Используя MapView Projection metersToEquatorPixels, что, по общему признанию, просто для экваториальное расстояние) не дает мне достаточно точного расстояния (в пикселях). Как бы вы вычислили это, если бы вы хотели отобразить круг вокруг вашей координаты, заданный радиус?

4b9b3361

Ответ 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 и, похоже, работает