Data Views - Map Instances

#dataviews

#experienceBuilder 

#urlparameters 

To prevent filters from one page in ArcGIS Experience Builder from affecting charts on other pages, even though the filters are correctly referencing the right chart widget, you'll need to manage the data source and filter configuration more granularly. Here are a few strategies to help:

1. Use Separate Data Views:

   - Create separate *data views* of the same map for each page. This way, even though the map data source is the same, each page interacts with its own data view, ensuring that filters applied to one page won't carry over to the others.

   - In the data source settings, configure different views for each page and link them to the respective filters.

2. Use Page-Specific Data Sources:

   - If you don't want to use data views, another option is to duplicate the data source (if applicable) so that each page has a unique data source. This will ensure that the filters applied to one data source won’t affect another.

3. Widget Action Triggers:

   - Make sure that the trigger actions (filter triggers) for your charts are only set to affect the specific widgets on the current page. Check the actions configuration of each filter widget to ensure that the filters are only linked to the correct charts on that page, rather than the global data source.

4. Session Storage for Filters:

   - ArcGIS Experience Builder supports using session storage or URL parameters to control which filters are applied at the page level. Consider configuring filters so that they are tied to the URL parameters for each page, allowing them to stay independent from one another.

Try implementing separate data views first, as it's typically the cleanest solution. Let me know if you need help setting up any of these!

If data views haven't fully solved the issue, let's explore a more robust approach to ensure your filters stay isolated on each page:

 1. Disable Global Filter Influence

   - In ArcGIS Experience Builder, there is a default behavior where widgets connected to the same data source can influence one another across pages. You need to ensure that each filter's actions are strictly limited to the widgets on the current page.

   - Double-check that "Filter by Extent" is disabled for both the map and charts unless needed for that page. This can prevent unintended interactions.

 2. Custom URL Parameters per Page

   - Use URL parameters to control which filters apply to each page individually. Configure the filters so that each page has a unique URL with specific parameters passed into it, ensuring that filters are applied at the page level, not across the entire application.

   - This way, the URL for each page will dictate the filter settings, preventing carry-over to the other pages.

 3. Action Triggers per Page

   - Configure the filter widget's action triggers carefully. Even though you may have connected the filters to the correct charts, it’s possible that some filter actions are still tied globally. Go to the Action tab of each filter widget, and make sure the actions are page-specific and not affecting widgets on other pages.

 4. Session Storage for Filter Isolation

   - Use session storage to create page-specific filters. This technique involves storing the filter state for each page individually, ensuring that the session (user's interaction state) for one page does not interfere with another. You can use this to maintain isolation, and it will be persistent while navigating between pages in a single session.

 5. Script Injection for Custom Behavior (if allowed)

   - If you have access to inject custom code in your Experience Builder, you can leverage JavaScript to handle the filter state. This approach could be more advanced but provides full control over filter behavior across pages, ensuring that once a filter is applied on a page, it won’t affect other pages.

Combining custom URL parameters and ensuring action triggers are tightly controlled should give you the cleanest solution without too much extra complexity. Let me know if you'd like a detailed walkthrough on one of these methods!

You're right—when dealing with multiple maps (or different iterations of the same map) in ArcGIS Experience Builder, the challenge of managing filters across pages becomes more complex, especially since the Map Widget doesn’t support embedding map views directly.

Here’s a more nuanced approach that can help mitigate the issue:

 1. Use Separate Data Sources for Each Map:

   - If possible, create a duplicate of your map in ArcGIS Online or Portal. Even though it’s the same dataset, by having separate map items for each page (e.g., one map for filters, one for timeline, and another for charts), you can completely isolate them.

   - This method avoids shared filter states because each map is treated as its own entity in Experience Builder.

 2. Duplicate the Data Views:

   - If you're already using data views and still encountering issues, duplicating the views with slight variations might help. For instance, create two distinct data views for the same map—one for page 1 (filters) and one for page 2 (timeline). Though tedious, this ensures full separation.

 3. Utilize Different Map Widgets:

   - Instead of embedding the same map across pages, try setting up completely different map widgets for each page (with the corresponding data view). Even though they use the same underlying data, having independent map widgets linked to different data views may prevent filters from one page from affecting others.

 4. Custom Filtering Logic (Advanced):

   - If you're comfortable with more advanced configurations, look into custom Arcade expressions or custom JavaScript solutions (if allowed). These can give you more granular control over how filters are applied on specific maps or pages, overriding the default behavior in Experience Builder.

 5. Global Filters vs. Local Filters:

   - Ensure that you’re distinguishing between global filters and local filters in Experience Builder. Sometimes, filters are applied globally by default. Try to limit the scope of each filter so that it applies only to the local context (the specific page and map view), and avoid affecting other pages or widgets.

While Experience Builder has limitations, these workarounds, especially duplicating the map and using distinct map widgets, should help you maintain control over filters and ensure each page functions independently. Let me know if you'd like any additional details on how to implement these steps!

Previous
Previous

Outputs from widgets

Next
Next

Why not use Enable Client Side Query. Best practices?