MapX에서MapXtreme2004[12]-SearchNearest까지!

2978 단어 search

/xy 응용 프로그램의 서버 오류입니다.

searchInfo.SearchResultProcessor must be null.


설명: 현재 웹 요청을 수행하는 동안 처리되지 않은 예외가 발생했습니다.이 오류와 코드에서 발생한 오류의 출처에 대한 상세한 정보를 확인하려면 창고 추적 정보를 확인하십시오.예외 세부 정보: 시스템.ArgumentException: searchInfo.SearchResultProcessor must be null.소스 오류:
  956:
  957:				Feature ftr2=MapInfo.Engine.Session.Current.Catalog.SearchForFeature("    ",si);
  958:				
  959:			
소스 파일: d:\xy\xy.aspx.cs 줄: 957에서 검색nearest를 사용하려고 할 때 항상 이 오류를 보고합니다.이전에 검색where를 사용한 것은 좋았기 때문에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;결론: 1. 검색 nearest의si 구조는 두 가지 종류가 모두 가능하다.Map Info.Data.SearchInfoFactory.SearchNearest 및 MapInfo.Mapping.SearchInfoFactory.SearchNearest, 2,The default columns are MIGeometry, 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. 검색 Iresult Set Feature Collection ftrs=Map Info.Engine.Session.Current.Catalog.Search("버스 정류장",si);    foreach(Feature f in ftrs){  }
6. 필요없음(si.SearchResultProcessor as ClosestSearchResultProcessor).Options = ClosestSearchOptions.StopAtFirstMatch;이런 검색은 자동으로 하나만 검색하기 때문이다.

좋은 웹페이지 즐겨찾기