Geocode Address from TKinter Python Program

08-25-2020 03:26 AM
New Contributor III

Hi all,

I am by no means an advanced dev, my formation is Geography/GIS and everytime I've worked with python in the past was to essencially automatize some of my work. These past few days I've been presented to a new challenge that im struggling with. Im trying to work on a python program for data entry and save the records to a local database. The users also need to generate reports and frequently update data. I would use Survey123 and Integromat but they come up short for data update and generate report for any given time, especially for users not familiar with ArcGIS online interface. The web based version for data in-put is also not very user-friendly, considering what users are used to. 

Ive been working on a fairly simple program with Python. One of the fields for the input is regarding the address. I would like for the script to geocode the input address and append the resulted point in a Portal GDB feature. Ideally my tkinter program would display the map.

Is something like this possible? Any other solutions besides the TKinter program? Thank you in advance. 

0 Kudos
1 Reply
New Contributor III

I've worked on a few python desktop programs for GIS workflows and I've never been completely happy with the result for one reason or another. Tkinter I found to be too slow and not very visually appealing. PyQT makes for a much nicer interface, but it still doesn't address the major problem that comes with such a program - you have to assume that all your users have python environments to run the program and can meet the dependencies.

Certainly, you can compile the program to run as an .exe, but this is a bit of an art as the file size can be quite large. Don't be surprised if on the first try you end up with a 300 MB executable for something that just generates a spreadsheet.

All this aside, I think your goal is attainable but I wonder about the performance/stability of the finished product. Another option might be to do a simple Flask application that runs on a server than users can access. You'd worry less about the setup in that case and I would think they're be a way to map out the results in a mapping library.

Then again, maybe the solution is even simpler if all your users have access to ArcMap/Pro. Perhaps you can get away with a simple Python tool?

0 Kudos