【发布时间】:2011-01-04 17:28:20
【问题描述】:
我想提高我的应用程序的性能,该应用程序使用 OpenLayers、Google Maps 和 MapServer with TileCache (http://tilecache.org) 显示专题地图。于是我跟着installation instructions,成功安装了TileCache。
在我的应用程序中,我有以下代码可以在我的底图上嵌入一个新图层,到目前为止效果很好:
var wms_layer = new OpenLayers.Layer.WMS("WMS layer","localhost/cgi-bin/mapserv"
{
map: [path_to_my_mapfile],
layers: [list of layers],
transparent:true
});
my_map.addLayer(wms_layer);
documentation 基本上表示传递给 OpenLayers.Layer.WMS 构造函数的 URL 必须指向 TileCache 脚本,即 tilecache.cgi 或 tilecache.py。
var wms_layer = new OpenLayers.Layer.WMS("WMS layer","localhost/cgi-bin/tilecache/tilecache.cgi"
{
map: [path_to_my_mapfile],
layers: [list of layers],
transparent:true
});
my_map.addLayer(wms_layer);
不幸的是它不起作用,这意味着我在切换 url 时看不到任何地图。知道有什么问题吗?也许这是我在 tilecache.cfg 中错过的配置设置,但我无法弄清楚正确的设置是什么。
有人对这个问题有一些经验吗?
【问题讨论】:
-
同时,我可以解决一个因错过安装 Python MapScript 而引起的问题。使用 TileCacheConfig 工具,我现在可以查看我的地图,但仍然需要弄清楚如何让它们与我的底图正确对齐。
-
您用于配置切片服务的分辨率和范围(在 tilecache.cfg 中使用的)是否与您在创建 OpenLayers 地图对象时使用的分辨率和范围相匹配?直接向 TileCache 脚本请求图像时,是否会收到某种错误消息?
-
参数 maxResolution 与 OpenLayers.Map 对象和 Google Base Layer 的 maxResolution 参数匹配。参数 maxExtent 与 tilecache.cfg 中的参数 data_extent 和 bbox 匹配。它现在以某种方式工作,瓷砖缓存在我的磁盘上并显示在我的地图应用程序中。尽管 Mapserver 仍在抱怨“给出的 SRS 无效。SRS 必须对所有请求的图层都有效。”但这似乎是将我的图层从 epsg:4326 重新投影到 epsg:900313 的问题。
标签: javascript openlayers mapserver