我正在进行的项目要求我在一个点附近找到交叉点(搜索街道中心线图层)。对于90%以上的搜索,我似乎得到了合适的结果,但是在某些情况下,就ArcObjects而言,我得到了技术上交叉的交叉点,但并不是我所需要的。
例如,如果我搜索最接近S. Main St某一点的交点,我应该得到S. Main St& S的交点。第一圣但是,这个交叉点恰好是N. Main St,S。Main St,W。First St和E. First St.的交汇点。因此,当我在点搜索时执行反向地理编码交叉点,我得到了N. Main St&的单一结果。 S. Main St。
有没有办法让所有交叉点都在同一点而不仅仅是一个交叉点?如果没有,有没有办法过滤可用的结果?
我目前的代码是N的最终值。主要& 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 :(得分:0)
假设您的定位器仅引用一个折线要素类(即不是复合定位器),我会尝试使用基于500米搜索范围的空间过滤器对折线要素类(IFeatureClass.Search)进行空间搜索来替换反向地理编码器。