我已经使用MapServer大约2个小时了,但是它看起来有点复杂。所以我的问题是
有没有办法让mapserver显示一张简单的全球地图,这样我就可以移动地图来看到世界的不同部分?
(据我目前所知,它只显示您传递给mapserv cgi的Map,而且map是静态的,不能移动!)
编辑:我仍然在想,我是否可以有一个简单的地图,为整个世界或国家或任何东西!我应该自己写所有的.Map文件吗?
发布于 2012-09-12 21:20:05
好的,在查找之后,我找到了一些JS库来做这件事,其中一个就是Open Layers。您只需在html页面的开头引用它,如下所示:
<script src="http://openlayers.org/api/OpenLayers.js"></script>然后,您可以通过将如下所示的MapServer数据绑定到OpenLayers初始化函数来获得地图的缩放和移动选项。
Var map, layer;
function init(){
map = new OpenLayers.Map( 'map' );
layer = new OpenLayers.Layer.MapServer( "NAME",
"http://localhost/cgi-bin/mapserv", {map: 'PATH_TO_.MAP'} );
map.addLayer(layer);
map.zoomToMaxExtent();
}在spatialhorizons.com中可以找到很多很酷的教程。
希望这对某些人有帮助:)
发布于 2012-09-11 04:24:38
MapServer就是一个地图服务器。听起来您当前正在使用cgi脚本来显示托管地图。像MapServer这样的WMS提供程序承载了可以使用WMS客户端应用程序查看的数据。有很多这样的应用程序。您将需要一个更复杂的客户端应用程序来连接到MapServer,以便执行更复杂的地图操作。
查看GoogleEarth
或NASA WorldWind
或者我还没有使用过this,但它看起来可能是最简单的,如果最不可靠的话。
发布于 2016-09-09 03:45:29
首先是MapServer服务器端技术。在我看来,放大/平移是客户端的行为。
当我们查看用户在web应用程序上平移/缩放的时刻时,实际发生的情况是前端应用程序获得平移/缩放事件,并调用mapserver以使新地图返回到客户端。
因此,您的leaflet、Google地图API、Openlayers等更有可能处理客户端移动的检测,并将其解析为新的getmap请求,然后将请求发送到mapserver以获取响应。
您在使用get请求的MapServer中看到的是静态的,而且理应如此。动态部分发生在客户端,从前端应用程序进行动态调用,从而进行这些静态调用。当客户端动态发出请求并从响应中刷新映射时,这是交互的。
https://stackoverflow.com/questions/12338416
复制相似问题