2

我有一个平面游戏世界地图,我用 gdal2tiles.py 进行了光栅化(很明显,-p 光栅,因为它没有地理位置信息)。将其显示为 TMS 层就可以了。

我也有要叠加的矢量数据。通过反复试验,我找到了一个几乎可以工作的配置:

var scales = [0.692, 1.384, 2.768, 5.536, 11.072];
var options = {
    controls: [],
    maxExtent: mapBounds,
    scales: scales,
    units: 'm'
};

但我想知道为什么这些值如此奇怪,它们是否真的正确。所以基本上问题是:OpenLayers 地图的实际比例是多少?从 0,0 到 1,0 的线串有多长,到 0,1 有多长?单位是什么?显然它不是米,文档也没有在任何地方解释它。

以防万一,我的矢量数据存储在 PostGIS 数据库中。它是生成的,而不是来自任何真实世界的来源。

4

1 回答 1

1

比例是地面单位和屏幕单位之间的差异。您可以使用比例控件或调用来查看当前地图比例分母

var map = (OpenLayers.Map);
map.getScale();

如果您的矢量数据在 Postgis 数据库中并存储为几何列,那么它应该具有正确的 srid 编号。您的矢量数据必须与您的地图 srid 代码匹配或转换为相同的 srid。在完成渲染后检查您的地图投影,如下所示:

var map = (OpenLayers.Map);
map.getProjection();

您的矢量数据 srid 必须与上面报告的值匹配。

您不会将这些比例值与分辨率混淆吗?

于 2012-12-16T18:30:40.980 回答