Sean Lee

BIAO! StoryMap

Follow locations of historical events on a modern map with timeline.

BIAO! StoryMap

Technical Highlights

  • Universal native apps for Android and iOS built on the Expo platform with TypeScript and React Native
  • Close integration of Google Maps SDK, GeoJSON geographic data format, modal and tab views, to produce interactive maps with timeline
  • Map marker clustering to improve visibility and performance
  • Drawer navigation

Technologies Used

Biao! StoryMap

Biao! is a free app to help people follow stories that highlight the locations of a series of events.

Table of Contents

Installation

Fork and clone the repository, then run:

# npm
npm install

Usage

For development, run:

# npm
expo start

For production, run:

# npm
expo build:android
# or
expo build:ios

Floating Buttons

Floating Buttons The 4 floating buttons on the map screen, in clockwise from the top-left, are:

Map Type Switch

Same map types as in Google Maps:

  • Roadmap view
  • Satellite view
  • Terrain view
  • Reset map viewpoint to default

Map Type Switch

Map Marker Filter

Show / hide types of markers on map

  • City Marker Filter
  • Battle Marker Filter

Map Marker Filter

Open Timeline Modal

Timeline View

  • Click on a date to jump to the associated event, swipe on the date bar to jump to an earlier or later time range
  • Swipe left or right on the content to view the previous or next event
  • Drag the handle up / down to enter / exit full screen reading mode

Full Screen Reading Mode

Open Drawer Menu

Drawer Menu

Map View

Legend View

Legend View

About View

Dark Mode switch

turn on / off dark mode

Dark Mode

Other features

  • Map marker clustering

Map Marker Clustering

  • Landscape mode

Landscape Mode

Roadmap

  • More events
  • Move data to cloud
  • Dynamic area coloring based on timeline
  • Marching (& sailing) routes on maps
  • Add tourist attractions
  • More accurate area coloring for factions

Libraries

Third-party projects that helped

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

GNU General Public License v3.0

Want me to help with your project?

Feel free to give me a holler!