Project: 3D visualization of health care facilities in South Africa
This documentation aims to explain the process I took to develop the project. Please go through the documentation keeping in mind that it is meant to explain my process and my approach to developing with Cesium.js and not necessarily a guide based on the best practises for working with Cesium.js.
If you spot any errors in the documentation, please email me : lelonompumelelo@gmail.com to correct them.
Thank you to the Cesium team, for accepting my application and thank you for the taking the time to read this.
Back in 2020, we developed a mapping web application using Google maps with the goal of locating health care facilities across South Africa.
I had fun working on this project and that is the reason I chose to revisit it and work from it to apply my newly acquired Cesium.js skills and knowledge gained so far.
Below I list the inputs or the requirements I gathered before getting started to do the work:
The district map data, the health facilities data along with the population data are from sources that are outdated and might not reflect accurately the current realities in South Africa.
I preferred all the data to be in a json format because I am more comfortable working with this format, so in the next section - I explain the process of converting data that was in json format (including geojson) to become what I needed it to be.
To get the district map shape files, I visited igismap where I easily downloaded the shape file and it worked. See below:
For the data to show on the map, I used Humdata.org to get the population of South Africa by district with a breakdown between female and male. Initially it was in an excel spreadsheet - I used the Mapshaper to popualate the data into the shape file.
Below is a rough wireframe/ sketch - handdrawn to get the idea out of my mind into the real world.
I faced a couple of challenges while working on this project, see them below:
Snippets of the custom .js script file are shown below:
For feature #1 - where the district map overlays on the Cesium globe.
For adding health facilities into the Cesium globe
For using Google's 3D Realistic tiles and flyover effect:
I have re-used the basic css that came with the Cesium github repo, a few inline stylings and an animated icon to apply a bit of styling into this web application. See below how:
To version control, I started with github at first but instead of creating a new repository, I nested it under some private personal projects. For submission purposes, I moved it into Google drive but I am planning to create a new public repo once the review process has been completed and this work has been accepted.
The completed project's source code can be found here.
This project used animated icons from Lordicon and static icons from iconfinder, district map was edited using Map shaper, the first draft of this documentation was done using Readme.so editor, the district population data shown on the district map is from Humdata.org , the shapefile of the district map is from igismap
This documentation is from a template by Themeforest under an open source license and they describe more about licenses here: choosealicense.com.