私が取り組んでいるプロジェクトでは、ポイントの近くの交差点を見つける必要があります(通りの中心線レイヤーを検索します)。検索の90%以上で適切な結果が得られているようですが、場合によっては、ArcObjectsに関する限り、技術的には交差点である交差点が得られますが、必要なものほどではありません。
例として、S。Main Stの特定の地点に最も近い交差点を検索すると、S。MainStとFirstStの交差点を取得する必要があります。ただし、その交差点はたまたまN.MainStの交差点です。 S. Main St、W。First St、E。First St.この結果、交差点を検索するポイントで逆ジオコードを実行すると、N。MainStとS.MainStの単一の結果が得られます。
1つの交差点だけでなく、同じポイントですべての交差点を取得する方法はありますか?そうでない場合、利用可能な結果をフィルタリングする方法はありますか?
以下の私の現在のコードは、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();
}...