Google Map Android: маркер выше круга - PullRequest
0 голосов
/ 13 сентября 2018

Я хочу добиться этого в своем приложении, я знаю, как нарисовать круг, но мне нужно показать маркер в верхней правой части круга на изображении ниже

Я хочу показать 10 км над кругом , если кто-нибудь знает об этом, пожалуйста, помогите мне.

Я знаю о этот вопрос , нолюбезно найдите любое решение.

Если вы знаете, как шире круг (внешний край), то это также полезно для меня.

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

@ Адни прав насчет этого, я также использую класс SphericalUtil для решения этого типа проблемы,

Вы можете использовать этот SphericalUtil класс из этого git https://github.com/googlemaps/android-maps-utils

Вы можете использовать этот метод для рисования маркера 10Km

/**
 * Returns the location of origin when provided with a LatLng destination,
 * meters travelled and original heading. Headings are expressed in degrees
 * clockwise from North. This function returns null when no solution is
 * available.
 * @param to       The destination LatLng.
 * @param distance The distance travelled, in meters.
 * @param heading  The heading in degrees clockwise from north.
 */
public static LatLng computeOffsetOrigin(LatLng to, double distance, double heading) {
    heading = toRadians(heading);
    distance /= EARTH_RADIUS;
    // http://lists.maptools.org/pipermail/proj/2008-October/003939.html
    double n1 = cos(distance);
    double n2 = sin(distance) * cos(heading);
    double n3 = sin(distance) * sin(heading);
    double n4 = sin(toRadians(to.latitude));
    // There are two solutions for b. b = n2 * n4 +/- sqrt(), one solution results
    // in the latitude outside the [-90, 90] range. We first try one solution and
    // back off to the other if we are outside that range.
    double n12 = n1 * n1;
    double discriminant = n2 * n2 * n12 + n12 * n12 - n12 * n4 * n4;
    if (discriminant < 0) {
        // No real solution which would make sense in LatLng-space.
        return null;
    }
    double b = n2 * n4 + sqrt(discriminant);
    b /= n1 * n1 + n2 * n2;
    double a = (n4 - n2 * b) / n1;
    double fromLatRadians = atan2(a, b);
    if (fromLatRadians < -PI / 2 || fromLatRadians > PI / 2) {
        b = n2 * n4 - sqrt(discriminant);
        b /= n1 * n1 + n2 * n2;
        fromLatRadians = atan2(a, b);
    }
    if (fromLatRadians < -PI / 2 || fromLatRadians > PI / 2) {
        // No solution which would make sense in LatLng-space.
        return null;
    }
    double fromLngRadians = toRadians(to.longitude) -
            atan2(n3, n1 * cos(fromLatRadians) - n2 * sin(fromLatRadians));
    return new LatLng(toDegrees(fromLatRadians), toDegrees(fromLngRadians));
}
0 голосов
/ 13 сентября 2018

Добавьте следующий код в onMapReady () метод:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...