mapbox-gl:从中心点、缩放级别和尺寸计算地图边界
Posted
技术标签:
【中文标题】mapbox-gl:从中心点、缩放级别和尺寸计算地图边界【英文标题】:mapbox-gl: calculate map bounds from center point, zoom level and dimensions 【发布时间】:2016-12-23 04:01:02 【问题描述】:在 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 并将其稍微调整为类似的问题,以计算给定范围的缩放级别。也许有办法恢复这个计算以获得实际范围?
【问题讨论】:
【参考方案1】:我觉得你可以试试mapbox/geo-viewport
:
geoViewport.bounds([-122.67, 45.52], 12.25, [512, 512])
【讨论】:
以上是关于mapbox-gl:从中心点、缩放级别和尺寸计算地图边界的主要内容,如果未能解决你的问题,请参考以下文章