Viac

Existuje spôsob, ako vyvolať dialógové okno „Vybrať podľa umiestnenia“ a získať prístup k parametrom

Existuje spôsob, ako vyvolať dialógové okno „Vybrať podľa umiestnenia“ a získať prístup k parametrom


V aplikácii, ktorú vyvíjam pomocou VB.Net s ArcObjects 9.3, sa v mojom kóde pokúšam zobraziť dialógové okno „Vybrať podľa umiestnenia“. Viem, že to môžem nazvať priamo pomocou UID cez rozhranie ICommandItem, ale potrebujem tiež prístup k parametrom nastaveným v dialógovom okne (napr. Výberová vrstva, výberová metóda atď. - niečo, čo nemám). je možné s metódou UID). Existuje spôsob, ako to urobiť nejako, čo mi chýba, podobne ako v dialógovom okne „Vybrať podľa atribútu“ pomocou rozhrania IQueryAttributes?


Toto rozhranie som nikdy nepoužil, takže je to naozaj dobrý nález! Stále však nie som presvedčený, že dialóg je odhalený ...

Alternatívou je otvoriť a zobraziť nástroj na geografické spracovanie selectbylocation? Nasledujúci kód VBA otvára nástroj Calculate Field, ale poskytuje základnú syntax pre vyplnenie parametrov a otvorenie rozhrania.

Public Sub OpenCalculateTool () 'Zapojte sa do panela nástrojov a získajte nástroj Dim pUID ako nové UID pUID = "esriGeoprocessingUI.ArcToolboxExtension" Dim pArcToolboxExtension ako IArcToolboxExtension Set pArcToolboxExtension = Application.FindExtensionByCLSIDArboxBoolCLIDID Ako IGPTool Set pGPTool = pArcToolbox.GetToolbyNameString ("CalculateField") 'Vytváranie správ, vyžadovaných metódou Invoke Dim msgs As IGPMessages Set msgs = New GPMessages' Získať existujúcu štruktúru parametrov Dim pArray As IArray Set pArray = pGPTool.ParameterInfo 'Deklarovať Parameter pGPParameter Ako IGPParameter Dim pGPDataType Ako IGPDataType Dim pGPParameterEdit Ako IGPParameterEdit "nastaviť parametre nástroje Set pGPParameter = pArray.Element (0) Set pGPParameterEdit = pGPParameter Set pGPDataType = pGPParameter.DataType Set pGPParameterEdit.Value = pGPDataType.CreateValue (" A ") „Názov hlavného hráča Nastaviť pGPParameter = pArray.Element ( 1) Nastavte pGPParameterEdit = pGPParameter Set pGPDataType = pGPParameter.DataType Set pGPParameterEdit.Value = pGPDataType.CreateValue ( "xx") "pole nastavené pGPParameter = pArray.Element (3) Nastavte pGPParameterEdit = pGPParameter Set pGPDataType = pGPParameter.DataType sada pGPParameterEdit.Value = pGPDataType.CreateValue ("VB") 'Otvorte nástroj Dim pGPToolCommandHelper ako IGPToolCommandHelper2 Nastaviť pGPToolCommandHelper = Nový GPToolCommandHelper pGPToolCommandHelper.SetTool pGPTool pGPTool pGPTool, 0