Geoserver WMS呼叫未返回基本地图

时间:2018-08-30 05:10:57

标签: javascript java openlayers geoserver wms

我正在基于openlayers,geoserver,java和javascript的Web应用程序上工作。

用户需要在地图上选择一个区域,并且必须下载大部分图像。我尝试使用ajax击中wms-

http://localhost:8080/geoserver/wms?request=GetMap&service=WMS&version=1.1.0&layers=geoworkspace:STRUCTURE,&styles=&srs=EPSG:27700&bbox=526274.1873390013,196214.08896841796,526277.1040062243,196217.2973028639&width=1200&height=1200&format_options=dpi:300;antialiasing:on&format=image%2Fpng8

结果,我得到了除基础底图之外的所有必需图层。 有没有办法获取基本地图?

对此要求是否有替代方法?

2 个答案:

答案 0 :(得分:0)

在服务器(GeoServer)上为Ajax启用CORS

https://gist.github.com/essoen/91a1004c1857e68d0b49f953f6a06235

答案 1 :(得分:0)

如果基础层位于同一服务器上,则可以通过在逗号分隔的列表中提供层名称作为层请求参数的一部分,从而在一次GetMap操作中请求它。请注意,尽管这会创建一个图像,然后合并图层,所以您需要注意列出图层的顺序。

所以

  

http://ogc2.bgs.ac.uk/cgi-bin/UGA_ARGI/ows?service=WMS&version=1.3.0&request=GetMap&width=700&height=450&styles=,&layers=ARTISAN,ARTISANC&format=application/openlayers&crs=EPSG:4326&bbox=-2.000000,29.000000,4.500000,37.000000&

ARTISANC层绘制在ARTISAN层的顶部。

  

http://ogc2.bgs.ac.uk/cgi-bin/UGA_ARGI/ows?service=WMS&version=1.3.0&request=GetMap&width=700&height=450&styles=,&layers=ARTISANC,ARTISAN&format=application/openlayers&crs=EPSG:4326&bbox=-2.000000,29.000000,4.500000,37.000000&

ARTISAN层绘制在ARTISANC层的顶部。

因此,在您的情况下,您希望首先列出基础层。

还要注意,由于有两层,因此应该有两种样式,因此我们有样式请求参数,例如styles=,&,也可以只用styles&来强制使用默认值。