如何在 openlayers 按钮中使用变量?

How do I use a variable in an openlayers button?

我有这个按钮:

function initMap() {
map.addControl(zoomToExtentControl);
};

zoomToExtentControl = new ol.control.ZoomToExtent({
  extent: routeExtent,
  className: 'custom-zoom-extent',
  label: 'Z'
});

routeExtent 在globals.js 中定义为

var routeExtent = [-1013450.0281739295, 3594671.9021477713, 6578887.117336057, 10110775.689402476];

在 initMap 的其他地方计算了 routeExtent 的新值,但按钮仅缩放到 globals.js 中定义的预设范围,我该如何更改?

如果您有权访问 ZoomToExtent class 实例,您可以直接更改范围 属性。如果没有访问权限,可以通过地图控件数组访问它,再次直接更改范围属性。这是一个测试示例:

const zoomToExtentControl = new ZoomToExtent({
  extent: [
    -1013450.0281739295,
    3594671.9021477713,
    6578887.117336057,
    10110775.689402476
  ],
  label: "Z"
});


map.addControl(zoomToExtentControl);

zoomToExtentControl.extent = [0, 0, 0, 0];

如果这回答了您的问题,请告诉我。