r - 如何从 WMS 传单图层中检索点位置数据?
问题描述
我对使用地图非常陌生,并获得了从该网站收集点数据的任务:https ://mapadefosas.mjusticia.es/exovi_externo/CargarMapaFosas.htm#
到目前为止,我已经设法弄清楚如何加载地图和其中一个图层:
library("leaflet")
library("leaflet.extras")
library("shiny")
x.WGS=-3.87988
y.WGS=40.26270
leaflet() %>% setView(x.WGS, y.WGS, zoom = 5) %>%
addTiles() %>%
addWMSTiles(
baseUrl = "https://mapadefosas.mjusticia.es/geoserver/wms",
layers = "INTERVENIDA",
options = WMSTileOptions(format = "image/png", transparent = TRUE), attribution = "")
但是我对如何从中获取点信息有点困惑。有人可以帮忙吗?据我了解,闪亮的包在这里应该很有用,但我不确定如何。
解决方案
你不能。您正在从WMS端点获取图像,其中包含图形小标志,并且根本没有机器可读的数据。与服务于类似目的但允许访问原始(ER)地理特征的协议栈相比,例如WFS或矢量切片。
也就是说:有一些技巧可以应用于这个特定的 WMS 端点。如果您仔细查看了该端点文档的XMLGetCapabilities
,您会注意到您可以要求 WMS 端点以多种格式为您提供图像,例如image/png
或image/jpeg
; 但是这个特定的端点提供了非图像格式,例如application/rss+xml
(AKA GeoRSS)。
因此,如果您在 OpenLayers 查看器中获取请求 URL 之一,请更改image/png
为application/rss+xml
,并向 WMS 端点发出手动请求,例如...
https://mapadefosas.mjusticia.es/geoserver/wms?LAYERS=PROSPECTADA&SRS=EPSG:4326&FORMAT=application/rss+xml&TRANSPARENT=true&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&EXCEPTIONS=application/vnd.ogc.se_inimage&BBOX=-10.12451171875,34.287109375,5.12451171875,45.712890625&WIDTH=694&HEIGHT=520
...然后您将获得一个格式良好、可解析的 XML 文档,它看起来像...
<?xml version="1.0" encoding="UTF-8"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:georss="http://www.georss.org/georss" version="2.0"><channel> <title>exovi:OV_VISTA_4326_PROSPECTADA</title><description>Generated from exo2</description><link><![CDATA[https://mapadefosas.mjusticia.es:443/geoserver/wms?service=wms&request=GetMap&version=1.1.1&format=application%2Frss+xml&layers=exovi%3AOV_VISTA_4326_PROSPECTADA&styles=prospectada&height=520&width=694&transparent=true&bbox=-10.12451171875%2C34.287109375%2C5.12451171875%2C45.712890625&srs=EPSG%3A4326]]> </link><atom:link href="https://mapadefosas.mjusticia.es:443/geoserver/wms?service=wms&request=GetMap&version=1.1.1&format=application%2Frss+xml&layers=exovi%3AOV_VISTA_4326_PROSPECTADA&styles=prospectada&height=520&width=694&transparent=true&bbox=-10.12451171875%2C34.287109375%2C5.12451171875%2C45.712890625&srs=EPSG%3A4326" rel="self"/><item><title>OV_VISTA_4326_PROSPECTADA.fid--343d670c_171b1be4379_4def</title><link><![CDATA[https://mapadefosas.mjusticia.es:443/geoserver/wms/reflect?featureid=OV_VISTA_4326_PROSPECTADA.fid--343d670c_171b1be4379_4def&layers=exovi%3AOV_VISTA_4326_PROSPECTADA&format=application%2Fatom%2Bxml]]></link><guid><![CDATA[https://mapadefosas.mjusticia.es:443/geoserver/wms/reflect?featureid=OV_VISTA_4326_PROSPECTADA.fid--343d670c_171b1be4379_4def&layers=exovi%3AOV_VISTA_4326_PROSPECTADA&format=application%2Fatom%2Bxml]]></guid> <description><![CDATA[<h4>OV_VISTA_4326_PROSPECTADA</h4>
<ul class="textattributes">
<li><strong><span class="atr-name">CARTOGRAFICA_UTM_ID</span>:</strong> <span class="atr-value">177</span></li>
<li><strong><span class="atr-name">FOSA_NM</span>:</strong> <span class="atr-value">186/2009 ASTU</span></li>
<li><strong><span class="atr-name">FOSA_ID</span>:</strong> <span class="atr-value">186</span></li>
<li><strong><span class="atr-name">DENOMINACION_TX</span>:</strong> <span class="atr-value">Fosa en la Avda. de Oviedo, hacia el nº 28</span></li>
<li><strong><span class="atr-name">LOCALIDAD_TX</span>:</strong> <span class="atr-value">Noreña</span></li>
<li><strong><span class="atr-name">PROVINCIA_TX</span>:</strong> <span class="atr-value">Asturias</span></li>
<li><strong><span class="atr-name">LOCALIDAD_ALTERNATIVA_TX</span>:</strong> <span class="atr-value">Noreña</span></li>
<li><strong><span class="atr-name">RAZON_TX</span>:</strong> <span class="atr-value">FUSILAMIENTO</span></li>
<li><strong><span class="atr-name">FOSA_ESTADO_TX</span>:</strong> <span class="atr-value">DESAPARECIDA</span></li>
<li><strong><span class="atr-name">ESTADO_ACTUAL_FOSA_TX</span>:</strong> <span class="atr-value">BAJO CONSTRUCCIÓN</span></li>
<li><strong><span class="atr-name">NUM</span>:</strong> <span class="atr-value">0</span></li>
</ul>
]]></description><georss:point>43.394316667 -5.706486111</georss:point></item> <item><title>OV_VISTA_4326_PROSPECTADA.fid--343d670c_171b1be4379_4df0</title><link><![CDATA[https://mapadefosas.mjusticia.es:443/geoserver/wms/reflect?featureid=OV_VISTA_4326_PROSPECTADA.fid--343d670c_171b1be4379_4df0&layers=exovi%3AOV_VISTA_4326_PROSPECTADA&format=application%2Fatom%2Bxml]]></link><guid><![CDATA[https://mapadefosas.mjusticia.es:443/geoserver/wms/reflect?featureid=OV_VISTA_4326_PROSPECTADA.fid--343d670c_171b1be4379_4df0&layers=exovi%3AOV_VISTA_4326_PROSPECTADA&format=application%2Fatom%2Bxml]]></guid><description><![CDATA[<h4>OV_VISTA_4326_PROSPECTADA</h4>
然后,您应该能够通过 XML 或 GeoRSS 解析器对其进行管道传输,并根据需要转换您的数据。根据您的技能和工具,您可能想尝试其他非图像格式。如果您可以下载数据,则根本不需要使用 Leaflet。
(请注意,在撰写本文时,该特定端点提供 GeoRSS 格式的数据,并且其他 WMS 端点可能提供也可能不提供非图像格式,由其管理员配置)
推荐阅读
- python - Pandas Group 然后滚动和求和得到错误的结果
- c# - 如何按他自己的属性和另一个列表中的属性对列表进行排序?
- php - 无法读取 Dotenv.php:symfony 中的“../.dev.env”环境文件
- php - 如果子数组中的元素已存在于另一个元素中,则删除整个数组元素
- javascript - 在 ReactJs 中使用条件渲染
- c# - 将字符串解析为 int 差异
- tkinter - 将 IntVar() 应用于重点 Entry() tkinter
- c - 为什么我们需要在背景画笔颜色上加 1?
- java - Maven SOLRJ 7.6 版增加线程
- kubernetes - 为什么标签在一次部署中被提及 3 次