Greg wrote a rough spec on location-based apps for comparing movements of confirmed cases with that of app users so users could know if they potentially came into contact in the past and also to route plan in the future to avoid those areas. The spec write-up is here: . As a result of that spec, he realized that we first need to get the data that apps like that would use. Korea, Taiwan, and Israel have that data in the form of .
Therefore we decided to build a map data input interface so anyone in any country to capture that data and thus have the data available for all kinds of apps that need that data.
What it does
The map component takes in an initial center (lat lon) and an anonomyzed patientId to begin recording a historical footprint timeline (i.e. series of footprints with lat/long/date/time info) for a particular case that can then be saved to whatever output destination it needs to saved to.
This component can be used as a stand-alone as at the demo site https://app.geotimeline.com or imported into any React project as a component.
How we built it
It is built as a React.js Component. It uses the google-maps-react and ant-design packages.
We also have 1 lambda microservice in Node.js for doing a city/country lookup and gets back lat/lon for initial center of the map. Using the lambda saves having to do a geocode call to get that center.
Challenges we ran into
Integrating the google-maps-react package.
Setting a marker and launching a Modal on 'map click'.
Updating the state of the footPrints array and re-populating the map with markers and the table with footprint entries on re-render.
Replacing InfoWindow with a Modal since DatePicker and TimePicker components were not working within InfoWindow.
Choosing the right prop configurations for the Ant Design components we used in the application.
Accomplishments that we're proud of
Everyone we have interviewed says it is easy to use and that the data it captures is very useful.
What we learned
Our hypothesis was that point and click on a map was the easiest and most user friendly way of capturing this information. Based on our feedback we feel that has been validated.
What's next for GeoTimeline - Map Data Input For Confirmed Case Location History
Bundle up the React component and document it well so as to make it easy for developers to import into and use in their applications.
Build out the demo app so that it convinces people to use this type of application to capture this information.
Evangelize capturing and sharing this information so that a repository of this information is available to app developers.