0

我正在进行的项目要求我找到一个点附近的交叉点(搜索街道中心线图层)。对于我 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();
}...
4

1 回答 1

0

假设您的定位器仅引用一个折线要素类(即不是复合定位器),我将尝试使用基于 500 米搜索包络的空间过滤器对折线要素类(IFeatureClass.Search)进行空间搜索替换反向地理编码器。

于 2010-06-30T15:22:48.140 回答