Ejemplo n.º 1
0
  /**
   * 计算给定坐标点的视野范围(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);
  }
Ejemplo n.º 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();
  }