高德api实现经纬度 maker的实现

private MapView mapView;
private AMap aMap;
private LatLng center = new LatLng(39.993167, 116.473274);// 中心点模拟经纬度
private ArrayList<Marker> mMarkers = new ArrayList<Marker>();
private Marker centerMarker;
private View infoWindow = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_ways_guide);
    mapView = findViewById(R.id.map);
    mapView.onCreate(savedInstanceState);
    if (aMap == null) {
        aMap = mapView.getMap();
    }
    aMap.getUiSettings().setMyLocationButtonEnabled(true);
    aMap.getUiSettings().setZoomControlsEnabled(false);
    aMap.getUiSettings().setLogoBottomMargin(-50);//隐藏logo
    aMap.moveCamera(CameraUpdateFactory.zoomTo(17));
    for (int i = 0; i < getPointList().size(); i++) {
        getPointList().add(getPointList().get(i));
        MarkerOptions mark = new MarkerOptions();
        Marker marker = aMap.addMarker(new MarkerOptions().position(getPointList().get(i))
                .icon(BitmapDescriptorFactory.fromResource(R.mipmap.b_poi_bg_focus)));
        marker.setObject(getPointList().size() - 1);
        mMarkers.add(marker);
    }
    initCenterMarker();
}

private List<LatLng> getPointList() {
    List<LatLng> pointList = new ArrayList<LatLng>();
    pointList.add(new LatLng(39.993755, 116.467987));
    pointList.add(new LatLng(39.985589, 116.469306));
    pointList.add(new LatLng(39.990946, 116.48439));
    pointList.add(new LatLng(40.000466, 116.463384));
    pointList.add(new LatLng(39.975426, 116.490079));
    pointList.add(new LatLng(40.016392, 116.464343));
    pointList.add(new LatLng(39.959215, 116.464882));
    pointList.add(new LatLng(39.962136, 116.495418));
    pointList.add(new LatLng(39.994012, 116.426363));
    pointList.add(new LatLng(39.960666, 116.444798));
    pointList.add(new LatLng(39.972976, 116.424517));
    pointList.add(new LatLng(39.951329, 116.455913));
    return pointList;
}

/**
 * 地图单击回调
 *
 * @param latLng 单击点经纬度
 */
@Override
public void onMapClick(LatLng latLng) {
    //单击添加marker

}

/**
 * 地图加载完成回调
 */
@Override
public void onMapLoaded() {


}


/**
 * 方法必须重写
 */
@Override
protected void onResume() {
    super.onResume();
    mapView.onResume();
}

/**
 * 方法必须重写
 */
@Override
protected void onPause() {
    super.onPause();
    mapView.onPause();
}

/**
 * 方法必须重写
 */
@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    mapView.onSaveInstanceState(outState);
}

/**
 * 方法必须重写
 */
@Override
protected void onDestroy() {
    super.onDestroy();
    mapView.onDestroy();
}

//初始化中心点Marker
private void initCenterMarker() {

    centerMarker = aMap.addMarker(new MarkerOptions()
            .anchor(0.5f, 0.5f)
            .icon(BitmapDescriptorFactory
                    .fromResource(R.mipmap.pakage_point))
            .position(new LatLng(39.980666, 116.474798)));
    centerMarker.startAnimation();
    centerMarker.showInfoWindow();
    LatLngBounds bounds = getLatLngBounds(new LatLng(39.980666, 116.474798), getPointList());
    aMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 50));
}
//根据中心点和自定义内容获取缩放bounds
private LatLngBounds getLatLngBounds(LatLng centerpoint, List<LatLng> pointList) {
    LatLngBounds.Builder b = LatLngBounds.builder();
    if (centerpoint != null){
        for (int i = 0; i < pointList.size(); i++) {
            LatLng p = pointList.get(i);
            LatLng p1 = new LatLng((centerpoint.latitude * 2) - p.latitude, (centerpoint.longitude * 2) - p.longitude);
            b.include(p);
            b.include(p1);
        }
    }
    return b.build();
}
高德api实现经纬度 maker的实现