2010-06-29 24 views
0

我正在處理的項目需要我在一個點附近找到十字路口(搜索街道中心線圖層)。對於我的搜索量的90%以上,我似乎得到了合適的結果,但是在某些情況下,我得到的交叉點在技術上與ArcObjects相關,但不是我所需要的。作爲一個例子,如果我搜索最接近S. Main St上某個點的交點,我應該得到S. Main St的交點。然而,該交點碰巧是N Main St,S. Main St,W. First St和E. First St.由於這個原因,當我在搜索交點的點上做一個反向地理編碼時,我得到了一個單一的結果N. Main St & S 。Main St.如何通過ArcObjects中的ReverseGeoCoding查找多個相交結果?

有沒有什麼辦法讓所有的交點在同一點而不是隻有一個交點?如果沒有,有沒有辦法來過濾可用的結果?

我現在的代碼是以N的值結尾的。Main & S. Main在intersectionName變量中。

ILocatorManager2 locMgr = new LocatorManagerClass(); 
ILocatorWorkspace locWorkspace = locMgr.GetLocatorWorkspace(this.wksp); 

ILocator locator = locWorkspace.GetLocator("Streets_AddressLocator"); 

if (locator == null) 
     return string.Empty; 

IReverseGeocoding reverseGeo = locator as IReverseGeocoding; 
IReverseGeocodingProperties reverseProps = reverseGeo as IReverseGeocodingProperties; 
reverseProps.SearchDistance = 500; 
reverseProps.SearchDistanceUnits = esriUnits.esriMeters; 

IIntersectionGeocoding intersect = locator as IIntersectionGeocoding; 

try 
{ 
     IPropertySet propSet = reverseGeo.ReverseGeocode(pnt, true); 
     intersectionName = propSet.GetProperty("Street").ToString(); 
}... 

回答

0

假設你的定位引用只是一個折線要素類(即不是複合定位器)我會嘗試用基於一個500 spatialfilter對摺線要素類(IFeatureClass.Search)空間搜索替換reversegeocoder儀表搜索信封。