首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mapserver空间滤波

Mapserver空间滤波
EN

Stack Overflow用户
提问于 2009-08-25 10:50:55
回答 2查看 2.3K关注 0票数 2

有人知道是否有一种方法可以在地图文件中设置一个空间过滤器,用于正常的请求,而不仅仅是WMS或WFS?我需要这个空间过滤器是任何类型的多边形,而不仅仅是矩形,因为我们系统上的这些过滤器是动态的:允许用户绘制多边形或从多边形层中选择它们。在这个系统中,用户使用没有地图功能的遗留桌面应用程序,只请求Mapserver提供图像,所以我必须在Mapserver端进行这些过滤

简单地说,这里有一个例子:用户有数据层,比如街道名称(标记点)和区域(多边形)。其中一个可能只想看到那些位于第二区的街道,所以我希望Mapserver生成隐藏其余街道的图像。当然,在街道层中没有关于街道所在区域的信息。

有些事情可以帮助你问这个问题:

  • 请求是cgi,而不是WMS,但是我可以更改,如果它有助于
  • ,我不使用Mapscript,也不会有像OpenLayers或uDig
  • 层这样的客户端,并且不会有属性关系(
  • ),我在层部分中知道过滤器参数,但是它只适用于属性过滤

H 19,我读过关于“筛选编码”(包括在SLD中),但无法使它工作,而且似乎只适用于WFSH 210H 111,我已经看到了CQL,但是它在Mapserver中没有直接支持,只有通过SLDH 212>

如何在Mapserver中进行空间滤波以生成图像?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-09-08 18:54:10

据我所知,通常有两种方法来执行空间/非空间查询。首先是使用过滤器编码,例如在wms调用url中使用参数。例如http://.../mapserv?map=..¶m=value

另一种方法是在请求体中使用过滤器。假设您能够向服务器发出post请求,则可以在一个过滤器中对复杂的空间/非空间查询使用筛选器。有关详细信息,请参阅mapserver筛选器页面。有多个空间过滤器操作,如包含,相交等可用。

映射文件中的过滤器有点不同,它是数据源的预定义过滤器。当您在客户请求传入之前就有了过滤数据的逻辑时,这是可行的。(请参阅通过搜索OGC筛选器获得的更多信息,CQL目前用于GeoServer )

SLD在渲染时也会对数据进行过滤。它也适用于空间和非空间滤波器。但它只反映getmap操作。

票数 1
EN

Stack Overflow用户

发布于 2010-01-07 22:50:49

您可以使用WMS请求在边界框中返回功能。

请参阅http://mapserver.org/ogc/wms_server.html

BBOX=minx,miny,maxx,maxy: SRS单位中的包围框角(左下角,右上角)

一项请求将类似于:

http://my.host.com/cgi-bin/mapserv?map=mywms.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&LAYERS=prov_bound&STYLES=&SRS=EPSG:4326&BBOX=-173.537,35.8775,-11.9603,83.8009&WIDTH=400&HEIGHT=300&FORMAT=image/png

或者,您可以在空间数据库中创建查询(如果使用的话),并在其中传递功能Ids和筛选器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1327480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档