首页 > 解决方案 > 如何从 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 = "") 

但是我对如何从中获取点信息有点困惑。有人可以帮忙吗?据我了解,闪亮的包在这里应该很有用,但我不确定如何。

标签: rweb-scrapingleafletmaps

解决方案


你不能。您正在从WMS端点获取图像,其中包含图形小标志,并且根本没有机器可读的数据。与服务于类似目的但允许访问原始(ER)地理特征的协议栈相比,例如WFS矢量切片。

也就是说:有一些技巧可以应用于这个特定的 WMS 端点。如果您仔细查看了该端点文档的XMLGetCapabilities,您会注意到您可以要求 WMS 端点以多种格式为您提供图像,例如image/pngimage/jpeg; 但是这个特定的端点提供了非图像格式,例如application/rss+xml(AKA GeoRSS)。

因此,如果您在 OpenLayers 查看器中获取请求 URL 之一,请更改image/pngapplication/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&amp;request=GetMap&amp;version=1.1.1&amp;format=application%2Frss+xml&amp;layers=exovi%3AOV_VISTA_4326_PROSPECTADA&amp;styles=prospectada&amp;height=520&amp;width=694&amp;transparent=true&amp;bbox=-10.12451171875%2C34.287109375%2C5.12451171875%2C45.712890625&amp;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 端点可能提供也可能不提供非图像格式,由其管理员配置)


推荐阅读