Проект, над которым я работаю, требует, чтобы я нашел перекрестки рядом с точкой (поиск слоя центральной линии улицы). В 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. Главная ул.
Есть ли способ получить все пересечения в той же точке, а не только одно пересечение? Если нет, есть ли способ отфильтровать доступные результаты?
Мой текущий код ниже - это то, что заканчивается значением 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();
}...