POST
|
Hey @LndsWgs What you are wanting to do could be done in GeoEvent, but there would ba a few things to watch out for: 1. Unless the service area is pretty small (like a small city) the number of geofences you are likely to encounter may grow too large for GeoEvent to keep them in memory. 2. Managing and using the large number of emails you are likely to encounter may become troublesome. Option 1: Leverage a RDBMS If I was to implement something like this (sorry i'm going to make a lot of assumptions here) I would shoot for a solution that looked like the following blog post: https://community.esri.com/t5/arcgis-geoevent-server-blog/geoevent-tracking-asset-s-active-inactive-status/ba-p/902116 I would use GeoEvent to keep track/update all the service areas, outages, etc writing them to Feature Class(es) in the RDBMS. I would then use SQL to do a spatial join all of those areas with the customers. In theory this would result in a table where each record had a cutomer's details and the outage details that is affecting them. You could then use GeoEvent to read in each of these records and send an email to each user with details about the outage/coverage. Once the email is sent, you will probably want to write a flag back out to the database indicating that customer and/or outage/coverage has already been contacted (that would then omit that record from the original view). The downside to that approach is it may result in a very large 'slug' of events in GeoEvent. If each outage or coverage is affecting a very large number of customers, you might consider consolidating the records in the orginal view into a single record for each outage/coverage and concatenating the emails into a single field. Obviously this will run into field size limitations and pagination may be needed (like using cartographic partitions to create zones with no more than 100 customers). Option 2 - Traditional GeoEvent Another option for implementing this would be to use the Customer points as the GeoFences (CUSTOMER/OBJECTID). As each new outage/coverage is updated through GeoEvent, you could GeoTag with the Customer GeoFences, use a Field Splitter to separate into individual events, a field enricher to get each customer's email address, then send each individual email. This approach has a few limitations. First you are going to be limited to how many customer points you can load into memory (the maximum is somewhere around 70,000 points on a 20GB RAM machine). Second, using the Field Enricher will slow your GeoEvent Service down to approximately 10 events/second. If an outage results in a large amount of customers being affected, you may run into latency within GeoEvent and it may not be able to keep up. Assuming updates no faster than every 15 minutes, this threshold sits somewhere around 9,000 affected customers (15*60*10). Best, Eric
... View more
04-30-2021
02:19 PM
|
0
|
0
|
601
|
POST
|
Hey @ChrisStevens We have developed a solution using NTLM for another product, but that code is not publicly available. You might be able to work with Esri Professional Services to have them port it to a GeoEvent transport for you. Best, Eric
... View more
04-30-2021
01:39 PM
|
0
|
0
|
324
|
POST
|
Hey @Anonymous User We cannot offer direct suggestions for specific AVL vendors, but I would advise you and your customer to review the options that are out there and ensure they will be able to work directly with GeoEvent. If possible, I would obtain a demonstration account with the AVL provider or get a (hopefully free) trial demonstration that would allow you to test it directly with your GeoEvent Server. Another option is to review the GeoEvent Gallery for connectors that have been developed for other vendors. When evaluating an AVL provider's API, you should look for some key features: 1. Data is pushed/pulled via one of the OOTB Transports provided by GeoEvent (HTTP and TCP are probably the most popular). 2. Data is provided in a format that is OOTB for GeoEvent (JSON, XML, GeoJSON, CSV). 3. The data can be obtained directly and without chaning parameters on the input. For example, there is no changing time range that needs to be specified on each request, or an access token that expires every 24 hours. 4. The data schema is not overly complex. Some providers require several different inputs to bring in the data in peices (vehicle info, vehicle location, vehicle status, faults, exceptions, I/O status, etc.). This can be done, but each piece of the data will require a separate input and the data will need to be joined in a relational database. Also look out for data schemas that are highly grouped or nested, as these can be hard to flatten in GeoEvent. 5. The data schema will provide your customer with everything they need. If they intend to track snow plows, does it provide all the extra I/O status (plow up/down, temperatures, feed rates, etc.). Best, Eric
... View more
04-30-2021
01:29 PM
|
0
|
0
|
561
|
POST
|
Hey @MichaelKarikari1 First off there appears to be an error in the JSON array you posted (extra comma at the end of the array data just before the closing ']', but I'll assume that is just an editing error when you created the sample. Pulling in a JSON sample similar to yours, I was able to use a field mapper to map the two grouped array values out to a flat schema (see FieldMapper settings below). But this assumes your array will always be the same size. If your array is always going to be different sizes or if you would like to convert each array item into a separate event, you will want to use the Multicardinal Field Splitter Processor. This processor element will create a new GeoEvent for each array member, flattening the schema in the process.
... View more
04-30-2021
12:58 PM
|
0
|
1
|
822
|
POST
|
Hey @AmyKlug This would be a good use case for GeoEvent Server and should be relatively easy to implement. Tracker stores current locations in a feature layer that could become your input to GeoEvent. The polygons representing public areas could be loaded or synchronized (in case they change) as GeoFences. You would then use the GeoTagger Processor element to identify workers that are inside a GeoFence (put this info into a field 'geofence'). Then you would write the information to an Update Features output (to a new feature layer) that is set to delete features that are older than a minute or two based on last edit (just to get rid of workers who aren't reporting their location). Finally, on the new feature layer, you would set up a filter (or a Feature Layer View) that omits all the locations where the 'geofence' field is null. The Feature Layer View can have different sharing settings from the underlying feature layer, so you could share that out with the public without having to share the location of all workers (if I read your post correctly).
... View more
04-30-2021
12:38 PM
|
0
|
0
|
677
|
POST
|
Putting my modified GeoJSON into a file and reading that file in using a 10.8.1 GES worked and it was able to create the event with a proper geometry. So I would check your data (maybe use an online validator such as https://geojsonlint.com/ ).
... View more
04-29-2021
09:16 AM
|
0
|
1
|
3230
|
POST
|
I will take a look and see if I can get GeoEvent to bring this in. I assume the following are just oversight when constructing the example GeoJSON: 1. Line 12: '[0,0],' should be '[0,0]' (remove the extra comma) 2. 3rd Line from the bottom: '},' should be '}],' (close the feature array) 3. The geometry should follow the 'right-hand' rule (change the order to '[0, 0],[1, 0],[1, 1],[0, 1],[0, 0]') { "features": [{ "geometry": { "coordinates": [ [ [ [0, 0], [0, 1], [1, 1], [1, 0], [0, 0] ] ] ], "type": "MultiPolygon" }, "id": 7, "properties": { "author": "user", "changeset_comment": "#comments here as text", "created": "2016-02-09T15:45:38.567808", "done": 0, "lbl_list": [null], "link": "https://nome.vgihub.geointservices.io/tasks/project/7", "pid": 7, "priority": 2, "project_type": "mapping", "status": 0, "title": "Example Data", "updated": "2016-04-27T15:54:27.425713", "validated": 0 }, "type": "Feature" }], "type": "FeatureCollection" }
... View more
04-29-2021
08:58 AM
|
0
|
2
|
3231
|
POST
|
Hey. I've been able to manage user level viewing of data on feature services using Feature Layer Views, but it does require a view for each 'group' in your situation. Since you expect the number of groups to grow into the 1,000s, that approach (even scripted to autmatically manage adding/removing/sharing group feature layer veiws) is probably not going to be easy to manage. I would take a look at your reverse proxy and/or VPN to see if you could inject the definition expression at that point. So when the user authenticates, the proxy adds the user's group to the forwarded request. Using this approach I don't believe the user could modify the request to get a group they don't belong to. You might want to check the incoming request URL parameters or payload to be sure the user is not trying to add their own definition expression and remove/override any 'group_id=' or 'group_id in ()' settings.
... View more
04-21-2021
09:29 AM
|
0
|
0
|
715
|
POST
|
Adding one more reference to this question: You can use the Timetree Processor to create lines out of N points or Y period of time: https://community.esri.com/t5/arcgis-geoevent-server-blog/geoevent-delaying-and-or-time-sorting-events/ba-p/901908 If your events sometimes arrive out of order, causing your lines to be incorrect, you can add the Delay Processor to the mix before your Motion Calculator or Timetree to properly order your events: https://community.esri.com/t5/arcgis-geoevent-server-blog/geoevent-delaying-and-or-time-sorting-events/ba-p/901908
... View more
04-14-2021
09:59 AM
|
0
|
0
|
1919
|
IDEA
|
While not OOTB for the GeoEvent Manager application, this sort of functionality can be accomplished using scripting and the GeoEvent Admin API. In addition to using the Admin API, you could use the scripting language to gracefully stop/start your GeoEvent Server periodically and/or based on certain thresholds (cpu, ram, disk, etc.). Please see the following blog for examples on how this might be accomplished: Scripting-tasks-using-the-geoevent-admin-api
... View more
01-29-2021
09:09 AM
|
0
|
0
|
652
|
POST
|
Hey, Seems like you've done everything right. Two things to check: The first is the filename. GeoEvent may ignore a file it thinks it has already processed, so try to append a datetime to the end of the filename as it is saved. For the second, please see the following blog on wathching folders for files. Sometimes the file is large enough that the file system takes some time to write the file; if GeoEvent tries to grab the file while it is still being written, it can cause issues. GeoEvent: Watch a folder for new files
... View more
01-28-2021
11:55 AM
|
0
|
0
|
3381
|
POST
|
Use an incident detector instead of the filter to detect 'enter' and 'exit' conditions. After, the incident detector, add a filter that only allows Status=Started.
... View more
11-13-2020
09:22 AM
|
0
|
0
|
687
|
POST
|
Esri GeoEvent Team has developed an AIS connector for GeoEvent. Please give it a try. Any issues, comments, enhancement requests sould be added as comments on the connector's gallery page. https://www.arcgis.com/home/item.html?id=24770812a22e4feba56555aeafbf68ac
... View more
10-01-2020
08:06 AM
|
1
|
1
|
3312
|
POST
|
Vote for this idea: https://community.esri.com/ideas/15681
... View more
08-06-2020
02:42 PM
|
2
|
0
|
748
|
POST
|
Hey Adam, I'm working on updating this connector at the moment. I've had reports from others that the connector would stop working after an extended period of time. That issue and upgrading to include new fields from new FlightAware API versions are the driving force of the latest update. The next release will support FlightAware Firehose v21.0 and will support GeoEvent Server versions 10.4 thru 10.8 and also 10.8.1. In addition to stabilizing the long term connection, I'm working to improve performance of the inbound connector. I hope to release the new connector by the end of July, 2020.
... View more
07-21-2020
07:40 AM
|
2
|
0
|
1096
|
Title | Kudos | Posted |
---|---|---|
2 | 07-21-2021 07:16 PM | |
1 | 02-05-2024 11:02 AM | |
1 | 09-14-2023 08:09 PM | |
2 | 05-13-2019 09:32 AM | |
1 | 01-20-2023 02:36 PM |