android - 手动生成 WMS GetFeatureInfo URL

标签 android geoserver wms getfeatureinfo

我将使用 wms getfeatureinfo 来获取图层的信息,而无需任何库。事实上,我正在使用 Android,找不到任何适合我的东西,所以我必须从 手动生成的 URL 中获取信息。我已经看到 WMS refrence 并且可以找到 requiered 参数以从 geoserver 请求。 Here 是引用。

我尝试为位于 ESPG 38577547018.12374 -3645681.16486 位置的要素构建示例 url 我的图层名称是 Hazard:point_4326 并且我将 bbox 和高度和宽度设置为 bbox=-2.002637639E7,-2.00489661E7,2.002637639E7,2.00489661E7&width=767&height=768,但它没有给我 任何功能found 我认为问题出在设置 bbox 上。这是我使用的网址

http://151.80.201.170/geoserver/Hazard/wms?request=GetFeatureInfo&service=WMS&version=1.1.1&layers=Hazard:point_4326&styles=&srs=EPSG%3A3875&format=image%2Fpng&bbox=-2.002637639E7,-2.00489661E7,2.002637639E7,2.00489661E7&width=767&height=768&query_layers=Hazard:point_4326&info_format=text%2Fplain&feature_count=50&x=0&y=0&exceptions=application%2Fvnd.ogc.se_xml

this 正在处理 openlayer url

你能帮我找出我哪里做错了吗?非常感谢。

最佳答案

问题正如您所说的边界框。您不能将上角和下角定义为相同。据说下角必须更低。

如果您只在1个点上寻找原始图层数据;您可以使用 Geoserver WMS 的 GetFeatureInfo。但是,您应该小心定义您的输入(Bounding box, width, height, x, y)。宽度和高度以及 x y 应尽可能小。例如。 1,1,0,0 顺序。至于边界框,您需要原始数据的频率,我的意思是单元格之间的差异(就经度、纬度而言)。如果你的单元格之间的差异是每个0.2,而你要查询的点在Point(2.4,3.6);那么你的边界框应该是这样的:

&bbox=2.3,3.5,2.5,3.7&width=1&height=1&x=0&y=0

如果您正在寻找原始数据的全部或部分矩形区域,那么您应该看看我发布的答案 here .

关于android - 手动生成 WMS GetFeatureInfo URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30965701/

相关文章:

javascript - 如何清理 XML 对象以避免 "Content not allowed in prolog"错误?

apache - 如何在 Windows 中使用单独的 JVM 配置多个 Tomcat 实例

google-maps - 如何指定WMS请求中的参数层?

three.js - Three.js 场景中的地理栅格

python - 如何使用 WMS 层在 django-leaflet-admin 中设置传单配置

java - Facebook 登录错误 "disabled Oauth client flow"但我已启用它

lifecycle - Android应用程序类方法onCreate被多次调用

java - 如何使用java代码制作service=wfs&version=1.1.0&request=DescribeFeatureType

android - 如何从 Android 设备发送 icmpv6 路由器广告消息

java - 启动 Activity 别名的 Intent