Is it possible to build custom desktop mapping applications in ArcGIS Engine with Python language?
-
If you want to use specifically python then consider developing a python add-in. It allows you to create tools that interact with the application interface. It is not engine nor does it give you access to the full range of arcobjects. If you want to create a couple of buttons to interact with the map then this may be the way to go? Research the help file about "python add-in". – Hornbydd Nov 21 '17 at 08:46
3 Answers
Is it possible? Possibly, you can connect to ArcObjects from python using comtypes as demonstrated in this example: Accessing ArcObjects from Python?. I do not recommend this though. It is easier to either use python to do things with arcpy, or c# to do things with ArcObjects. GUI coding and using the ArcObjects SDK will be loads easier than using python and connecting to comtypes.
- 456
- 2
- 9
-
3And faster in C# or VB.net. Think of python as a bicycle: easy to use but not particularly fast, it's an interpretative scripting language, not built for speed but ease of use, now think of C#/VB.net as a minivan, still reasonably easy to use with training and a bit faster than python most of the time, now visualize C++ as an aircraft, lots of training and practice is required but the results are as fast as you can sensibly get (Assembly is faster, think of that as a rocket - needs a team to construct and launch). If you want to use ArcGIS Engine I would suggest learning a compiled language. – Michael Stimson Nov 20 '17 at 21:56
I have done it. With Arcobjects Java and Arcpy. The UI was made with arcobjects Java and all the basic functionality were given using arcobjects. This includes adding layers , featurce class, creating database connections, adding symbology, layers .creating and mxd, loading and mxd, All the basic features like pan, zooming, ects. were also there. Now for specific tasks like runing spatial tools like(Buffer,Delete, clip, intersect etc) i have used arcpy functionality. Plus it was created in Linux Platform.
- 141
- 6
-
Can you share at least some of that code? I'm sure that users of Java and arcpy would be very interested in your code. How well does it perform? Is it at least reasonable to use speed wise? I can see why you've chosen Java/arcpy as C#/VB.net isn't valid for Linux (at least that's what I've heard, I may be wrong) so your only other option is C/C++ which are not easy languages to learn. – Michael Stimson Nov 22 '17 at 22:56
I Cannot share the code. But i will share the lead .. Our base was BasicViewer.java(It is an example given by esri). Now to refine the UI I have used Ribbon band for the UI Design. After that I added "Toolbar" to the Main UI. For adding any additional values i have used Ribbon band buttons. Also i had added Help and search menu..Where u can search specific tools like merging raster etc...they open in a new UI altogether.These tools are basically python scripts.
- 141
- 6