2012-12-10 107 views
2

我有一個平坦的遊戲世界地圖,我用gdal2tiles.py(-p柵格,顯然,因爲它沒有地理位置信息)rastered。顯示它作爲一個TMS層工作得很好。OpenLayers規模:單位大小是多少?

我也有要疊加的矢量數據。經過反覆試驗,我發現幾乎工作的配置:

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。它是由任何真實世界的源生成的。

+0

你給了postgis表格? – RickyA

+0

通過API文檔和源代碼,map沒有scale:array選項。如Cavila所說,所以可能會改變比例和分辨率。 – user1702401

回答

1

尺度是地面單位和屏幕單位之間的差異。 你可以看到當前地圖比例尺分母被顯示爲標尺控制或以

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

如果你的矢量數據是在PostGIS的數據庫的調用和存儲爲幾何列,那麼它應該有一個合適的SRID號。您的矢量數據必須與您的地圖上的srid代碼匹配或轉換爲相同的srid。 檢查您的地圖投影后,它已經完成,像這樣的調用渲染:

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

矢量數據SRID必須上文所報告的價值相匹配。

難道你不會將這些比例值與分辨率混淆嗎?