如何根据openlayers 3中的输入值设置地图显示范围?

时间:2019-05-23 06:01:14

标签: openlayers-3 extent

根据输入的浮点数设置地图显示范围,可以显示效果,但是删除输入值时,地图仍然显示极限范围,如何取消呢?

地图当前可以根据输入的值限制地图显示范围。

这是相关代码:

content.setExtent.connect(value => {
            let center = ol.proj.transform(map.getView().getCenter(), "EPSG:3857", "EPSG:4326");
            let lon = center[0],
                lat = center[1];
            console.log(lon, lat);
            if (isNaN(value)) {
                return ;
            } else {
                map.setView(new ol.View({
                    extent: ol.proj.transformExtent([lon + value, lat + value, lon + value,
                        lat + value], 'EPSG:4326', 'EPSG:3857'),
                    center: map.getView().getCenter(),
                    zoom: map.getView().getZoom(),
                }));
            }
        })

1 个答案:

答案 0 :(得分:0)

content.setExtent.connect(value => {
            let center = ol.proj.transform(map.getView().getCenter(), "EPSG:3857", "EPSG:4326");
            let lon = center[0],
                lat = center[1];
            console.log(lon, lat);
            if (isNaN(value)) {
                map.setView(new ol.View({
                    center: map.getView().getCenter(),
                    zoom: map.getView().getZoom(),
                }));
            } else {
                map.setView(new ol.View({
                    extent: ol.proj.transformExtent([lon - value, lat - value, lon + value,
                        lat + value], 'EPSG:4326', 'EPSG:3857'),
                    center: map.getView().getCenter(),
                    zoom: map.getView().getZoom(),
                }));
            }
        })