Android Mapview의 한 지점 주위에 반경을 계산하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/2077054

  •  21-09-2019
  •  | 
  •  

문제

나는있다 MapView "유용한 반경"(좌표의 정확도를 생각하십시오)을 표시하고 있습니다. MapView'에스 투사'에스 Meterstoequatorpixels, 적도 거리를위한 것만으로도 적용)는 나에게 충분한 거리를 제공하지 않습니다 (픽셀). 반경이 주어지면 좌표 주위에 원을 표시하려면 어떻게 계산 하시겠습니까?

도움이 되었습니까?

해결책

따라서 Google지도는 a를 사용합니다 메르카토프 투영. 이것은 적도에서 더 많이 얻을수록 거리가 더 많이 왜곡된다는 것을 의미합니다. 에 따르면 이 토론, 거리로 변환하는 올바른 방법은 다음과 같습니다.

public static int metersToRadius(float meters, MapView map, double latitude) {
    return (int) (map.getProjection().metersToEquatorPixels(meters) * (1/ Math.cos(Math.toRadians(latitude))));         
}

다른 팁

mMap.addCircle(
    new CircleOptions().center(
        new LatLng(
            bounds.getCenter().latitude, 
            bounds.getCenter().longitude
        )
    )
    .radius(50000)
    .strokeWidth(0f)
    .fillColor(0x550000FF)
);
projection.toPixels(GeoP, pt);
float radius = projection.metersToEquatorPixels(50);

이것을 시도하고보세요 ... 나는 내 mapradius에서 그것을 사용했는데 작동하는 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top