Mehr

Gibt es eine Möglichkeit, das Dialogfeld "Nach Standort auswählen" aufzurufen und Zugriff auf die Parameter zu erhalten?

Gibt es eine Möglichkeit, das Dialogfeld


In einer Anwendung, die ich mit VB.Net mit ArcObjects 9.3 entwickle, versuche ich, das Dialogfeld "Nach Standort auswählen" in meinem Code anzuzeigen. Ich weiß, dass ich es direkt mit der UID über die ICommandItem-Schnittstelle aufrufen kann, aber ich brauche auch Zugriff auf die Parameter, die im Dialogfeld festgelegt werden (z. B. die Auswahlebene, die Auswahlmethode usw.) denken ist mit der UID-Methode möglich) . Gibt es eine Möglichkeit, dies irgendwie zu tun, die mir fehlt, ähnlich wie Sie das Dialogfeld "Nach Attribut auswählen" über die IQueryAttributes-Schnittstelle aufrufen können?


Ich habe diese Schnittstelle noch nie benutzt, also in der Tat eine gute Entdeckung! Aber ich bin immer noch nicht davon überzeugt, dass der Dialog aufgedeckt wird…

Eine Alternative besteht darin, das Geoverarbeitungswerkzeug selectbylocation zu öffnen und anzuzeigen? Der folgende VBA-Code öffnet das Calculate Field-Tool, gibt jedoch die grundlegende Syntax zum Auffüllen von Parametern und zum Öffnen der Schnittstelle an.

Public Sub OpenCalculateTool() ' In Toolbox einhaken und das Tool Dim pUID As New UID abrufen pUID = "esriGeoprocessingUI.ArcToolboxExtension" Dim pArcToolboxExtension As IArcToolboxExtension Set pArcToolboxExtension = Application.FindExtensionGPByCLSID(pUID) Dim .ArcToolboxSet As IGPTool Set pGPTool = pArcToolbox.GetToolbyNameString("CalculateField") ' Nachrichten erstellen, erforderlich von Invoke-Methode Dim msgs As IGPMessages Set msgs = New GPMessages ' Vorhandene Parameterstruktur abrufen Dim pArray As IArray Set pArray = pGPTool.ParameterInfo Dim Declare pGPParameter As IGPParameter Dim pGPDataType As IGPDataType Dim pGPParameterEdit As IGPParameterEdit ' Parameter des Tools einstellen Set pGPParameter = pArray.Element(0) Set pGPParameterEdit = pGPParameter Set pGPDataType = pGPParameter.DataType Set pGPParameterEdit.Value = pGPDataType.CreateValue("a") ' Featurelayer-Name Set pGPParameter = pArray.Element( 1) Set pGPParameterEdit = pGPParameter Set pGPDataType = pGPParameter.DataType Set pGPParameterEdit.Value = pGPDataType.CreateValue("xx") ' Field Set pGPParameter = pArray.Element(3) Set pGPParameterEdit = pGPParameter Set pGPDataType = pGPParameter.DataType Set pGPParameterEdit.Value = pGPDataType.CreateValue("VB") ' Öffne das Tool Dim pGPToolCommandHelper As IGPToolCommandHelper2 Set pGPToolCommandHelper = New GPToolCommandHelper pGPToolCommandHelper.SetTool pGPTool pGPToolCommandHelper.InvokeModal True, msgArrays