Gis OpenLayers缩放:单位大小是多少?

Gis OpenLayers缩放:单位大小是多少?,gis,openlayers,postgis,Gis,Openlayers,Postgis,我有一个平面游戏世界地图,我已经用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' };

我有一个平面游戏世界地图,我已经用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数据库中。它是生成的,不是来自任何真实世界的源。

比例是地面单位和屏幕单位之间的差异。 您可以看到当前地图比例分母已通过比例控件或调用显示

var map = (OpenLayers.Map);
map.getScale();
如果矢量数据位于Postgis数据库中并存储为几何体列,则它应该具有正确的srid号。矢量数据必须与地图srid代码匹配或转换为相同的srid。 使用以下调用完成渲染后检查贴图投影:

var map = (OpenLayers.Map);
map.getProjection();
矢量数据srid必须与上面报告的值匹配


您是否将这些比例值与分辨率混淆?

您为postgis表提供了什么srid?根据API文档和源代码,地图没有“比例:数组”选项。因此,正如卡维拉所建议的那样,尺度和分辨率可能发生了变化。