Monitor your assets in real time

As part of the ArcGIS Platform, the GeoEvent Extension for Server enables real time data processing and works seamlessly with your other ArcGIS software. Several of our clients have a need to monitor their business data in real time, and need to track their vehicles / assets to ensure all business processes run smoothly. ArcGIS GeoEvent Extension for Server enables an organisation to filter and process their event data in real-time and this allows them to connect and view virtually any type of streaming data from their device or office.

Setting up the GeoEvent Extension for ArcGIS Server can be tricky and in this blog we hope to cover all the necessary steps to make it work. We have implemented GeoEvent Extension for Server mostly at organisations that need to view the near real time location of their vehicles – consuming telematics data. In our example the data we are using has the following records:

  • vehicle id
  • event time
  • ignition on or off
  • speed of vehicle (km/hr)
  • g-force data

One of the requirements is to send out notifications to both the delivery service manager and to the delivery recipient. Three types of notifications are required for this scenario:

  • when vehicle enters a dangerous zone (e.g. a known hijacking zone)
  • when vehicle is driving above the speed limit
  • when driver is within 5 km of the location where the parcel is being delivered

The driver behaviour warnings are sent to the delivery service manager, while the delivery recipient is notified that the driver is close to delivery.

  1. Create an empty feature class in an enterprise database using the schema of the csv file.

You can download the xlsx file and convert it to csv.

Note: use the coordinates in the csv file to create the feature class and delete all the records using the truncate tool.

2. Create a zoning / geofences feature class in the enterprise geodatabase.

Note: create domains in the geodatabase for the type of zone e.g. Dangerous / Buffer; and style the data accordingly.

3. Publish a map service to ArcGIS Server.

Note: feature access must be enabled (both datasets must be from the same enterprise geodatabase).

2 feature access

4. Import the GeoEvent Definitions using the ArcGIS Server feature service.

Note: Make sure the ArcGIS Server or Portal is registered with GeoEvent Server. Use the tracking layer (step 1).

3 register server5. Import the GeoFences and create GeoFence Synchronization Rules using the ArcGIS server feature service.

Note: Use the zoning / geofences layer (step 2).

4 geofence

5 geofence sync


6. Add and configure the csv file as an input service.

Note: use the Receive Text from a TCP Socket for the Input Connector. The Server Port must match the port that will be used in the simulator.

6 tcp text in

7. Add and configure the tracking layer feature service as an output service.

Note: use the Add a Feature for the Output Connector.

7 car fs out

8. Various notifications can be created to inform the delivery service manager or the delivery recipient. In this example Send an Email was used as an Output Connector.

Note: Access to an SMTP server is required – contact your system administrator for help with this, or you can use gmail for testing purposes.

8 email buffer

9. Create and Publish a GeoEvent Service to connect your inputs (step 6) to the various outputs (step 7 & 8).

Note: txt-to-car is a processor; speed, buffer-zones and dangerous-zones are all filters.

9 geoevent service

txt-to-car:10 txt to car

speed:11 speed

buffer-zones:12 buffer zones

dangerous-zones:13 dangerous zones

10. Upload the csv file in GeoEvent Simulator.

14 load from file

11. Connect to the server and port (step 6). Set all the other settings and play the simulator.

15 simulator

The results can be viewed in a web map or application (Portal) or desktop. Notifications will be received as zones are reached or when the vehicle is speeding.

16 web map

Use the 11 steps above to set up your GeoEvent Extension for Server. The data can now be viewed in a web map from virtually any device.


CityEngine & ArcGIS Pro combine to show CCTV coverage in 3D

As part of our Modelling Reality in 3D series, this post looks at the Esri Africa User Conference demonstration of CCTV camera placement in 3D.

Modelling reality in 3D

A prominent United Nations study notes that the share of Africans living in urban areas is projected to grow from almost 40% in 2010 to over 60% by 2050. With the expected rate of population growth on the continent. This increase in urbanisation can lead to economic growth, transformation, and poverty reduction. However, without proper planning the possibility of increased inequality, urban poverty and associated crime exists.

One of the areas to address is crime and this needs to be done in a more systematic way. Applying geography will help us do that.

The aim of the demonstration was to show the location and coverage of CCTV cameras in downtown Johannesburg. The objective was to find the optimal coverage area in 3D by altering some of the camera attributes such as angle, direction and length. CityEngine was used to create the CCTV coverage rules, and ArcGIS Pro’s analysis abilities were utilised to determine the covered areas.



Step 1 was to create a CityEngine rule that creates 3-dimensional shapes representing the visible area of each camera. The CGA rule is shown in the images below:


Note that the Width and HorizontalRotation attributes derive their values by calling the getWidth and getRealDirection functions, respectively.
The getWidth function uses a Pythagorean algorithm to calculate the width (length of the opposite triangle side) by using the CameraAngle and ViewLength attributes.

The getRealDirection function converts the azimuth attribute (N= 0, E = 90, S = 180, W = 270) so that the coverage area has the correct real-world direction. See how altering these attributes effects the coverage areas in the video below.



The image below show the rules used to generate the viewing area:

  • Object: The Object rule uses the i-function to transform the CCTV point to an existing triangular Collada shape and then calls the Rotate rule.
  • Rotate: The rotate function uses the VerticalRotation and HorizontalRotation attributes to change the angle of the viewing area, before calling the Scale rule.
  • Scale: Finally the s function scales the viewing area according to the Width, VerticalHeight and ViewLength attributes. The rule then centres, colours and changes the transparency of the 3D viewing area.

ArcGIS Pro

The second part of the presentation showed how these CityEngine rules can be implemented in ArcGIS Pro for further analysis. Some of the analytical capabilities of ArcGIS Pro are listed below

  • Display the 3D view areas alongside existing 3D content (such as buildings) in ArcGIS Pro.


  • View feature information in a pop-up. This can include attributes, pictures, videos or HTML attributes such as an i-frame of the Google Street View.


  • Calculate the % of the area covered by the cameras. The image below shows the Before and After scenes after additional cameras (blue spheres) were added. We can analyse the coverage of the new additions and compare the calculated values to the previous scenario.
By combining CityEngine with ArcGIS Pro we were not only able to realistically model reality, but also perform accurate 3D spatial analysis.