从MapX到MapXtreme2004[12]SearchNearest!

摘要:
检查堆栈跟踪信息以获取有关错误的详细信息以及代码中错误的来源。系统ArgumentException:searchInfo.SearchResultProcessormustbenull。源错误:添加si.SearchResultProcessor=null;所以您需要添加si.QueryDefinition。列=空;
  “/xy”应用程序中的服务器错误。

searchInfo.SearchResultProcessor must be null.

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentException: searchInfo.SearchResultProcessor must be null.

源错误:


源文件: d:\xy\xy.aspx.cs    行: 957 

         当想用searchnearest时,总是报这个错误。而先前用searchwhere是好好的,于是折腾si,不断试验各种构造函数,还自定义了个SearchResultProcessor类,都不行,直到在帮助中看到这个:
Catalog.SearchForFeature Method (String, SearchInfo)

Searches the given table and returns the first Feature from the results.

public Feature SearchForFeature(
   string tableAlias,
   SearchInfo searchInfo
);

Parameters

tableAlias
The alias of the table to search.
searchInfo
Search definition.

Return Value

Returns a Feature.

Remarks

The SearchInfo must not have a SearchResultProcessor specified, because no post-processing of search results can take place.

      
 于是,增加一个
            si.SearchResultProcessor=null;
        便ok了,郁闷…………

结论:
        1、searchnearest的si构造有两个类都可以,MapInfo.Data.SearchInfoFactory.SearchNearest和MapInfo.Mapping.SearchInfoFactory.SearchNearest,似乎可以通用
        2、The default columns are MI_Geometry, MI_Syle, MI_Key. An Analysis column of MI_Geometry is added.如果不指定的话,查出来的结果就只有3列,所以需要加上si.QueryDefinition.Columns = null;
        3、A  ClosestSearchResultProcessor is created with the Search point.会自动生成一个SearchResultProcess对象。
        4、This SearchInfo can't be passed to SearchForFeature or SearchReader because they do not work with SearchResultProcessors.最关键的,原来根本不能用在SearchForFeature中。因为这种搜索方式不能有SearchResultProcessors。如果强制删掉SearchResultProcessors,虽然不报错,但也查找不到东西。
        5、只好用search
    IResultSetFeatureCollection ftrs=MapInfo.Engine.Session.Current.Catalog.Search("公交车站",si);
    foreach(Feature f in ftrs){  }

       6、无需(si.SearchResultProcessor as ClosestSearchResultProcessor).Options = ClosestSearchOptions.StopAtFirstMatch;因为这种查询会自动只查一条。

免责声明:文章转载自《从MapX到MapXtreme2004[12]SearchNearest!》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用clock函数实现跨平台的精确计时WPF 基础学习笔记下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Qt 事件总结(鼠标、键盘) QMouseEvent、QKeyEvent

Qt 程序需要在main()函数创建一个QCoreApplication对象,然后调用它的exec()函数。这个函数就是开始 Qt 的事件循环。在执行 exec()函数之后,程序将进入事件循环来监听应用程序的事件。当事件发生时,Qt 将创建一个事件对象。Qt 中所有事件类都继承于 QEvent。在事件对象创建完毕后,Qt 将这个事件对象传递给QObject...

MongoDB update数据语法

在前面的文章“mongodb 查询的语法”里,我介绍了Mongodb的常用查询语法,Mongodb的update操作也有点复杂,我结合自己的使用经验,在这里介绍一下,给用mongodb的朋友看看,也方便以后自己用到的时候查阅:注:在这篇文章及上篇文章内讲的语法介绍都是在mongodb shell环境内的,和真正运用语言编程(如java,php等)使用时,在...

rocketmq 修改broker和namesrv默认设置的堆内存大小

broker的堆内存的启动脚本在     C:UsersAdministratorDesktop ocketmq-all-4.7.1-source-releasedistributionin文件夹下面  可以看到 其堆内存为8g 可以根据实际情况对其进行调整 JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn...

XScreenSaver强大的锁屏工具

source install:  https://www.jwz.org/xscreensaver/   XScreenSaver     Related articles DPMS Xresources List of applications#Screen lockers XScreenSaver is a screen saver and...

ant的javac任务的相关属性配置

任务和javac命令是相似,它编译两种类型的Java文件1)没有被编译的java文件2)曾经编译过,但是class文件版本和当前对应的java文件版本不匹配的java文件。 1)javac命令支持的参数: Attributes Description srcdir :必须的,除非嵌套有标签。包含源文件的文件夹 bootclasspath:编译过程...

完美方案——iOS的WebView自适应内容高度

/////////////////////////////初始化,self.view是父控件///////////////////////////////// _webView = [[UIWebView alloc] initWithFrame: CGRectMake(0, 0, self.view.frame.size.width, 0...