首页 > 解决方案 > 当我缩放到太东的范围时地图崩溃

问题描述

我有一张带有按钮的地图,可以缩放到某个要素的范围。它在大多数情况下都可以正常工作,但是当范围太东时,整个地图就会消失。

这是我在javascript中得到的:

function initMap() {

  var view = new ol.View({
    center: endpoint,
    zoom: 4,
    maxZoom: 16,
  });

  map = new ol.Map({
    target: 'map',
    layers:[],
    view: view
  });

  map.addControl(zoomToExtentControl);
};


zoomToExtentControl = new ol.control.ZoomToExtent({
 extent: [-1013450.0281739295, 3594671.9021477713, 6578887.117336057, 10110775.689402476],
  className: 'custom-zoom-extent',
  label: 'Z'
});

稍后在另一个函数中:

 let xMinMax = ol.proj.fromLonLat([xMin, xMax]);
 let yMinMax = ol.proj.fromLonLat([yMin, yMax]);
 let padding = 1.06;
 zoomToExtentControl.extent = [(xMinMax[0] * padding), (yMinMax[0] * (padding-0.02)), (xMinMax[1] * padding), (yMinMax[1] * padding)];

为什么地图在东边时会崩溃,但不在东边时可以正常工作?我怎样才能解决这个问题?

标签: javascriptzoomingextent

解决方案


我不明白 xMinMax/yMinMax 的计算,ol.proj.fromLonLat 输入是经度和纬度的坐标,即以经度为第一个元素,纬度为第二个元素的数组。看来您使用的是两个经度或两个纬度(我读了两个 x 和两个 y)。


推荐阅读