jbelien / mapfile-php-library
PHP Library to read/write MapServer mapfiles
Fund package maintenance!
v2.0.8-beta
2022-11-03 13:58 UTC
Requires
- php: ^7.4 || ^8.0
- doctrine/collections: ^1.5
Requires (Dev)
- phpunit/phpunit: ^7.3 || ^8.0 || ^9.0
- squizlabs/php_codesniffer: ^3.3
This package is auto-updated.
Last update: 2026-05-29 01:01:44 UTC
README
PHP Library to read/write MapServer mapfiles.
This library is based on MapServer 7.2.0 documentation (last updated on 16 June 2017).
Installation
composer require jbelien/mapfile-php-library
Usage
Write MapFile (example)
$map = new \MapFile\Model\Map(); $map->name = 'my-mapfile'; $map->projection = 'EPSG:4326'; $map->scalebar = new \MapFile\Model\Scalebar(); $map->scalebar->units = 'kilometers'; $layer = new \MapFile\Model\Layer(); $layer->name = 'my-layer'; $layer->type = 'POLYGON'; $layer->status = 'ON'; $layer->data = 'my-shapefile'; $layer->projection = 'EPSG:4326'; $class = new \MapFile\Model\LayerClass(); $style = new \MapFile\Model\Style(); $style->color = [0, 0, 0]; $class->style->add($style); $label = new \MapFile\Model\Label(); $label->text = '[label]'; $label->color = [0, 0, 0]; $label->size = 12; $class->label->add($label); $layer->class->add($class); $map->layer->add($layer); (new \MapFile\Writer\Map($map))->save('my-mapfile.map');
Have a look at the source code to see all the available options.
Parse MapFile (example)
$map = (new \MapFile\Parser\Map())->parse('my-mapfile.map'); foreach ($map->layer as $layer) { echo $layer->name; }