首页 / 浏览问题 / 云GIS / 问题详情
GetFeatureInfo WMS130
6EXP 2023年01月06日
可以解释一下 I 和 J 两个参数吗?我不太明白 “以像素表示的要素X坐标(最左侧为0,向右递增)”和“以像素表示的要素Y坐标(最上侧为0,向下递增)”具体是啥意思,可以分享一下计算思路吗?

1个回答

您好,这个值是您要查询的点的屏幕像素坐标,通常是鼠标点击后转出来的。

在wms1.3.0标准下,对于这个i和j的参数,不是去独立考虑它的,我用下面这个请求大致说明,您理解后应该会有计算思路。

http://localhost:8090/iserver/services/map-world/wms130/世界地图_Day?VERSION=1.3.0&REQUEST=GetFeatureInfo&LAYERS=0.8,0.11,0.3&STYLES=&CRS=CRS:84&BBOX=-180,-90,180,90&WIDTH=800&HEIGHT=400&FORMAT=image/png&QUERY_LAYERS=0.11&INFO_FORMAT=text/xml&I=650&J=150

查询坐标的关键参数:BBOX、WIDTH、HEIGHT、I、J

定位关系:

选取这份服务中BBOX区域的数据(矩形)

将这份数据存放在一张宽度是WIDTH个像素,高度是HEIGHT个像素的图片中(WIDTH*HEIGHT)

以这张图片的左上角为0,0像素,查询I,J像素点上的几何要素(即左上原点)

这样建立的一套完整地理坐标到像素的映射关系。

比如

BBOX为:40,50 , 50,60

即为东经40°到50°,北纬50°到60°的,10°*10°的矩形区域。

WIDTH为:100;HEIGH为:100

即为一张100像素*100像素的正方形图片

对于经纬度地理坐标系,北纬东经区域,经纬度原点在左下角,即左下角是0,0

对于WMS1.3.0 GetFeatureInfo请求时,图片左上角为原点

因此可以得到,

图片左上角像素坐标0,0;右上角像素坐标100,0;左下角像素坐标100,0;右下角像素坐标100,100

地理区域左上角40,60,;右上角50,60;左下角40,50;右下角50,50

以这种对照映射关系,i,j为0,0即查询东经40°北纬60°点上的要素;i,j为100,100即查询东经50°北纬50°点上的要素,

其它点位都是等比映射.....

i,j的映射定位的查询逻辑您应该已经了解,BBOX和WIDTH、HEIGHT都不是硬性固定死的值,具体如何设置要看您的使用方式、参数获取与计算便利程度、代码逻辑习惯来设计。

不过需要注意BBOX的单位是经纬度,WIDTH、HEIGHT的单位是像素,因此这两者之间的比例不建议过小,否则会影响查询精度。

比如当比例是1:1时,10°*10°的地理区域对应10像素*10像素的图片,一个像素点则会代表1°*1°(约111km*111km)的地理区域,因此设计过程中注意比例不要过小否则精度很低。

这个逻辑稍微还是有一点点复杂的,理解过程中有困难的话您可以画画图辅助理解。

希望可以帮助到您。laugh

于丁
1
9,603EXP 2023年01月06日

非常感谢您的详细解答laugh

...