我需要存储在谷歌地图上绘制的所有 LatLng 点。像 :
我有圆和半径(以米为单位)。怎么得到?。我试过用代码......
private ArrayList<LatLng> makeCircle(LatLng centre, double radius, float zoom)
{
ArrayList<LatLng> points = new ArrayList<LatLng>();
LatLngBounds.Builder builder = new LatLngBounds.Builder();
double EARTH_RADIUS = 6378100.0;
for (double t = 0; t <= Math.PI * 2; t += 1.0)
{
double rad = radius + zoom * EARTH_RADIUS;
double latPoint = centre.latitude + (rad / EARTH_RADIUS) * Math.sin(t);
double lonPoint = centre.longitude + (rad / EARTH_RADIUS) * Math.cos(t) / Math.cos(centre.latitude);
points.add(new LatLng(latPoint * 180.0 / Math.PI, lonPoint * 180.0 / Math.PI));
Marker customMarker = map.addMarker(new MarkerOptions()
.position(new LatLng(latPoint,lonPoint)));
builder.include(new LatLng(latPoint,lonPoint));
LatLngBounds bound = builder.build();
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bound, width-100, height-100, 20);
map.animateCamera(cu);
}
return points;
}
但我得到了积分,但不是在确切的位置。我得到这个
如何解决这个问题?