Na *_*Pro 3 android google-maps
任何人都可以帮助我获得中心点.我有6个LatLng对象,现在我需要让LatLng对象居中.非常感谢!
您需要计算由点定义的多边形的质心.维基百科将质心定义为:
平面图形的质心或几何中心是形状中所有点的算术平均("平均")位置
private LatLng computeCentroid(List<LatLng> points) {
double latitude = 0;
double longitude = 0;
int n = points.size();
for (LatLng point : points) {
latitude += point.latitude;
longitude += point.longitude;
}
return new LatLng(latitude/n, longitude/n);
}
Run Code Online (Sandbox Code Playgroud)
上面的Java 代码的Dart版本
LatLng computeCentroid(Iterable<LatLng> points) {
double latitude = 0;
double longitude = 0;
int n = points.length;
for (LatLng point in points) {
latitude += point.latitude;
longitude += point.longitude;
}
return LatLng(latitude / n, longitude / n);
}
Run Code Online (Sandbox Code Playgroud)
您可以获得如下中点 -
double lat1, lng1, lat2, lng2;
double midlat = (lat1 + lat2)/2;
double midlng = (lng1 + lng2)/2;
Run Code Online (Sandbox Code Playgroud)