PHPackages                             mediawiki/maps - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mediawiki/maps

ActiveMediawiki-extension[Utility &amp; Helpers](/categories/utility)

mediawiki/maps
==============

Adds various mapping features to MediaWiki

12.1.4(1w ago)79149.7k↑14.9%64[101 issues](https://github.com/ProfessionalWiki/Maps/issues)[2 PRs](https://github.com/ProfessionalWiki/Maps/pulls)3GPL-2.0-or-laterJavaScriptPHP &gt;=7.4CI passing

Since Jan 15Pushed 4d ago17 watchersCompare

[ Source](https://github.com/ProfessionalWiki/Maps)[ Packagist](https://packagist.org/packages/mediawiki/maps)[ Docs](https://maps.extension.wiki)[ GitHub Sponsors](https://github.com/JeroenDeDauw)[ RSS](/packages/mediawiki-maps/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (10)Dependencies (48)Versions (131)Used By (3)

Maps
====

[](#maps)

Maps is the [MediaWiki](https://www.mediawiki.org) 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](https://maps.extension.wiki/wiki/Displaying_Leaflet_maps)
- Customizable and dynamic [Google Maps](https://maps.extension.wiki/wiki/Displaying_Google_Maps)
- Structured data and query [integration with Semantic MediaWiki](https://maps.extension.wiki/wiki/Semantic_MediaWiki)
- [Visual map editor](https://maps.extension.wiki/wiki/Visual_editing)
- [GeoJSON](https://maps.extension.wiki/wiki/GeoJSON) and [KML](https://maps.extension.wiki/wiki/KML) support
- Parser functions for [geocoding](https://maps.extension.wiki/wiki/Geocoding), [coordinate formatting](https://maps.extension.wiki/wiki/Coordinates_function) and geospatial operations
- Translations in over 100 languages, image layers, static maps and [more](https://maps.extension.wiki/wiki/Maps_for_MediaWiki)

Missing a feature? Get [software development](https://professional.wiki/en/mediawiki-development)via [Professional.Wiki](https://professional.wiki/). Discounts for work that is open-sourced.

Documentation
-------------

[](#documentation)

### For administrators

[](#for-administrators)

- [Installation](https://maps.extension.wiki/wiki/Installation)
- [Configuration](https://maps.extension.wiki/wiki/Configuration)
- [Release notes](RELEASE-NOTES.md) - detailed list of changes per release
- [Platform compatibility](INSTALL.md#platform-compatibility-and-release-status) - overview of PHP and MediaWiki support per release

### For wiki users

[](#for-wiki-users)

- [Feature overview](https://maps.extension.wiki)
- [Displaying Leaflet maps](https://maps.extension.wiki/wiki/Displaying_Leaflet_maps)
- [Customizing Leaflet maps](https://maps.extension.wiki/wiki/Customizing_Leaflet_maps)
- [Displaying Google maps](https://maps.extension.wiki/wiki/Displaying_Google_maps)
- [Customizing Google Maps](https://maps.extension.wiki/wiki/Customizing_Google_Maps)
- [Semantic MediaWiki integration](https://maps.extension.wiki/wiki/Semantic_MediaWiki)

[![](.github/youtube.jpg "Play video")](https://www.youtube.com/watch?v=TictndP793M)

### Getting support

[](#getting-support)

- Professional support and custom development: **[Professional.Wiki](https://professional.wiki/)**
- Ask a question on [the mailing list](https://www.semantic-mediawiki.org/wiki/Mailing_list)
- File an issue on [our issue tracker](https://github.com/JeroenDeDauw/Maps/issues)

Project status
--------------

[](#project-status)

- Latest version [![Latest Stable Version](https://camo.githubusercontent.com/acbe8af72ad0361d3c7c33e8d2736301c5acb24b5f0dde0dea57aa267a219680/68747470733a2f2f706f7365722e707567782e6f72672f6d6564696177696b692f6d6170732f762f737461626c65)](https://packagist.org/packages/mediawiki/maps)
- Downloads on [Packagist](https://packagist.org/packages/mediawiki/maps) [![Download count](https://camo.githubusercontent.com/ee8c92ef144afbb747660800ed5fdee63dcb62f4ed45954a7fa8432ef499659d/68747470733a2f2f706f7365722e707567782e6f72672f6d6564696177696b692f6d6170732f646f776e6c6f616473)](https://packagist.org/packages/mediawiki/maps)
- Continuous integration [![GitHub Workflow Status](https://camo.githubusercontent.com/93e3bbbf15c8280ab65b2d399809233f146f3e1ee47b5887d455e1dc493f8901/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f50726f66657373696f6e616c57696b692f4d6170732f63692e796d6c3f6272616e63683d6d6173746572)](https://github.com/ProfessionalWiki/Maps/actions?query=workflow%3ACI)
- [![codecov](https://camo.githubusercontent.com/de86b50646f27e343d15c4248cef6e343ce48080b2f0941fd848b094d370e4f6/68747470733a2f2f636f6465636f762e696f2f67682f50726f66657373696f6e616c57696b692f4d6170732f6272616e63682f6d61737465722f67726170682f62616467652e7376673f746f6b656e3d476e4f4733464631365a)](https://codecov.io/gh/ProfessionalWiki/Maps)
- [![Type Coverage](https://camo.githubusercontent.com/ac97dd9b981c6e57e4f2f70367b4103b0047fed4cf975bebf9dfccd9800dc97d/68747470733a2f2f73686570686572642e6465762f6769746875622f50726f66657373696f6e616c57696b692f4d6170732f636f7665726167652e737667)](https://shepherd.dev/github/ProfessionalWiki/Maps)
- [Open bugs and feature requests](https://github.com/JeroenDeDauw/Maps/issues)
- [Maps on OpenHub](https://www.openhub.net/p/maps/)
- [Blog posts about Maps](https://www.entropywins.wtf/blog/tag/maps/)

Contributing
------------

[](#contributing)

- [File an issue](https://github.com/JeroenDeDauw/Maps/issues)
- [Submit a pull request](https://github.com/JeroenDeDauw/Maps/pulls) ([tasks for newcomers](https://github.com/JeroenDeDauw/Maps/issues?q=is%3Aissue+is%3Aopen+label%3Anewcomer))

Development
-----------

[](#development)

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"
			]
		}
	}
}
```

### Project structure

[](#project-structure)

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 code
- `src/ParserHooks` - Entry points for all parser hooks except `#display_map`
- `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 `Map\SemanticFormat`)
- `src/WikitextParsers` - Parsers for the wikitext definitions of map elements (like the `LegacyModel`)

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/`.

### Running the tests

[](#running-the-tests)

You can use the `Makefile` by running make commands in the `Maps` directory.

- `make ci`: Run everything
- `make test`: Run all tests and static analysis
- `make 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.

Links
-----

[](#links)

- [Maps documentation wiki](https://maps.extension.wiki)
- [Maps on OpenHub](https://www.openhub.net/p/maps/)
- [Maps on Packagist](https://packagist.org/packages/mediawiki/maps)
- [Maps on WikiApiary](https://wikiapiary.com/wiki/Extension:Maps)
- [Maps on MediaWiki.org](https://www.mediawiki.org/wiki/Extension:Maps)
- [Sponsor Maps development](https://github.com/sponsors/JeroenDeDauw)

###  Health Score

64

—

FairBetter than 99% of packages

Maintenance79

Regular maintenance activity

Popularity49

Moderate usage in the ecosystem

Community36

Small or concentrated contributor base

Maturity81

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 70.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~38 days

Recently: every ~14 days

Total

117

Last Release

11d ago

Major Versions

7.20.1 → 8.0.02020-12-09

8.0.0 → 9.0.02021-07-30

9.0.7 → 10.0.02022-10-26

10.3.0 → 11.0.02025-03-05

11.0.1 → 12.0.02025-08-13

PHP version history (6 changes)3.0-RC2PHP &gt;=5.3.2

3.6.0PHP &gt;=5.5

4.3.0PHP &gt;=5.6

5.0.1PHP &gt;=7.0

6.0.0PHP &gt;=7.1

9.0.0PHP &gt;=7.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/451bd4039d530fed8f9c3da91bfa519233a397d2182cdfdcad700f6cfea19b7f?d=identicon)[Jeroen De Dauw](/maintainers/Jeroen%20De%20Dauw)

---

Top Contributors

[![JeroenDeDauw](https://avatars.githubusercontent.com/u/146040?v=4)](https://github.com/JeroenDeDauw "JeroenDeDauw (3589 commits)")[![translatewiki](https://avatars.githubusercontent.com/u/24829418?v=4)](https://github.com/translatewiki "translatewiki (997 commits)")[![PeterTheOne](https://avatars.githubusercontent.com/u/666289?v=4)](https://github.com/PeterTheOne "PeterTheOne (159 commits)")[![kghbln](https://avatars.githubusercontent.com/u/1104078?v=4)](https://github.com/kghbln "kghbln (81 commits)")[![Nikerabbit](https://avatars.githubusercontent.com/u/1109395?v=4)](https://github.com/Nikerabbit "Nikerabbit (44 commits)")[![netbrain](https://avatars.githubusercontent.com/u/341643?v=4)](https://github.com/netbrain "netbrain (35 commits)")[![siebrand](https://avatars.githubusercontent.com/u/210297?v=4)](https://github.com/siebrand "siebrand (27 commits)")[![nischayn22](https://avatars.githubusercontent.com/u/603302?v=4)](https://github.com/nischayn22 "nischayn22 (23 commits)")[![paladox](https://avatars.githubusercontent.com/u/5727000?v=4)](https://github.com/paladox "paladox (15 commits)")[![mwjames](https://avatars.githubusercontent.com/u/1245473?v=4)](https://github.com/mwjames "mwjames (15 commits)")[![mlidal](https://avatars.githubusercontent.com/u/1013929?v=4)](https://github.com/mlidal "mlidal (13 commits)")[![alistair3149](https://avatars.githubusercontent.com/u/9260542?v=4)](https://github.com/alistair3149 "alistair3149 (9 commits)")[![Abijeet](https://avatars.githubusercontent.com/u/1685517?v=4)](https://github.com/Abijeet "Abijeet (8 commits)")[![shirayuki](https://avatars.githubusercontent.com/u/18039?v=4)](https://github.com/shirayuki "shirayuki (8 commits)")[![HelmutLeitner](https://avatars.githubusercontent.com/u/5163510?v=4)](https://github.com/HelmutLeitner "HelmutLeitner (6 commits)")[![malberts](https://avatars.githubusercontent.com/u/1428594?v=4)](https://github.com/malberts "malberts (5 commits)")[![FlorianSW](https://avatars.githubusercontent.com/u/4892966?v=4)](https://github.com/FlorianSW "FlorianSW (5 commits)")[![DanweDE](https://avatars.githubusercontent.com/u/101926?v=4)](https://github.com/DanweDE "DanweDE (5 commits)")[![pastakhov](https://avatars.githubusercontent.com/u/1772774?v=4)](https://github.com/pastakhov "pastakhov (5 commits)")[![legoktm](https://avatars.githubusercontent.com/u/81392?v=4)](https://github.com/legoktm "legoktm (5 commits)")

---

Tags

geocodinggoogle-mapsleafletleaflet-mapsleafletjsmapsmediawikimediawiki-extensiongeocodingmediawikimapsleafletgoogle mapsOpenLayersgeocodeosmOpenStreetMapSemantic MediaWikiSemantic Maps

###  Code Quality

Static AnalysisPHPStan, Psalm

Type Coverage Yes

### Embed Badge

![Health badge](/badges/mediawiki-maps/health.svg)

```
[![Health](https://phpackages.com/badges/mediawiki-maps/health.svg)](https://phpackages.com/packages/mediawiki-maps)
```

###  Alternatives

[helsingborg-stad/municipio

A bootstrap theme for creating municipality sites.

4028.3k10](/packages/helsingborg-stad-municipio)[mediawiki/semantic-media-wiki

An extension to MediaWiki that lets you store and query structured data within wiki pages

615373.3k34](/packages/mediawiki-semantic-media-wiki)[kenguest/services-openstreetmap

More information available at https://pear.php.net/package/Services\_OpenStreetMap

20441.5k](/packages/kenguest-services-openstreetmap)[mediawiki/semantic-result-formats

Provides additional result formats for queries using Semantic MediaWiki

50185.6k1](/packages/mediawiki-semantic-result-formats)[mediawiki/sub-page-list

SubPageList is a lightweight extension to display lists of subpages

2438.6k](/packages/mediawiki-sub-page-list)[jweiland/maps2

Create maps with Marker, Area, Routes or Radius based on Google Maps or OpenStreetMap

1593.3k17](/packages/jweiland-maps2)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
