<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Creating multiple Geotriggers in Developers Questions</title>
    <link>https://community.esri.com/t5/developers-questions/creating-multiple-geotriggers/m-p/1581498#M7415</link>
    <description>&lt;P&gt;HI Kerry, In short yes. I currently have the following inputs: All, Enemy(1003 from SIDC), Hostile (1006), Neutral (1004) and Custom based upon the&amp;nbsp;&lt;SPAN&gt;uniquedesignation. I am feeding the data from the&amp;nbsp;DynamicEntityDataSource&amp;nbsp;. I had to create an&amp;nbsp;abstract class CustomLocationDataSource extends LocationDataSource implements GeotriggerMonitorNotificationEventListener from this I had to create seperate classes for each of the filter class types eg class FriendlyDataSource extends CustomLocationDataSource implements GeotriggerMonitorNotificationEventListener&amp;nbsp; each class was feed&amp;nbsp;updateLocation(new LocationDataSource.Location(point));&amp;nbsp; As I am a slow learner it took me awhile to figure out silly things like, not feeding the mapView as I only wanted my symbology, using&amp;nbsp;updateLocation(new LocationDataSource.Location(point)); and how to turn the feed off and on again cleanly. In fact it took me awhile to figure out how to have multiple LocatDataSources just generally.&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 03 Feb 2025 20:20:29 GMT</pubDate>
    <dc:creator>RodneyBowden</dc:creator>
    <dc:date>2025-02-03T20:20:29Z</dc:date>
    <item>
      <title>Creating multiple Geotriggers</title>
      <link>https://community.esri.com/t5/developers-questions/creating-multiple-geotriggers/m-p/1581069#M7410</link>
      <description>&lt;P&gt;Hi, Could anyone suggest a potential work around ref enabling multiple locationDataSources to feed seperate Geofences. I have no issues creating a single fence and can define the monitor type no issue. I tried a couple of things. (Please forgive my current rough code) such as feeding the loactionDataSource directly. Creating different fences based on the name. The issue appears to be the singular loactionDataSource. Is there a way to enable multiple? (Java SDK 200.6 )&lt;/P&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;// This is being feed from the Dynamic entity data. (ESRI Realtime) The same data which populates the symbology on the screen&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;dataInput&lt;/SPAN&gt;(Point latestPoint&lt;SPAN&gt;, &lt;/SPAN&gt;HashMap&amp;lt;String&lt;SPAN&gt;, &lt;/SPAN&gt;Object&amp;gt; attributes) {&lt;BR /&gt;        &lt;SPAN&gt;this&lt;/SPAN&gt;.&lt;SPAN&gt;latestPoint &lt;/SPAN&gt;= latestPoint&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;// Each latestPoint can be associated with an attribute. I want to create a different location data source for each attribute type&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        //I also considered the GeodataBase as a source&lt;BR /&gt;&lt;/SPAN&gt;        String uniquedesignation = (String) attributes.get(&lt;SPAN&gt;"uniquedesignation"&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;//Given I am using Military Symbology 2525D I can determine the identity (Friendly, Hostile etc) I could also use the uniquedesignation&lt;BR /&gt;&lt;/SPAN&gt;        String sidc = (String) attributes.get(&lt;SPAN&gt;"sidc"&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        String firstFour = (sidc != &lt;SPAN&gt;null&lt;/SPAN&gt;) ? sidc.substring(&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;Math.&lt;SPAN&gt;min&lt;/SPAN&gt;(sidc.length()&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;4&lt;/SPAN&gt;)) : &lt;SPAN&gt;""&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        if &lt;/SPAN&gt;(&lt;SPAN&gt;monitor&lt;/SPAN&gt;!=&lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(firstFour.equals(getMonitoringCategory(&lt;SPAN&gt;monitor&lt;/SPAN&gt;)) || getMonitoringCategory(&lt;SPAN&gt;monitor&lt;/SPAN&gt;).equals(uniquedesignation)) {&lt;BR /&gt;                updateLocation(&lt;SPAN&gt;new &lt;/SPAN&gt;Location(latestPoint))&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        }&lt;BR /&gt;    }&lt;/PRE&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;//This is an SQLite database not the GeoDatabase&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;dataBaseOutput&lt;/SPAN&gt;(String id&lt;SPAN&gt;, &lt;/SPAN&gt;String theFence&lt;SPAN&gt;, &lt;/SPAN&gt;String name&lt;SPAN&gt;, &lt;/SPAN&gt;String monitor&lt;SPAN&gt;, &lt;/SPAN&gt;String trigger&lt;SPAN&gt;, &lt;/SPAN&gt;String bufferDistance&lt;SPAN&gt;, &lt;/SPAN&gt;String enableMonitor) {&lt;BR /&gt;        &lt;SPAN&gt;this&lt;/SPAN&gt;.&lt;SPAN&gt;mapView &lt;/SPAN&gt;= &lt;SPAN&gt;ui&lt;/SPAN&gt;.getMapView()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        this&lt;/SPAN&gt;.&lt;SPAN&gt;name &lt;/SPAN&gt;= name&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        this&lt;/SPAN&gt;.&lt;SPAN&gt;monitor&lt;/SPAN&gt;=monitor&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        this&lt;/SPAN&gt;.&lt;SPAN&gt;bufferDistance&lt;/SPAN&gt;=bufferDistance&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        try &lt;/SPAN&gt;{&lt;SPAN&gt;// Recreate the Graphic from the geometry json file&lt;BR /&gt;&lt;/SPAN&gt;            Geometry fenceGeometry = Geometry.&lt;SPAN&gt;fromJson&lt;/SPAN&gt;(theFence)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            Graphic fence = &lt;SPAN&gt;new &lt;/SPAN&gt;Graphic(fenceGeometry)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;//Reinsert the attributes. Maybe don't need to but have done so at this stage&lt;BR /&gt;&lt;/SPAN&gt;            fence.getAttributes().put(&lt;SPAN&gt;"id"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;id)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            fence.getAttributes().put(&lt;SPAN&gt;"name"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;name)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;//Add the fence graphic to a list&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;fences&lt;/SPAN&gt;.add(fence)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;//I wanted to be able to make different fences&lt;BR /&gt;&lt;/SPAN&gt;            GraphicFenceParameters selectedFenceParams = getFenceParametersForCategory(name&lt;SPAN&gt;,&lt;/SPAN&gt;bufferDistance)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            if &lt;/SPAN&gt;(selectedFenceParams != &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;                updateFenceMonitoring(selectedFenceParams)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;            &lt;SPAN&gt;//Need to fix this&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(&lt;SPAN&gt;"1"&lt;/SPAN&gt;.equals(enableMonitor)) {&lt;BR /&gt;                getMonitoringCategory(monitor)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                startGeotriggerMonitoring(fence&lt;SPAN&gt;, &lt;/SPAN&gt;monitor&lt;SPAN&gt;, &lt;/SPAN&gt;trigger&lt;SPAN&gt;, &lt;/SPAN&gt;bufferDistance)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        } &lt;SPAN&gt;catch &lt;/SPAN&gt;(Exception e) {&lt;BR /&gt;            &lt;SPAN&gt;LOG&lt;/SPAN&gt;.error(&lt;SPAN&gt;"Error parsing fence geometry JSON"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;e)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;div class="lia-vid-container video-embed-center"&gt;&lt;div id="lia-vid-6368074994112w864h540r330" class="lia-video-brightcove-player-container"&gt;&lt;video-js data-video-id="6368074994112" data-account="6161463677001" data-player="default" data-embed="default" class="vjs-fluid" controls="" data-application-id="" style="width: 100%; height: 100%;"&gt;&lt;/video-js&gt;&lt;/div&gt;&lt;script src="https://players.brightcove.net/6161463677001/default_default/index.min.js"&gt;&lt;/script&gt;&lt;script&gt;(function() {  var wrapper = document.getElementById('lia-vid-6368074994112w864h540r330');  var videoEl = wrapper ? wrapper.querySelector('video-js') : null;  if (videoEl) {     if (window.videojs) {       window.videojs(videoEl).ready(function() {         this.on('loadedmetadata', function() {           this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) {             bar.setAttribute('role', 'presentation');             bar.setAttribute('aria-hidden', 'true');           });         });       });     }  }})();&lt;/script&gt;&lt;a class="video-embed-link" href="https://community.esri.com/t5/video/gallerypage/video-id/6368074994112"&gt;(view in My Videos)&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 31 Jan 2025 22:35:32 GMT</pubDate>
      <guid>https://community.esri.com/t5/developers-questions/creating-multiple-geotriggers/m-p/1581069#M7410</guid>
      <dc:creator>RodneyBowden</dc:creator>
      <dc:date>2025-01-31T22:35:32Z</dc:date>
    </item>
    <item>
      <title>Re: Creating multiple Geotriggers</title>
      <link>https://community.esri.com/t5/developers-questions/creating-multiple-geotriggers/m-p/1581194#M7412</link>
      <description>&lt;P&gt;I sorted it out. It was my lack of knowledge. I now can set as many fences as I like on any feed&lt;/P&gt;</description>
      <pubDate>Mon, 03 Feb 2025 06:57:10 GMT</pubDate>
      <guid>https://community.esri.com/t5/developers-questions/creating-multiple-geotriggers/m-p/1581194#M7412</guid>
      <dc:creator>RodneyBowden</dc:creator>
      <dc:date>2025-02-03T06:57:10Z</dc:date>
    </item>
    <item>
      <title>Re: Creating multiple Geotriggers</title>
      <link>https://community.esri.com/t5/developers-questions/creating-multiple-geotriggers/m-p/1581380#M7414</link>
      <description>&lt;P&gt;Hi Rodney!&amp;nbsp;&lt;/P&gt;&lt;P&gt;Glad you figured it out. FYI- we are planning to start the work to integrate Dynamic Entities as a feed type to Geotriggers this year.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is your use case that you have one DynamicEntityDataSource for all identities (friendly and enemy), and you would like to have separate Geotriggers configured with different fences based on identity?&amp;nbsp; So basically if you could filter your DynamicEntityDataSource based on attribute and use that as an input feed to a FenceGeotrigger (with its own source for fences), that would be ideal for you?&lt;/P&gt;&lt;P&gt;Kerry&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 03 Feb 2025 16:56:01 GMT</pubDate>
      <guid>https://community.esri.com/t5/developers-questions/creating-multiple-geotriggers/m-p/1581380#M7414</guid>
      <dc:creator>KerryRobinson</dc:creator>
      <dc:date>2025-02-03T16:56:01Z</dc:date>
    </item>
    <item>
      <title>Re: Creating multiple Geotriggers</title>
      <link>https://community.esri.com/t5/developers-questions/creating-multiple-geotriggers/m-p/1581498#M7415</link>
      <description>&lt;P&gt;HI Kerry, In short yes. I currently have the following inputs: All, Enemy(1003 from SIDC), Hostile (1006), Neutral (1004) and Custom based upon the&amp;nbsp;&lt;SPAN&gt;uniquedesignation. I am feeding the data from the&amp;nbsp;DynamicEntityDataSource&amp;nbsp;. I had to create an&amp;nbsp;abstract class CustomLocationDataSource extends LocationDataSource implements GeotriggerMonitorNotificationEventListener from this I had to create seperate classes for each of the filter class types eg class FriendlyDataSource extends CustomLocationDataSource implements GeotriggerMonitorNotificationEventListener&amp;nbsp; each class was feed&amp;nbsp;updateLocation(new LocationDataSource.Location(point));&amp;nbsp; As I am a slow learner it took me awhile to figure out silly things like, not feeding the mapView as I only wanted my symbology, using&amp;nbsp;updateLocation(new LocationDataSource.Location(point)); and how to turn the feed off and on again cleanly. In fact it took me awhile to figure out how to have multiple LocatDataSources just generally.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 03 Feb 2025 20:20:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/developers-questions/creating-multiple-geotriggers/m-p/1581498#M7415</guid>
      <dc:creator>RodneyBowden</dc:creator>
      <dc:date>2025-02-03T20:20:29Z</dc:date>
    </item>
  </channel>
</rss>

