问题标签 [getfeatureinfo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
276 浏览

javascript - 如何通过切换单选按钮获取特定 GeoServer 层的 URL?

我有多个 Geoserver 层,这里放 3 个(降雨、最高温度和最低温度)

层的名称和在单选按钮中分配的用于切换层的值是相同的。

当我检查单选按钮时,我得到了该特定层的值

但是当我传递这个值时,我无法获取该层的 URL

如何使该层值字符串在 Openlayers 6 的GetFeatureInfo函数中工作,以获取我们从侧边栏中选择的特定层的 URL?

任何其他建议都将受到高度赞赏。

496

在职的

0 投票
2 回答
375 浏览

reactjs - 如何在反应传单中添加弹出到 WMS 层

我使用 react-leaflet 来显示 WMS 层 <WMSTileLayer url="http://localhost:8080/geoserver/cite/wms?service=WMS" {...mapprops2} ></WMSTileLayer>

我使用 geoserver url 来获取数据,但是我应该如何将用户点击(lat、long 或 X 和 Y)传递给这个链接并获取数据?

http://localhost:8080/geoserver/cite/wms?service=WMS&version=1.1.0&request=GetFeatureInfo&layers=cite%3Acar&QUERY_LAYERS=cite%3Acar&bbox=-3.2503604888916%2C51.4469833374023%2C-3.16548633575439%2C51.5405578613281&width=696&height=768&srs =EPSG%3A4326&format=application/json&INFO_FORMAT=application/json&FEATURE_COUNT=50&X=50&Y=50&STYLES=&WIDTH=101&HEIGHT=101

如何根据用户单击此图层使用 getFeatureInfo 添加弹出窗口?react-leaflet 中也有类似 latLngToLayerPoint 的东西吗?

0 投票
2 回答
210 浏览

java - 从 GeoServer 获取图层特征信息(谷歌地图)

我正在用 Android Studio 编写一个 Android 应用程序(使用 Java)。该应用程序使用谷歌地图,并有一个图层,其中包含从地理服务器获取的字段所有权信息。设置它的代码如下,并且运行良好。

上面的代码将在 Google 地图上生成以下叠加层。在地理服务器上,图层保存为 EPSG:31287 (Austria Lambert)。

在此处输入图像描述

我现在想做的是在单击其中一个字段时获取功能信息。我尝试了很多,但无法弄清楚如何计算必要的值(宽度、高度、x、y、bbox)以从我点击的纬度和经度中获取特征信息。具体来说,这些是我缺少的查询中的值。

到目前为止我所做的(我认为)是计算我从纬度、经度和缩放级别单击的位置的 x 和 y 位置。

不幸的是,与我在 geoserver 上的图层预览中单击相同位置时得到的值相比,这些值似乎相差甚远。

有谁知道从纬度、经度和缩放级别获取我单击的位置的特征信息所需的计算步骤是什么?我将非常感谢您对此的任何帮助。

0 投票
2 回答
60 浏览

angular - getFeatureInfo Request 是在 cesium 上构建的?

我正在使用带有角度的铯。我需要知道 cesium 中 GetFeatureInfo 的请求 URL 是在哪里构建的,但我找不到它。对于上下文,我想做的是在地图上单击时显示 featureInfo。但是发送的请求使用 x 和 y 参数作为坐标,我想要用 i 和 j 替换它们。此外,我想在同一请求中获取 bbox 信息以显示它们。如果有人可以帮助我!谢谢 !

0 投票
0 回答
44 浏览

proxy - 在 OpenLayers 中使用代理的 GetFeatureInfo 请求

我正在尝试使用 getFeatureInfo 访问从地理服务器调用的数组中的图层,打开属性表。这应该是通过我按照指示添加的代理来完成的。该地图正在运行,但是一旦我添加了单击功能,地理服务器地图就会消失。谷歌搜索了几天,仍然无法解决这个问题,任何帮助将不胜感激,谢谢。

0 投票
0 回答
85 浏览

proxy - 对 Geoserver 的 GetFeatureInfo 请求返回错误,

我正在尝试使用 WMS 在 Open Layers 上向 Geoserver 发出 GetFeatureInfo 请求。该请求似乎已按预期进行并在每次点击时加载,但“图像”每次都崩溃。该请求是通过我自己的计算机上的代理发出的,该代理似乎运行良好。这是事件的图像和我一直在使用的代码。由于我对这方面的所有组件都非常缺乏经验,因此将不胜感激。感谢你们。

我在开放层中返回的内容

剧本 :

HTML:

  • 地理服务器
  • LTU
  • 全球定位系统
  • 0 投票
    0 回答
    30 浏览

    geoserver - 在颤动地图中使用地理服务器。如何获取地理服务器 getfeatureinfo api 的地图大小 x 和 y

    这是我的代码

    我搜索了很多,但经过太多努力,我只得到了用于 api 的 BBOX。但其他参数是剩余的 x、y、高度、宽度等

    0 投票
    0 回答
    44 浏览

    axios - 如何在 AWS Amplify 上托管的 React-Leaflet 应用程序中代理 GetFeatureInfo 请求?

    简短的问题是“如何将我的工作http-proxy-middleware方法从开发转移到 AWS Amplify 上的生产环境?” 详情如下:

    背景

    我有一个传单地图,它通过使用react-leaflet的 Create-React-Application 包装器提供。

    我的目标是单击地图并GetFeatureInfo根据单击的位置向公共 WMS 服务发出请求:

    https://environment.data.gov.uk/spatialdata/special-protection-areas-england/wms?&service=WMS&version=1.1.1&request=GetFeatureInfo&query_layers=Special_Protection_Areas_England&info_format=text%2Fhtml&srs=EPSG:4326&x=486&y=601&bbox=-0.5260390494613718 ,52.401760738118064,1.6085530989434462,53.529393562701685&height=1165&width=1240

    问题

    在开发模式下,如果我只是在该位置触发 Axios GET 请求,WMS 服务器会返回 CORS 错误:

    在“https://environment.data.gov.uk/spatialdata/special-protection-areas-england/wms?”访问 XMLHttpRequest 来自原点“http://localhost:3000”的 CORS 策略已阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。

    我对 WMS 服务器没有任何控制权,因此我无法更改其后端的任何内容。

    开发解决方法

    我的开发解决方法是使用http-proxy-middleware. 在 setupProxy.js 我有:

    我现在可以使用 Axios 向代理 URL 发送 GET 请求并获得响应而不会出现 CORS 错误,因此在 localhost:3000 的开发模式下,一切都按预期工作:

    http://localhost:3000/defra/spatialdata/special-protection-areas-england/wms?&service=WMS&version=1.1.1&request=GetFeatureInfo&query_layers=Special_Protection_Areas_England&info_format=text%2Fhtml&srs=EPSG:4326&x=486&y=601&bbox=-0.52603904946137378150494613781 ,1.6085530989434462,53.529393562701685&height=1165&width=1240

    如何将此部署到 AWS Amplify?

    主要问题是,一旦我将 React 应用程序部署到 AWS Amplify,代理方法就不再有效 - defraURL 中的组件没有代理到https://environment.data.gov.uk,因此查询失败。

    根据Create React App repo 上的评论,“代理只是一个开发功能。它不适合生产......代理的概念在那里没有意义,因为没有开发服务器。”

    就我而言,我认为我确实需要一个代理来避免 CORS 错误。

    如何在 AWS Amplify 上配置应用程序以将 GET 请求代理到 WMS 服务器?

    0 投票
    0 回答
    7 浏览

    getfeatureinfo - 需要同时显示 x 和 y 的特征名称而不是索引号

    希望“结果”显示特征名称而不是索引。但无法生成,因为 get_feature_names() 不适用于 2d,并且 np.where() 仅返回索引号。