javascript - 当我缩放到太东的范围时地图崩溃
问题描述
我有一张带有按钮的地图,可以缩放到某个要素的范围。它在大多数情况下都可以正常工作,但是当范围太东时,整个地图就会消失。
这是我在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)];
为什么地图在东边时会崩溃,但不在东边时可以正常工作?我怎样才能解决这个问题?
解决方案
我不明白 xMinMax/yMinMax 的计算,ol.proj.fromLonLat 输入是经度和纬度的坐标,即以经度为第一个元素,纬度为第二个元素的数组。看来您使用的是两个经度或两个纬度(我读了两个 x 和两个 y)。
推荐阅读
- javascript - JavaScript 中的字符串拆分不正确
- swift - 为什么必须对隐式解包变量的捕获对象引用进行解包?
- excel - 运行时错误 1004 的问题: Range 类的 PasteSpecial 方法失败
- javascript - JavaScript `promt` 不会在脚本开头执行
- php - 从目录中获取随机文件
- wpf - 具有绑定参数问题的 WPF ValidationTule
- vuejs2 - Electron VueJS - 构建错误 - 无法注册应用程序协议。在 app.asar 中找不到 ENOENT、\dist_electron\bundled
- c++ - 如何使这个程序更高效?(程序查找给定数字的数字是否按升序排列)
- java - Hystrix:如何封装多路呼叫
- mongodb - mongodb中具有相同字段的单个集合与多个集合