Maps is the MediaWiki extension to visualize and work with geographical information. It has been maintained since 2009 and is installed on 1000+ wikis.
- Customizable and dynamic Leaflet maps
- Customizable and dynamic Google Maps
- Structured data and query integration with Semantic MediaWiki
- Visual map editor
- GeoJSON and KML support
- Parser functions for geocoding, coordinate formatting and geospatial operations
- Translations in over 100 languages, image layers, static maps and more
Missing a feature? Professional.Wiki does custom development at a discount if it is open sourced.
- Release notes - detailed list of changes per release
- Platform compatibility - overview of PHP and MediaWiki support per release
For wiki users
- Feature overview
- Displaying Leaflet maps
- Customizing Leaflet maps
- Displaying Google maps
- Customizing Google Maps
- Semantic MediaWiki integration
- Professional support and custom development: Professional.Wiki
- Ask a question on the mailing list
- File an issue on our issue tracker
- Latest version
- Downloads on Packagist
- Continuous integration
- Code quality
- Open bugs and feature requests
- Maps on OpenHub
- Blog posts about Maps
src/ contains the PHP code and follows PSR-4 autoloading.
src/Map- Map display entry points (such as handling of
#display_map) and their supporting code
src/ParserHooks- Entry points for all parser hooks except
src/Presentation- Presentation layer code that does not belong to a more specific directory
src/DataAccess- Persistence layer code that does not belong to a more specific directory
src/GeoJsonPages- Code that deals with pages in the GeoJson namespace
src/LegacyModel- Badly designed and deprecated representations of map elements (markers, polygons, etc)
src/LegacyMapEditor- Deprecated and Google Maps only Special:MapEditor page
src/SemanticMW- Semantic MediaWiki code except for the map entry point (which is in
src/WikitextParsers- Parsers for the wikitext definitions of map elements (like the
Tests for PHP go into
tests/ where they are grouped by test type (ie unit, integration). Within those test type
directories the tests should mirror the directory structure in
Running the tests
As setup, run
composer install inside of the Maps root directory.
You can run the MediaWiki independent tests by executing phpunit in the root directory of maps:
This is possible without having a MediaWiki installation or webserver. A clone of the Maps code suffices.
If you do not have PHPUnit installed, you can download the .phar into the root directory and execute it there:
wget -O phpunit.phar https://phar.phpunit.de/phpunit-7.phar php phpunit.phar
To run the tests with MediaWiki, change into
tests/phpunit of your MediaWiki installation and run
php phpunit.php --wiki wiki -c ../../extensions/Maps/phpunit.xml.dist
Where you either update
wiki to match your wikis name, or drop the parameter. The above command
works without modification if you are using the MediaWiki Vagrant.
Beware that due to technical debt, some tests access the network.