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:
- Powerful
#display_map
parser hook for embedding highly customizable dynamic maps into wiki pages. - Support for multiple mapping services: Leaflet, Google Maps and OpenStreetMap.
- Integration with Semantic MediaWiki via a coordinate datatype
- Query your stored coordinates and visualize them on dynamic maps, as tables or as lists
- Export your coordinates as KML or RDF
- Combine coordinates with other structured data stored in your wiki
- Geocoding via several supported services with the
#geocode
parser function. - GeoJson support including a basic visual editor
- Coordinate formatting and format conversion via the
#coordinates
parser function. - Geospatial operations
- Calculating the distance between two points with
#geodistance
- Finding a destination given a starting point, bearing and distance with
#finddestination
- Calculating the distance between two points with
- Distance formatting and format conversion via the
#distance
parser function. - Visual map editor (Special:MapEditor) to edit
#display_map
wikitext (requires Google Maps).
Missing a feature? Professional.Wiki does custom development at a discount if it is open sourced.
- Installation
- Configuration
- Release notes - detailed list of changes per release
- Platform compatibility - overview of PHP and MediaWiki support per release
- 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
- TravisCI
- Code quality
- Open bugs and feature requests
- Maps on OpenHub
- Blog posts about Maps
The src/
contains the PHP code and follows PSR-4 autoloading.
src/DataAccess
- implementations of services that use the network, read from disk or persistence servicessrc/Elements
- Value Objects representing geographical elements (should be devoid of MediaWiki binding)src/MediaWiki
- MediaWiki hook points, including API modules, special pages and MediaWiki hookssrc/Presentation
- presentation layer code (all code dealing with HTML etc should be here)src/SemanticMW
- Semantic MediaWiki hook points, including result printers and value descriptions
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/
.
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:
phpunit
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.