google-maps - 如何设置透明叠加 WMS 图层的样式

标签 google-maps google-maps-api-3 gis wms sld

我成功了overlayed a WMS layer然而,在谷歌地图v3中,由于图 block 上的信息是透明的黑色,因此在深色背景(如卫星 map )上看不清楚,例如看一些图 block :

http://geoportal2.uhul.cz/wms_oprl/?SERVICE=WMS&REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&LAYERS=HMLCR&FORMAT=image/png;%20mode=24bit&FGCOLOR=0xFF0000&TRANSPARENT=TRUE&SRS=EPSG:4326&BBOX=16.58935546875,49.37522008143603,16.600341796875,49.38237278700955&WIDTH=256&HEIGHT=256&STYLES=

( This was the WMS link 检索该图 block )

问题:如何修改上述 WMS 请求以将前景色(当前为黑色)更改为某种自定义颜色(例如红色)?换句话说,如何设置图层样式?服务器显然能够在这一层执行此操作,因为可以通过 their web map application 执行此操作。 (仅适用于 IE),您可以在其中选择颜色。例如,请参阅此 map 图像:

enter image description here

( The following link 用于检索图像 - 请注意,它包含比例和 Logo ,因此它不是正确的图 block 。)

不幸的是,这个 Web 应用程序不使用 WMS 来获取此样式 map ,因此我不能仅将样式参数复制到 WMS 请求。 我必须通过 WMS 请求进行样式设置(因为此其他请求格式是专有的,检索整个 map - 不是为图 block 设计 - 并且它似乎不支持 WGS 坐标) - 如何我应该这样做吗?

我尝试过:

  1. 看看WMS documentation ,特别是version 1.1.1
  2. 看看SLDs ,但掌握起来似乎相当复杂......
  3. 看看GetCapabilites command output对于 WMS 服务器
  4. 此外,查看 DescribeLayerGetStyles我想要的图层的命令输出 (HLMCR) 我什至不知道该图层是否支持 WMS 样式...

我迷路了,如果您为我指出正确的方向或信息(如果它甚至可以在 WMS 中解决(对于这一层)),我将不胜感激。

“不可能”对我来说也是一个有用的答案!

提前致谢。

最佳答案

乍一看,这似乎是一个 Mapserver 5.x 实现,并且 getCapativity 指出,UserDefinedSymbolization SupportSLD="1" 在 map 级别启用,IIRC 意味着所有图层都应该继承它。

因此,理论上您应该能够在 GET 请求中或在某个文件中提供 SLD,并将 SLD 的 URL 提供给 GET 请求,然后一切就绪。

编写 SLD 会很烦人,但如果您认为某些 SLD 应该可以工作但不起作用,请将其粘贴到此处。

关于google-maps - 如何设置透明叠加 WMS 图层的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8320512/

相关文章:

gis - 在 GeoDataFrame 中有超过 1 个几何列是不好的做法吗?

node.js - 序列化,在边界框内搜索点

iphone - 为 MapKit 转换 "world file"GIS?

android - 谷歌地图上的当前位置没有打开 GPS(android 设备)?

android - 如何在 Android 上模拟路线(.gpx 或 .kml)?

javascript - Google Places API 获取机构名称

javascript - 如何在 Google Maps JavaScript API (V3) 中强制拖动标记?

api - 超出 API 配额——后果?

javascript - 如何为谷歌地图标记动画预加载图像

javascript - 谷歌地图 getZoom