Automated mapping of AREDN Networks.
2016-2019 - Eric Satterlee / KG6WXC
Addtional Credit to: Mark/N2MH and Glen/K6GSE for their work on this project.
Licensed under GPL v3 and later.
Donations / Beer accepted! :)

Demo Map


In theory, this should run on a Windows system as well.
It does not require anything specific to Linux (Perhaps with the exception of the cron task).
There is no reason that cronjob could not be adapted to run from a Windows scheduled task though.
PHP is PHP after all.

Map Tile Server info

Without a map tile server or static tiles, Mesh users without internet access on their systems may not see any map tiles.
On the mesh, you cannot expect the client to have internet access in order to retrieve the tiles, you must provide them yourself, one way or another.
The main map webpage will try to check for internet access and load the appropriate maps.
Default internet map tile servers have been provided in the ini file, but the ini file will need tweaking if you want to use “local” tile servers or directories.

It is way beyond the scope of this README file to help in setting up a map tile server.
You are unfortunatly on your own there.
It is a time consuming and computationaly expensive process, but can be done on “normal” hardware.
It also takes 100’s of GB of HD space if you want to map the entire world, and that does not include the tiles themselves, that is only for the data required to create the map tiles.
A good place to start for more info is:
If you attempt it, be patient, you will get it wrong more than a few times but in the end you might be surprised. :)

Tip: Another option is that some programs, Xastir in particular, will save the map tiles they use.
You *can* use those tiles as well, but they must be made to be accessible by your webserver.

You might be able to convince KG6WXC to create local map tiles for you, if the area you want is in the USA, he does not have the available SSD space for the entire world… yet.
If you do ask, be prepared, it literally takes KG6WXC’s system about 3-4 days just to render the tiles for a smallish area and it’s kind of a PITA!

As an example, KG6WXC once made tiles for the Mesa Az. mesh group.
It was a smallish area around Phoenix Az, out to a zoom of about 8 or something.
It ended up at around 3GB of map tiles and took about 4 days of total run time to render on the server...
and it had to restart a few times too, due to running out of 8GB of RAM and having to tweak a few things along the way...
It actually took much longer than the 4 days of actual run time.
Building/Using a map tile server is not for the faint of heart!

Initial setup for a freshly installed Raspbian 9 (Stretch) system

(Should work for other Linuxes as well, change where needed)

The way the user editable files are distrubuted has changed!.

If the --test-mode-no-sql is successful, you can go ahead and run the script with --test-mode-with-sql or just without any options.
Run the script without options and there is no on screen output (this is for cron).

Updating the scripts

Simply run a “git pull” from the meshmap directory and the scripts will be updated from the git repo.
The, meshmap-settings.ini,, and files will not be affected by updating.
The settings in the default ini files may still change and have things added or removed in future versions.
For now tho, if the default ini files change, and you still have the old ones in use, things will probably break! Be Warned!
Hopefully in the future this process can be more automated.

If you make changes beyond the user editable files I encourage you to perhaps push the changes upstream, please contact if you wish to do so.

I am making changes all the time, it would be a good idea to run “git pull” from time to time to find any updates.

Notes on usage of the map pages

http://(hostname)/meshmap/node_report.php will show you all the info in the DB without trying to map anything.
This can be useful to see if all the data is there or to find nodes that have no location set. (or other issues)

There is an “admin” page, which is still in the works, what is there now does work tho.
Load up: http://(hostname)/meshmap/admin/admin.php in your web browser.
The first time the admin page is loaded it will ask you to create a username and password, do so.
This initial user will be a “super-user” and can then add/remove other users.
I’ve tried to provide instructions on the admin pages themselves.
From the admin pages you can “fix” a nodes location, which can be helpful for those users that forget the “-” in front of their longitude. :)
You can add the “Non Mesh” Markers, fire stations, police stations, EOC’s , etc from the admin pages…
The admin pages also allow for some maintenance of the database, more feedback is encouraged on this!

You can change the way the page looks by copying webpage/css/meshmap-default.css to webpage/css/meshmap.css.
The meshmap.css file will override the -default.css file.
(This also applies to other *-default.css files, there are a few, please look at them if you wish to customize the layout of the map)

ToDo List

(In no particular order)
- [x] Finally finish my admin page idea (mostly).
- [x] Add new MeshMap Logo.
- [x] User css files will override the defaults.
- [x] Polling script checks the DB before it runs and makes changes if needed.
- [x] Catch more nodes information now, like and hopefully some other pesky ones!
(this will probably cause some warnings during node polling, but it is getting the info it needs)
(also helps clean up the database and was a nice side effect of that)
- [x] Make the numbers for stations and links in the attribution bar a bit more accurate I hope.
- [x] Add a “Ruler” to allow for measuring of distance and bearings.
(elevation plot of the line drawn via this ruler will hopefully come next)
- [ ] Change css file for the “?” slide-out menu.
- [ ] Make “Parallel Threads” work again in get-map-info script, with limits on how many can be run at once.
(this will greatly speed up network polling)
- [ ] Implement N2MH’s “Link aging” idea(s).
- [ ] The “Planning” Tab.
- [ ] Make it so other networks can export their data for use on a “Mega Map” type page. :)


Contribution is encouraged!!
I can’t think of everything!
If you find an improvement, typo, or whatever, please, sign up at or send an email to or something!!

This README file last updated: July 2018