Hi there,
I want to create a system that will allow me to create PDF reports at scale if a user enters a specific address. I'm looking to achieve a result very similar to this example:
https://www.water.vic.gov.au/groundwater/groundwater-resource-reports
Where a user can just type in an address, and a PDF report will be generated for that location.
What I'm looking for is for someone to help point me in the right direction regarding how to achieve this. I have experience working with ArcMap, ArcGIS Pro and some experience with ArcGIS Web App Builder, Python, and Javascript, but not much experience with server technologies like ArcGIS Server or AWS.
I saw from the link in a sample report via the link above that Geocortex was used. Ideally, I'd like to achieve a similar result using only tools from ESRI (I have access to all of their tools including ArcGIS Server) and perhaps AWS.
Thanks for any help and apologies if this question is too vague. Please feel free to ask any clarifying questions.
Hi Jeremy,
In the desktop environment (written as code to run as a script or script tool) one way this could be implemented is to set up you mxd at the required scale, including all the data and labelling you would expect/like to see if you manually zoomed or panned around the map.
In the code I would use a query to select your address feature and grab its SHAPE@ geometry token. Using this I would then use the pantoextent method of your current dataframe with arcpy.Mapping. Hopefully this would then centre your dataframe on the address whilst keeping the required scale. Then an ExporttoPDF to create your report.
In a server environment, this could be published as a geoprocessing task, allowing users to open up a Wep Mapping Application you have designed, then type the address into a geoprocessing widget which spits out the pdf.
Another implementation might be to let the user zoom to the address using a geocoding service (address locator etc), then set up their own bespoke labelling and use a custom print service to export what's on the screen.