从MapX到MapXtreme2004[12]-SearchNearest!
“/xy”应用程序中的服务器错误。
searchInfo.SearchResultProcessor must be null.
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.ArgumentException: searchInfo.SearchResultProcessor must be null.
源错误:
行 956: 行 957: Feature ftr2=MapInfo.Engine.Session.Current.Catalog.SearchForFeature("公交车站",si); 行 958: 行 959: |
---|
源文件: d:xyxy.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;
因为这种查询会自动只查一条。
- Java并发学习之线程状态及Thread常用方法详解
- Java并发学习之四种线程创建方式的实现与对比
- Google protocol buffer简介
- Java反射的使用姿势一览
- [一对一讲什么] 之 测完了接口、搞好了目录,然后做啥?
- Java容器篇小结之List自问自答
- android断点下载
- [一对一讲什么] 之 什么叫切图?
- SpringMVC统一异常处理
- React Native开发之调试
- JavaWeb三大组件之Filter学习详解
- JavaWeb三大组件之Servlet学习
- Android App瘦身实战
- [先行者周末课程] 日历组件的开发思路讲解&&日历组件在实际工作中的使用方式
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android开发之缓冲dialog对话框创建、使用与封装操作
- Windows 10 下安装 Apache 2.4.41的教程
- Android基础教程数据存储之文件存储
- 关于Android短信验证码的获取的示例
- Linux下制作给ARM开发板使用的文件系统
- Android开发之ProgressBar字体随着进度条的加载而滚动
- Android 动态注册监听网络变化实例详解
- linux 服务器自动备份脚本的方法(mysql、附件备份)
- 详解Android中Glide与CircleImageView加载圆形图片的问题
- android全局监控click事件的四种方式(小结)
- Linux下如何永久修改主机名的方法步骤
- android与asp.net服务端共享session的方法详解
- Android实现多个连续带数字圆圈效果
- Android录制mp3格式文件
- Linux内核设备驱动之虚拟文件系统笔记整理