Pseudo Email Role Date
Color of circles



This application aims to display the mobile network coverage of the Camtel/Blue operator over the entire of Cameroonian territory. The network coverage displayed is segmented into different network types, namely: 2G or GSM, 3G or UMTS and 4G or LTE. The representation of mobile coverage is made on a Google Maps.

This application is implemented on a client/server architecture. The client displays the map on a browser web, while the server is made up of:

  • An application server developed in Java for processing GPS data from the EXCEL file.
  • Google Cloud servers responsible for processing interactions and events carried out in real time by the user on the map.

In the following we will start by describing the server part, and we will end with the description from the customer side.

1. Server part

1.1 Application Server

The application server is designed in Java with Spring Boot technology. The server receives in a POST request the EXCEL file containing all the GPS coordinates of the BTS, processes this data and save this data in a table in a MYSQL database. The server is also used in a request GET in a JSON format all saved GPS coordinates. This server part was developed to facilitate updating the GPS coordinates of the different BTS.

The update is carried out each time the user uploads a new EXCEL data file to the application. It should be noted that the file name must be named site_data.xlsx and the EXCEL data sheet, otherwise the server will not recognize the file and return an error.


The application only uses the server to load the GPS coordinates of the BTS each time it is reloaded of the web page.

1.2 Google Cloud Server

Google deploys several services in its cloud, including Google Maps. Google Maps is a service real-time geolocation whose product is an interactive digital map. Google provides documentation of this service in order to implement the applications as we wish. Our application uses the functionalities of following Google Maps:

  • Loading the map
  • Event management, namely interactions: Zoom, Click, Marker, InfoWindow.
  • Geolocation of the user's current position.
  • Search for places.
  • Circle tracing.

1.3 Customer Party

The client part of the application is a web page where the Google Maps map is grafted, being the node of our app. This page also contains an "Upload data" button used to upload the file EXCEL data described above. The client part receives the events to be carried out on the card, transmits these events to Google Cloud servers which process them and see them again on the map.

2. Application architecture


3. How the application works (Business logic)

The description of how the application works is based on the following functionalities and steps:

3.1 Functionality for displaying the mobile network status of selected areas

  • Web page loading.
  • When the web page loads, it connects to the application server to load the GPS coordinates of the BTS, then to the Google Maps server to load the map on the web interface.

  • Listening to events
  • Once the map has loaded correctly, it geolocates the user then displays their position on the map. When the user clicks on a point on the map, the application retrieves the GPS coordinates of the point clicked then performs an algorithm to search for the points closest to said point.

  • Calculation of coverage distances
  • After the application finds a set (maximum 4) of nearest BTS GPS coordinates from the clicked point, the application calculates the respective distances of these points using the formula following math:

    D = R x arcos((sin(lat1) x sin(lat2)) + (cos(lat1) x cos(lat2) x cos(long1 - long2))).

    • D the distance in Km
    • R : Radius of earth (6371 Km)
    • lat1 : latitude of point 1 in radian
    • lat2 : latitude of point 2 in radian
    • long1 : longitude of point 1 in radian
    • long2 : longitude of point 2 in radian

    latitude and longitude in radian : (The floating number of lat and long) x (PI / 180).

    Exemple : lat1' = 4.07825 and long1' = 9.73302, so lat1 = lat1' x (PI / 180) and long1 = long1' x (PI / 180).

    The distances being calculated, the application then performs an exclusive sorting algorithm for the lower distances 1.5 KM corresponding to the maximum coverage radius of a mobile network antenna. Lower distances to the coverage radius of a cell correspond to the GPS coordinates of the BTS which cover the selected point. This algorithm uses a maximum of 4 BTS given current mobile sizing.

  • Display of network status
  • Once the above process has found the GPS coordinates of the BTS which cover a selected point randomly, the application browses the data of said GPS coordinates in order to extract the data of the state of mobile coverage namely: G(GSM), U(UMTS) and L(LTE). During extraction, the application retains the maximum of data, that is to say the union of all the coordinate data, for example if the application finds GL and UL, the application will remember GUL will display a message of coverage of 2G, 3G and 4G. The application then displays a info message above the marker of the selected point corresponding to the coverage status of the area in which is the selected point.

    When the application does not find any GPS coordinates of BTS near the randomly selected point, the application displays a message indicating an absence of network coverage.

3.2 Display functionality of mobile network generation across the entire territory.

  • Selection of network type
  • The application shows a box with several 2G, 3G and 4G checkboxes. When the user ticks on these checkboxes, the application records the technology type(s) and saves them in the browser storage (LocalStorage)

  • Mapping or tracing of coverage areas
  • Once the type of technology is selected, the application browses all of the GPS coordinates of the BTS to extract those which correspond to the type of technology selected, then performs an algorithm of tracing circles corresponding to the coverage of the type of mobile network. These circles have radii of 1.5KM corresponding to the maximum coverage radius of a mobile network antenna, knowing that each BTS is made up 3 antennas allowing 360° or circular coverage.