我正在进行的项目要求我找到一个点附近的交叉点(搜索街道中心线图层)。对于我 90% 以上的搜索,我似乎得到了适当的结果,但是在某些情况下,就 ArcObjects 而言,我得到的交叉点在技术上是交叉点,但不是我需要的。
例如,如果我在 S. Main St 上搜索离某个点最近的交叉点,我应该得到 S. Main St 和 First St 的交叉点。但是,该交叉点恰好是 N. Main St 的交叉点, S. Main St、W. First St 和 E. First St. 因此,当我对搜索交叉点的点进行反向地理编码时,我得到 N. Main St 和 S. Main St. 的单一结果。
有没有办法在同一点获得所有交叉点,而不仅仅是一个交叉点?如果没有,有没有办法过滤可用的结果?
我下面的当前代码最终得到了intersectionName 变量中N. Main & S. Main 的值。
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();
}...