如何在R中使用WMS?

10

我想在R中使用leaflet()实现一个特殊的WMS层。但是我无法成功使用我想要的WMS层。

library("leaflet")
library("sp")

# this example from the tutorial works
leaflet() %>% addTiles() %>% setView(-93.65, 42.028, zoom = 4) %>%
  addWMSTiles(
    "http://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r.cgi",
    layers = "nexrad-n0r",
    options = WMSTileOptions(format = "image/png", transparent = TRUE) 
)

# but for my implementation it don't work
leaflet() %>% addTiles() %>% setView(lat = 53.8, lng = 12.6, zoom = 8) %>% 
  addWMSTiles("http://www.umweltkarten.mv-regierung.de/script/mv_a3_wasserschutz_wms.php?", 
              layers = "t2_bib_p", 
              options = WMSTileOptions(format = "image/png")
)

我认为坐标参考系统存在问题。因为我想要使用的WMS图层没有标准的CRS。所以我尝试使用WMSTileOptions()进行实验:

crs=CRS("+init=epsg:5650")

我的想法是将 WMS 图层作为矢量数据的背景图像。 矢量数据主要来自 shape 文件和 GPS 数据(文本文件)。 目的是创建可以在报告中使用的地图。 如果您知道除了 leaflet 之外在 R 中使用 WMS 的其他可能性,也欢迎提供建议。


1
不知道你的结论是从哪里得出的。Shape文件、Tableau坐标数据是大多数GIS API中非常常见的数据类型。而Leaflet/MapBox则是基于OGC协议构建的,wms是其默认组件...此外,crs或自定义投影通常由您的投影引擎/应用程序在数据准备阶段或服务器端处理。也就是说,有多个库可以提供这样的功能,例如MapBox是基于leaflet和proj4js的独立库。将矢量数据发布为WMS是基本功能之一,使用投影库,您应该能够轻松地完成这项工作。 - Teng Ma
我已经让我的问题更加清晰了。向量不是问题所在...你推荐的库我稍后会检查。 - and-bri
我不会说德语,但我担心这条消息可能表示服务已离线。你能为我验证一下吗?“注意:从2016年10月4日起,仅提供以下列表中的主题服务(WMS / WFS)。然后将不再提供“大型”服务lung_wms_wms。主题服务包含所有已发布的主题。” - Hack-R
可能意味着WMS图层不再可用。消息说在本页面底部有一个列表,列出了所有可用的WMS。但无论如何...我现在检查了示例中的WMS地址 - 在qgis中可以工作,但在R中不能。 - and-bri
1个回答

1
我注意到如果你调查基本的URL,它会显示:

msWMSDispatch(): WMS服务器错误。不完整的WMS请求:缺少VERSION参数

通过研究这个网站,我确定了正确的格式是:

https://www.umweltkarten.mv-regierung.de/script/mv_a3_wasserschutz_wms.php?SERVICE=WMS&REQUEST=GetCapabilities&VERSION=1.3.0

如果您在浏览器中输入,将会产生大量的WMS数据。我们可以使用“查找”功能查看可供查询的图层。有几个图层可供选择,例如t3_ksg、t3_wsg和lungwms,但似乎t2_bib_p对mv_a3_wasserschutz_wms不可用。请注意保留HTML标签。

谢谢你的帮助...但是即使我使用了你提供的地址和图层,在R中它仍然不能正常工作。你能否请提供你用于使用WMS并应用find()函数的代码? - and-bri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接