Mapbox-gl:从中心点,缩放级别和尺寸计算地图边界
mapbox-gl: calculate map bounds from center point, zoom level and dimensions
在Node.js中使用mapbox-gl-native,我需要在渲染后找出地图的实际边界。我正在渲染一个在项目的README.md:
中概述的地图。var fs = require('fs');
var path = require('path');
var mbgl = require('mapbox-gl-native');
var sharp = require('sharp');
var options = {
request: function(req, callback) {
fs.readFile(path.join(__dirname, 'test', req.url), function(err, data) {
callback(err, { data: data });
});
},
ratio: 1
};
var map = new mbgl.Map(options);
map.load(require('./test/fixtures/style.json'));
map.render({zoom: 12.25, center: [-122.67, 45.52]}, function(err, buffer) {
if (err) throw err;
// TODO: get map extent
// var extent = map.extent();
// extent is {minX: ..., maxX: ..., minY: ..., maxY: ...} or similar...
map.release();
var image = sharp(buffer, {
raw: {
width: 512,
height: 512,
channels: 4
}
});
// Convert raw image buffer to PNG
image.toFile('image.png', function(err) {
if (err) throw err;
});
});
在渲染地图之后,我想知道渲染地图的边界是什么。有没有人知道这在mapbox-gl-native
中是否可行,或者在未来的版本中是否可以添加到API中?或者是否有其他方法可以简单地从缩放级别、地图的中心和地图的尺寸计算地图的实际边界?
我使用并稍微调整了@JohnS的优秀答案,以计算给定程度的缩放级别。也许有一种方法可以恢复此计算以获得实际范围?
我想你可以试试mapbox/geo-viewport
:
geoViewport.bounds([-122.67, 45.52], 12.25, [512, 512])
相关文章:
- 根据元素和容器大小计算边距
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- 使用D3.js计算带有字母间距的文本长度
- 使用CSS或JavaScript计算分页符的数量
- 可以't计算自定义谷歌地图的js
- 如何计算每个元素's的高度,并将这些值用作函数中的变量
- JavaScript计算帮助(乘以时间)
- jQuery根据鼠标位置计算DIV偏移量和边界
- 更改计算为适合边界框的区域
- 如何在给定距离内计算边界框
- 如何计算应用 CSS 转换矩阵的 DOM 元素的边界矩形大小?不使用 Element.getBoundingClient
- 使用 MomentJS 计算日期在月边界上的差值
- Threejs:计算旋转文本的边界框
- Mapbox-gl:从中心点,缩放级别和尺寸计算地图边界
- d3.js散点图-缩放/拖动边界、缩放按钮、重置缩放、计算中值
- 谷歌地图v3neneneba API-计算边界给定的中心坐标和距离
- 计算摄影机的近平面边界和远平面边界
- 谷歌地图V3 - 如何计算给定边界的缩放级别
- 在 ThreeJS 中计算网格的体积大于边界框体积
- 使用getBoundingClientRect()计算边界框