Heatmap for a webmap varying scale and extent

1014
9
05-23-2024 09:52 AM
Sara_Fatimah
Occasional Contributor

Hello!

I am making a webmap that shows my point data as a heat map. On a broad scale, I want to display my heat map the way it is currently showing. See photo below. 

Sara_Fatimah_0-1716482189563.png

Unfortunately, I run into trouble when I zoom into a specific community, for example Anchorage shown below. I do not like the way the heat map is rendering at this scale, as it takes away from my main message that I want to convey to my audience. 

Sara_Fatimah_1-1716482374902.png

Therefore, I locked my radius at the fine scale and I do like the way it is now showing Anchorage. See photo below:

Sara_Fatimah_2-1716482462443.png

Unfortunately, the trouble that I now run into is the broad scale, it no longer looks like the way it did before I locked my radius. See photo below:

Sara_Fatimah_3-1716482560119.png

A few things I have tried:

- Setting my map to Dynamic instead of constant. This did not work as the heatmap shows very little activity on the broad scale

- Converting to static raster/ running kernel density on my point data. This did not work because I have such spatially varying communities in the state of Alaska, I end up with a raster that is mostly showing activity in Anchorage and does not provide details for other communities in the heat map.

- I have also messed with establishing min and max scaling. However, that too does not provide a heatmap that I want.

Something I have yet to try:

I came across this post that uses the ArcGIS Javascript API to establish heatmaps that work at all scales, as they claim. I have a basic understanding of JavaScript and would pursue this route if it gives me the result that I desire. However, before I dive deep into this rabbit hole, I would love some feedback from the GIS community to see whether they have any other suggestions or if they think JavaScript is the way to go.

 

Thank you very much for your time! 

 

 

0 Kudos
9 Replies
RPGIS
by
Frequent Contributor

Hi @Sara_Fatimah.,

Have you tried publishing two separate layers so that one only shows dynamically and the other as constant? If you try that method, then you can set the constant layers visibility to stop at a certain scale and the other dynamic layer to continue dynamically at a lower scale.

0 Kudos
Sara_Fatimah
Occasional Contributor

I did think about that. I need to create 4 heat maps on the same webmap for the 4 years of data that I have...so if I were to go that route, I would need to create 8 layers of data, but restricting it so that the user can only see the 4 actual data layers. If you can share some insight on how I can limit the scaling and then set up the interface so that the user can only see 4 layers of data instead of 8, that would be very helpful. 

0 Kudos
RPGIS
by
Frequent Contributor

Which application are you going to use (Experience Builder, Dashboards, etc.)? Depending on how you plan on showing the maps/data; it might make sense to keep it to one map and filtering specific data.

The issue with heatmaps is overlapping hotspots which would confuse your target audience. If you want to have separate years showing, then you would need to create 4 separate maps. The benefit of that is (if using either Dashboards or Experience Builder) is you can lock the zoom or map navigation to equate to all different maps. Essentially when the user pans/zooms in one map then the other maps will pan/zoom also.

To set up your scaling, you would simply have one layer with a set reference scale and the other layer to display up to the set reference scale.

0 Kudos
Sara_Fatimah
Occasional Contributor

I need for it to be a single dashboard and I want to set it up in a manner where the user can only click one layer at a time. This is how I have it currently structured in my draft dashboard. 

Sara_Fatimah_0-1716491203325.png

 

 

0 Kudos
RPGIS
by
Frequent Contributor

One thing you can do in Dashboards is to help with your situation is:

  1. Add a header panel to the dashboard
  2.        RPGIS_0-1716492006312.png
  3. In the header panel settings, add a category selector.
  4. Specify grouped values in the category selector and the specific field to group by.
  5. Configure the functionality of the category selector.
  6. In the actions tab, specify which actions you want to apply to the map.

This should ultimately give you the results you are looking for. This would also eliminate the need to toggle the layer display.

0 Kudos
Sara_Fatimah
Occasional Contributor

Okay, so I went this route to see if it would work and it did until I reached this road block seen below.

Sara_Fatimah_1-1716500711283.png

I established a hierarchy for my layer where it draws the heat map at the zoom level seen and then grouped them in my webmap...I was hoping that in the category selector, I can select the group which will contain the 3 layers set according to the reference scale established...however, the dashboard does not let me select the group of features. Currently, I can only select one feature layer....any suggestions on how to move past this? 

 

0 Kudos
RPGIS
by
Frequent Contributor

You would only need to select one layer specifically, ideally the topmost layer, and in the actions tab you can set an action to filter the other layers based on a matching attribute. 

0 Kudos
Sara_Fatimah
Occasional Contributor

I don't know how this is going to establish a scale based filter for my data. I don't really have any attributes that I want the user to interact with. Ideally just want the heat map to pop up at the scale and extent they have zoomed in. I really appreciate your time and help with this. I will see if I can find some other way to achieve what I desire. 

0 Kudos
RPGIS
by
Frequent Contributor

There is this option as well. I completely forgot about it last time, but it might be what you are actually looking for.

RPGIS_0-1716899976137.png

 

0 Kudos