使用绘制/修改/翻译交互时移动地图

问题描述 投票:0回答:1

我使用绘制/修改/翻译交互来允许用户绘制特征。但是当用户将一个点拖动到地图之外时,我希望地图能够随之移动。

目前我使用的是 6.15 版本,但找不到任何内置方法来允许这样做。可以吗?

openlayers interaction
1个回答
0
投票

你可以这样做:

const dragInteraction = new Translate();

dragInteraction.on('translating', (event) => {
    const features = event.features.getArray();

    const featureExtents = features.map(x => x.getGeometry()?.getExtent());

    let boundingFeatureExtent = createEmpty();

    for (const extent of featureExtents) {
        if (!extent) {
            continue;
        }
        extend(boundingFeatureExtent, extent)
    }

    const mapView = map.getView();
    const viewExtent = mapView.calculateExtent();

    if (!containsExtent(viewExtent, boundingFeatureExtent)) {
        mapView.fit(extend(viewExtent, boundingFeatureExtent));
    }

})
© www.soinside.com 2019 - 2024. All rights reserved.