是否有可能在 Openlayers 中获取 XYZ 源的中心(或范围)?(我不是说获取视图的中心,而是获取源本身定义的地图的中心。)确实VectorSource
有一个getExtent
函数,但不幸的是 XYZ 没有这样的方法。
不幸的是,使用source.getTileGrid().getExtent()
似乎不起作用;这是一个最小的可重现的例子:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/ol.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/ol.css">
</head>
<body>
<div id="map" class="map"></div>
<script type="text/javascript">
const src = new ol.source.XYZ({
url: 'https://s3.eu-central-1.amazonaws.com/old-maps/the-hague-1944/tiles/{z}/{x}/{y}.jpg'
})
const ext = src.getTileGrid().getExtent();
console.log(ext);
</script>
</body>
</html>
(我用的是这张地图。)
返回的结果[-20037508.342789244, -20037508.342789244, 20037508.342789244, 20037508.342789244]
好像中心是 [0, 0, 0, 0]。当然事实并非如此,如果我使用不同的地图,结果将是完全相同的范围。