Hi,
I am trying to set up an automated site plan generation workflow and I am running into issues with the parent layer controlling the zoom/extent of the printed map. my question: Is it possible to force the report template to dynamically set the extent based off the child (repeat) layer? Right now, if someone opens up the survey in the office then goes out to site, the site plan captures the office, missing all the relevant data. I have even removed the parent layer from the webmap but it still displays the office location and not the geopoints.
Cheers
Solved! Go to Solution.
I believe that blue marker is your "point" for that geopoint question. Can't remove that.
Okay, so you have a geopoint within a repeat in your survey, and you want all of those points to be printed on a single map within a Feature Report. That should be supported. More details here.
This is probably what you are looking for:
This can also be used to display all points within a repeat:
${repeat1.repeatLocation | where:"inspectionId=123 !important" | size:400:300}
Got the blue icon to disappear by setting the drawingInfo:"currentLayer"
Not quite sure I understand the ask here.
Do you mean these parameters in a Feature Report (example below)? If so those settings are static. But, you can nest that geopoint within an IF() statement to dynamically show different geopoints with different settings.
Do you mean that there is a geopoint within your survey, and that survey is being opened off-site and subsequently collecting a location that you don't want, and then the tech goes to site but the location doesn't update? In that case, you can use "Press-to-locate" (example below) and the geopoint will only be taken when a button is pressed.
This option is really good for a lot of workflows, but you have the obvious issue of needing a location and simultaneously not wanting to make the question required until the tech is on site. There are many wants to achieve that, but too difficult to go into all of them. A simple solution is just a note and a training: "Push this button when you get to site".
Another option, but you can use a geocode question to extract lat-lon (example below). This is only really good when you are in a more built-environment. If you do remote work, addresses are likely off the table.
Thanks for you reply @abureaux ,
I currently have this on my report template:
${$shape | map:"e9237b2c81b84a35b7d93a9cca67250b" | mapScale:1000 | size:790:570}
my whole template shown below:
The issue could be something to do with the ${shape} bit?
the issue is that the if someone opens up the survey off site, then travels to site and fills the questions out and collects geopoints at each test location then submits the survey, when the site plan is generated the map is focused on the location where the survey was first opened and not where the geopoints were collected. If they open the survey on site, this is not a big issue however it still could be an issue if the user collects geopoints over a large area, in that case some of the points will be off the edge of the map as it zooms to the parent layer point (where the survey was opened) and doesn't zoom to the repeat geopoints.
Ideally the map scale would be dynamic, based off the repeat geopoints in order to capture them all however I set it manually so that it zooms out a bit from the parent layer point to capture more of the map.
@abureaux below is an example of what i mean. In this situation I opened the survey on my computer which does not have location enabled, it therefore defaults the parent layer location to somewhere off the coast of africa, im guessing this is 0,0.
The geopoints in the repeats I selected manually on the map in the survey. I have a script which i run once the survey is submitted which removes all previous layers from the map, then readds only the repeat (child) layer back onto the map which contains the repeat geopoint questions. The first image is the generated site plan which as you can see, shows the 0,0 location of where the survey was opened, and the second image shows the geopoints which I am trying to get the map to zoom to instead.
My geopoint question is called ${geopoint_bs} btw
Going back to my "push-to-locate" suggestion, if you make your site location "push-to-locate", and then tie the required column to a field operation like taking samples, that should work out better.
Example:
Default State:
Taking samples:
If you want to take it one step further, make use of the body::esri:visible column:
Either option should help guide users into only taking the site location while on site.
Thanks yeah i had press to locate, it seemed like the overall survey was collecting an automate location from the point the survey was opened, and then the repeat geopoints were collected only when clicked. you other response solved the issue. thanks
Ok I actually think i've sorted it, i needed to include the map reference in a repat:
It still is zoomed out quite a lot more than is needed though:
next step is to remove the blue marker. Any ideas on how to do that?
I believe that blue marker is your "point" for that geopoint question. Can't remove that.
Okay, so you have a geopoint within a repeat in your survey, and you want all of those points to be printed on a single map within a Feature Report. That should be supported. More details here.
This is probably what you are looking for:
This can also be used to display all points within a repeat:
${repeat1.repeatLocation | where:"inspectionId=123 !important" | size:400:300}
It still is zoomed out quite a lot more than is needed though
BTW. In case you missed it in my original post, you can get scale by adding something similar to the following: