/** * 计算给定坐标点的视野范围(span),以及中心点的 Geo 坐标 * * <p>NOTE: 参数 span,centerPoint 都是地址传递,通过传递的方式来得到计算后的结果。调用该方法不会修改这两个参数的引用,<br> * 其中参数 span 为二维数组。 span[0] 为 经度 (latitude)范围, span[1] 为 纬度(longtitude)范围 * * @param points 数据源 * @param span 二维数组,经纬度跨度范围.span[0] 为 经度 (latitude)范围, span[1] 为 纬度(longtitude)范围 * @param centerPoint 中心点的Geo坐标 */ public static void calculateSpanAndCenter( final LatLngParcel[] points, final LatLng[] span, final LatLngParcel centerPoint) { if (points == null || points.length <= 0) { return; } final int SIZE = points.length; LatLngParcel point = points[0]; double minLat = point.getLatitude(); double minLng = point.getLongitude(); double maxLat = minLat; double maxLng = minLng; // 判断最大的经纬度和最小的经纬度 for (int i = 1; i < SIZE; i++) { LatLngParcel p = points[i]; double lat = p.getLatitude(); double lng = p.getLongitude(); if (minLat > lat) { minLat = lat; } else if (maxLat < lat) { maxLat = lat; } if (minLng > lng) { minLng = lng; } else if (maxLng < lng) { maxLng = lng; } } span[0] = new LatLng(minLat, minLng); span[1] = new LatLng(maxLat, maxLng); centerPoint.setLatitude((maxLat + minLat) / 2.0); centerPoint.setLongitude((maxLng + minLng) / 2.0); }
/** * 将 Wgs84 坐标转为 Baidu 坐标 * * @param point * @return */ public static LatLng convertWgs84ToBaidu(LatLngParcel point) { CoordinateConverter converter = new CoordinateConverter(); converter.from(CoordType.GPS); return converter.coord(point.getLatLng()).convert(); }