Como obter o número de pixels igual a um raio do círculo Geozone de acordo com o nível de zoom? OU Raio do círculo da zona para exibir pixels?

Estou criando Geozones no google map. PadrãoCírculo que a API do mapa fornece fica atrasada ao rolar o mapa. Então, eu queria criar meu próprio círculo (sobreposição no mapa). Criei um círculo com raio de 300 metros que é fixo. A largura deste círculo deve mudar de acordo com o nível de zoom, como o círculo padrão do mapa. Eu escrevi um método como abaixo que calcula pixels tomando Radius e Zoom nível como parâmetros. Também adicionei o círculo padrão para verificar a precisão do meu círculo em diferentes endereços.

//Adjusts the width and height of circle according to radius and zoom level
    private void adjustCircleWidth(final LatLng center, final double zoom) {
        //With inputs from topic "Zoom" from https://developers.google.com/maps/documentation/android-api/views
        double widthOfWorldDP = 256 * Math.pow(2, zoom);

        int radius = 300; //meters.
        int circleWidthMeters = radius * 2;  // *2 to get diameter or width.

        //From google and alsop from this SOF post http://stackoverflow.com/a/6452332/3209739
        int EQUATOR_LENGTH_METERS = 40075004; //in meters..

        float dpOfCircle = (float) ((widthOfWorldDP * circleWidthMeters) / EQUATOR_LENGTH_METERS);

        //converts dp to pixels depending on device density..
        int pixels = (int) convertDpToPixels(dpOfCircle);

        mCircleView.requestLayout();
        mCircleView.getLayoutParams().height = pixels;
        mCircleView.getLayoutParams().width = pixels;
    }

Bem, isso funciona bem. Comecei a verificar outros locais e ele começou a mostrar variações. A largura do círculo é menor que o círculo padrão do mapa. Eu o analisei para entender que ele é exibido perfeitamente (em sincronia com o círculo padrão) quando eu defino o círculo em qualquer local que esteja no Equador .. por exemplo, o círculo de exemplo está em perfeita sincronia com o padrão do Quênia, como o Quênia está no equador. veja o scrrenshot em anexo. Se eu me afastar do equador, o círculo ficará cada vez menor do círculo padrão. Digamos, para a Alemanha, como o círculo de localização é quase metade do círculo padrão ... veja a descrição em anexo.

Isso ocorre porque a fórmula que usei está ligada ao equador.

Você pode ajudar com alguma pista de como posso torná-lo uniforme?

questionAnswers(1)

yourAnswerToTheQuestion