缩放和居中

缩放和居中是 地图 不可或缺功能,用户可以通过调整地图的缩放级别并聚焦与地图中的特定地理位置 视图

地图扩展组件提供了开发人员可使用的功能接口。

下面是 GeoMap 类的一些方法:

  • setCenter() - 在地图的可见区域内设置中心地理点。中心点的坐标应按照地图投影提供,即按照 EPSG:4326。如果使用 setProjection(CRS) 更改了地图投影,则坐标必须按照调整后的投影指定。地图投影与地图的 GeoMapView 中配置的视图投影是不同的。视图投影只会影响地图数据的理解和显示方式,而地图投影则是设置公共 API 的基础坐标系。

  • setZoom(double zoom) - 将地图调整到特定的缩放级别。缩放级别的值从 0 开始,表示层级最高的视图,随着地图拉近放大而增加。

  • zoomToExtent(Extent) - 设置地图至尽可能高的缩放级别,保证在地图的可见区域内包含所提供的地理边界。Extent(范围)是一个边界框,用于定义地图上的特定地理区域。范围由一组坐标表示:最小坐标(左下)和最大坐标(右上)坐标,用于描绘地图上矩形区域的边界。缩放到特定范围的更高级别方法,请使用 fit(FitOptions)

  • zoomToGeometry(SimpleGeometry) - 设置地图至尽可能高的缩放级别,保证在地图的可见区域内包含所提供的几何图形包络。

    如果提供的几何图形是 Point,地图会以该点进行居中,缩放级别不变。

    缩放到特定几何图形的更高级别方法,请使用 fit(FitOptions)

  • zoomToFeature(Feature) - 一种工具方法,用于从提供的地图要素中提取几何图形并委托给 zoomToGeometry(SimpleGeometry) 方法。

  • fit(FitOptions) - 根据指定的地图大小、边框设置和特定选项调整提供的几何图形或范围。例如,要设置最大缩放级别并启用动画,可以采用以下方法:

    protected GeometryFactory geometryFactory = GeometryUtils.getGeometryFactory();
    
    @ViewComponent
    private GeoMap map;
    
    @Subscribe("map")
    public void onMapMapSingleClick(final MapSingleClickEvent event) {
        map.fit(new FitOptions(new PointFeature(
                geometryFactory.createPoint(event.getCoordinate())))
                .withDuration(2000)
                .withEasing(Easing.LINEAR)
                .withMaxZoom(20d));
    }

    FitOptions 用于配置地图视图应如何适应或调整到特定范围或几何形状。开发人员通过这些选项能够控制例如缩放级别、动画持续时间、缓动效果以及与拟合地图视图相关的其他参数等等。

    更多信息,请参阅 View 文档。