首页 / 浏览问题 / 组件GIS / 问题详情
包含查询 qury方法调用
61095093...  (66EXP)  初出茅庐
9月22日, 2017
代码 m_queriedLayerName.Query(SuperMap.Data.SpatialQueryMode.Contain);

错误“string”不包含“Query”的定义,并且找不到可接受类型为“string”的第一个参数的扩展方法“Query”(是否缺少 using 指令或程序集引用?)

这是什么意思?

1个回答

您好,m_queriedLayerName是什么类型的?看起来是一个图层的名称,查询应该用矢量数据集来进行查询,即Datasetvector.Query,而图层对应的数据集可以通过layer.Dataset获取到。
胡林  (5,985EXP)  登峰造极
9月25日, 2017

m_queriedLayerName就是图层的名字,是我画的那个围栏的图层。还有我的要求是这样的:

<!--StartFragment -->图是从数据库里取出来的,点赋在了这个图的跟踪层上,我现在需要在这个图上划定个范围,然后在这个范围内进行查询是否有点?

空间查寻不是在图层上查询吗?但我把点赋予到了跟踪层上了

不是的哈,只有矢量数据集才支持查询,即Datasetvector.Query。

按你的需求,建议创建一个内存数据源,再在内存数据源里面创建一个点数据集,向该点数据集中写入点数据,进行空间查询。

内存数据源好处如下:

1.数据处理速度非常快

2.当关闭工作空间时,内存数据源不做保存,即不想保留数据时使用内存数据源效果极佳。
我在数据库里建了个表空间,表空间里我写了几个点坐标,我的这些点就是从表空间里调出来加载到跟踪层上的,这样算不算内存数据源。

如果算的话,我现在按照你前几天教我的,已经新建了个图层画了个围栏。点和图层也是从数据库里取得,我接下来应该再怎么做实现这个范围内查是否有点的功能,你能详细说说吗?我这刚接触超图,一脸懵圈
内存数据源是MemoryDatasource,刚刚我也说了建议创建一个内存数据源,再在内存数据源里面创建一个点数据集,向该点数据集中写入点数据,进行空间查询。

内存数据源的使用参考:组件安装目录\SampleCode\Data\MemoryDatasource\MemoryDatasource.csproj
...