Skip to content
A module to visulize where one has been traveled for
JavaScript HTML CSS
Branch: master
Clone or download
Latest commit f506f84 Jun 16, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
picture help Dec 25, 2016
MMM-iHaveBeenThere.js Update MMM-iHaveBeenThere.js Jan 7, 2017 fixed header Jan 6, 2018

Module: MMM-iHaveBeenThere

The MMM-iHaveBeenThere is a extension module for the MagicMirror to visulize where one has been traveled.

It can draw a worldmap or a world section with points of interest (poi). The poi's are linked with a line and an animated plane can fly from the your home origin to you poi where you have been. This can be used to show your traveled places in the world. Pretty fancy ;-)

alt tag



  1. simply check out this repro (destination should be [Path2YourMirror]/MagicMirror/modules/
  2. create a config (s. below).
  3. add your gps coordinates.
  4. done!

Configuration options

Option Description
title The title of the world chart.

Values: string, see MMM-iHaveBeenThere configuration below.
Default value: An example world.
AnimationEnabled enable/disable the plane animation.

Values: true or false
Default value: true
pauseDuration Time in s how long the plane stays at a point if animation is enabled.

Values: 0.0 or any
Default value: 3.0
animationDuration Time in s how long the plane flies from point to point if animation is enabled.

Values: 0.0 or any
Default value: 10.0
zoomLevel Set map region parameter.

Values: 0.0 or any
Default value: 5.4for central europe.
zoomLongitude Set map region parameter.

Values: 0.0 or any
Default value: -2.0for central europe.
animationDuration Set map region parameter.

Values: 0.0 or any
Default value: 46.0for central europe.
home_lat, home_lon Latitude/longitude of the your home.

Values: float
Default value: e.g. lat 48.1548256for munich.
home_desc Your Homename.

Values: string
Default value: "München"For munich.
away_lat, away_lon Latitude/longitude of destinations you have visited.

Values: array[float]
away_desc City/Country names of destinations you have visited.

Values: array[string]
trip Controls if every single entry is counted as a new jurney or a round trip.

Values: array[bool]
colorCountries, colorCountryBorders, colorTargetPoints, colorPlaneLine, colorLegendBorder, colorLegendFont, colorTitleFont Colors for country fill, country border, target points, plane, legend, legend font, title.

Value: string
Default value: e.g."#BDBDBD"

Using the module

To use this module, add it to the modules array in the config/config.js file:

modules: [
		module: 'MMM-iHaveBeenThere',
		position: 'lower_third',	// bigger place is recommended.
		config: {
			// The config property is optional.
			// If no config is set, an example MMM-iHaveBeenThere is shown.
			// See 'Configuration options' for more information.

Depending on the used Raspberry Pi hardware I recommend to disable the plane animation (though it looks nice). The modells A, B, B+ run only contain a single CPU core. I tried the B+ with 1Ghz (overclocking). The CPU load was at 100% and the animation laged. Also I used MMM-FRITZ-Box-Callmonitor and was missing incoming calls with this setup. For this mentioned Pi's I recommend to disable the animation or set

Option Description
AnimationEnabled value: true
pauseDuration value: 10.0
animationDuration value: 3.0
This should give the Pi a little space betweent the animations. Not a pretty good solution, but during the animation you might have problems. With a Pi 3 I had a load of 40% when the animation is running. Dualcore pays off. Also the animation is smooth.

The MIT License (MIT)

Copyright © 2016 Sebastian Merkel

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

The software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.

You can’t perform that action at this time.