【问题标题】:Geoserver WMS call not returning base mapGeoserver WMS 调用未返回底图
【发布时间】:2019-02-04 23:02:48
【问题描述】:

我正在开发一个基于 OpenLayers、Geoserver、Java 和 JavaScript 的 Web 应用程序。

用户需要在地图上选择一个区域,并且该部分必须作为图像下载。我尝试使用 Ajax 访问 WMS -

http:// localhost:8080 / geoserver / wms?请求= getmap&service = wms&version = 1.1.0&layers = geoWorkspace:结构,&styles =&srs = epsg:27700和Bbox = 526274.187339684.1873390013,196214.08896804006,526397.1873028639和Width = 1200和身高=1200&format_options=dpi:300;antialiasing:on&format=image%2Fpng8

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

是否有替代方法来满足此要求?

【问题讨论】:

  • 你的底图在哪里?
  • 如果底图和结构图层在同一台服务器上,那么,如果您想在上面显示底图和图层,那么只需在Layers=& 属性中提供图层列表

标签: javascript java openlayers geoserver wms


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    如果您的基础图层位于同一服务器上,那么您可以在单个 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& 来强制使用默认值。

    【讨论】:

      猜你喜欢
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      • 2015-02-17
      • 2011-03-02
      • 1970-01-01
      • 2017-10-27
      • 2015-03-09
      相关资源
      最近更新 更多