runalyze / static-maps
Library to create static images from various map tile providers.
0.4.2
2024-05-05 19:51 UTC
Requires
- php: >=8.0
- intervention/image: ^2.6
- league/flysystem: ^3.12
- psr/log: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.2
- league/flysystem-memory: ^3
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-11-05 20:56:23 UTC
README
Library to create static images from various map tile providers. StaticMaps will fetch map tiles from a specified tile provider and combine them to a static image of specified size for any bounding box.
StaticMaps requires Intervention Image for drawing and League\Flysystem for tile caching.
Install
Via Composer
$ composer require runalyze/static-maps
Usage
For a full list of required use statements, see example-1.php:
$imageManager = new ImageManager(['driver' => 'gd']); $tileService = new OpenStreetMap(); $tileCache = new FilesystemCache(new Filesystem(new Local(__DIR__.'/cache/tiles')), $imageManager); $tileProvider = new TileProvider($tileService, $imageManager, $tileCache); $map = new Map(new Viewport(500, 350, new BoundingBox(53.40, 53.75, 9.90, 10.10), $tileService)); $map->addFeature(new TileMap($tileProvider)); $map->addFeature(new CopyrightNotice($tileService->getAttributionText(), function($font){ $font->file('./resources/font/Roboto-Regular.ttf'); })); $provider = new Renderer($imageManager); $image = $provider->renderMap($map); echo $image->response('png');
It's also possible to use a complete route as base for the image, see example-2.php:
$route = new Route([[53.57532, 10.01534], [52.520008, 13.404954], [48.13743, 11.57549]], '#ff5500', 5); $map = new Map(new Viewport(300, 200, $route->getBoundingBox(), $tileService)); $map->addFeature(new TileMap($tileProvider); $map->addFeature($route); // ...
License
The MIT License (MIT). Please see License File for more information.