BlogMapsGISKontakt

Eigene Geoprocessing-Tools mit ArcObjects Teil 6: IGPFunction.Execute

Hier wird nun das eigentliche Tool ausgeführt. Doch bevor dies möglich ist, müssen aus den eingegebenen Parametern gewöhnliche ArcObjects werden. Als erstes muss dazu noch einmal geprüft werden, ob die vom Benutzer übergebenen Parameter auch gültig sind. Dies geschieht durch einen Aufruf der Validate-Methode. Anschliessend wird für jeden Parameter aus der Eigenschaft Value der eigentlich übergebene Wert geholt. Dieser muss jedoch zuerst entpackt werden:
IGPParameter parameter = (IGPParameter)paramvalues.get_Element(0);
IGPValue parameterValue = GPUtils.UnpackGPValue(parameter);
Danach kann der Parameter je nach Typ in das richtige ArcObject umgewandelt werden. Dazu sind die zahlreichen Funktionen der Hilfsklasse IGPUtilities nützlich. Ist der Parameter z.B. eine Feature Class, dann wird die Methode DecodeFeatureLayer benötigt:
IFeatureClass featureClass;
IQueryFilter queryFilter;
if (gpValue is IGPFeatureLayer) {
    GPUtils.DecodeFeatureLayer(gpValue, out featureClass, out queryFilter);
}

Und schon hat man eine herkömmliche Feature Class sowie den dazugehörigen QueryFilter, der z.B. aus einer Definition Query stammt.

Ein genaues Studium der Methoden des IGPUtilites-Objekts lohnt sich, denn für praktisch jeden Parametertyp gibt es eine passende Funktion.

Hat man die Parameter in herkömmliche ArcObjects umgewandelt, kann die Funktionalität des Tools wie gewohnt programmiert und ausgeführt werden. Hier stehen einem dann alle Möglichkeiten in der riesigen ArcObjects-Welt offen.


Übersicht:
Teil 1 (Einführung)
Teil 2 (Implementierung von IGPFunctionFactory)
Teil 3 (Implementierung von IGPFunction)
Teil 4 (Implementierung von IGPFunction:ParameterInfo)
Teil 5 (Implementierung von IGPFunction:Validate)
Teil 6 (Implementierung von IGPFunction:Execute)
Teil 7 (Fazit)
Ähnliche Beiträge:
Eigene Geoprocessing-Tools mit ArcObjects Teil 7: Fazit
Eigene Geoprocessing-Tools mit ArcObjects Teil 5: IGPFunction.Validate
Eigene Geoprocessing-Tools mit ArcObjects Teil 4: IGPFunction.ParameterInfo
Eigene Geoprocessing-Tools mit ArcObjects Teil 3: IGPFunction
Eigene Geoprocessing-Tools mit ArcObjects Teil 2: IGPFunctionFactory
Comments (0)  Permalink

comments

add a comment

The Trackback URL to this comment is:
http://schaer.freeflux.net/blog/plugin=trackback(688).xml

This blog is gravatar enabled.
Your email adress will never be published.
Comment spam will be deleted!

Name*
E-Mail
For Spammers Only
URL
Kommentar*
E-Mail Benachrichtigung bei neuen Kommentaren zu diesem Eintrag
Speichere meine Daten (braucht Cookies)