我在我的MapView上放置了多个点,希望将地图居中显示这些点,即它们的平均中心而不是任何一个特定的点。
我知道Javascript G. Maps API中有一种方法可以实现这一点。我想知道是否在Android中已经存在类似的方法?
我在我的MapView上放置了多个点,希望将地图居中显示这些点,即它们的平均中心而不是任何一个特定的点。
我知道Javascript G. Maps API中有一种方法可以实现这一点。我想知道是否在Android中已经存在类似的方法?
public static float[] centroid(float[] points) {
float[] centroid = { 0, 0 };
for (int i = 0; i < points.length; i+=2) {
centroid[0] += points[i];
centroid[1] += points[i+1];
}
int totalPoints = points.length/2;
centroid[0] = centroid[0] / totalPoints;
centroid[1] = centroid[1] / totalPoints;
return centroid;
}
ArrayList<GeoPoint> track;
public GeoPoint CenterMap() {
double longitude = 0;
double latitude = 0;
double maxlat = 0, minlat = 0, maxlon = 0, minlon = 0;
int i = 0;
for (GeoPoint p : track) {
latitude = p.getLatitude();
longitude = p.getLongitude();
if (i == 0) {
maxlat = latitude;
minlat = latitude;
maxlon = longitude;
minlon = longitude;
} else {
if (maxlat < latitude)
maxlat = latitude;
if (minlat > latitude)
minlat = latitude;
if (maxlon < longitude)
maxlon = longitude;
if (minlon > longitude)
minlon = longitude;
}
i++;
}
latitude = (maxlat + minlat) / 2;
longitude = (maxlon + minlon) / 2;
return new GeoPoint(latitude, longitude);
}