Maps is the MediaWiki extension to visualize and work with geographical information. It has been maintained since 2009 and is installed on 1000+ wikis.
Features:
- 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? Get software development via Professional.Wiki. Discounts for work that is open-sourced.
- Installation
- Configuration
- Release notes - detailed list of changes per release
- Platform compatibility - overview of PHP and MediaWiki support per release
- 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
- Open bugs and feature requests
- Maps on OpenHub
- Blog posts about Maps
To ensure the dev dependencies get installed, have this in your composer.local.json:
{
"require": {
"vimeo/psalm": "^4",
"phpstan/phpstan": "^1.4.9"
},
"extra": {
"merge-plugin": {
"include": [
"extensions/Maps/composer.json"
]
}
}
}The 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 codesrc/ParserHooks- Entry points for all parser hooks except#display_mapsrc/Presentation- Presentation layer code that does not belong to a more specific directorysrc/DataAccess- Persistence layer code that does not belong to a more specific directorysrc/GeoJsonPages- Code that deals with pages in the GeoJson namespacesrc/LegacyModel- Badly designed and deprecated representations of map elements (markers, polygons, etc)src/LegacyMapEditor- Deprecated and Google Maps only Special:MapEditor pagesrc/SemanticMW- Semantic MediaWiki code except for the map entry point (which is inMap\SemanticFormat)src/WikitextParsers- Parsers for the wikitext definitions of map elements (like theLegacyModel)
JavaScript, CSS and other web resources go into resources/.
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 src/.
You can use the Makefile by running make commands in the Maps directory.
make ci: Run everythingmake test: Run all tests and static analysismake cs: Run all style checks
Alternatively, you can execute commands from the MediaWiki root directory:
- PHPUnit:
php tests/phpunit/phpunit.php -c extensions/Maps/ - Style checks:
vendor/bin/phpcs -p -s --standard=extensions/Maps/phpcs.xml - PHPStan:
vendor/bin/phpstan analyse --configuration=extensions/Maps/phpstan.neon --memory-limit=2G - Psalm:
php vendor/bin/psalm --config=extensions/Maps/psalm.xml
Beware that due to technical debt, some tests access the network.
