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 的 excellent answer 并稍微调整了一个类似的问题来计算给定范围内的缩放级别。也许有一种方法可以恢复此计算以获得实际范围?
我想你可以试试 mapbox/geo-viewport
:
geoViewport.bounds([-122.67, 45.52], 12.25, [512, 512])
在 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 的 excellent answer 并稍微调整了一个类似的问题来计算给定范围内的缩放级别。也许有一种方法可以恢复此计算以获得实际范围?
我想你可以试试 mapbox/geo-viewport
:
geoViewport.bounds([-122.67, 45.52], 12.25, [512, 512])