Skip to content

Library to create static images from various map tile providers.

License

Notifications You must be signed in to change notification settings

Runalyze/static-maps

Repository files navigation

StaticMaps

Latest Version on Packagist Software License Total Downloads

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 = ImageManager::gd();
$tileService = new OpenStreetMapDe();
$tileCache = new FilesystemCache(new Filesystem(new LocalFilesystemAdapter(__DIR__.'/cache/tiles')), $imageManager);
$tileProvider = new TileProvider($tileService, $imageManager, new \GuzzleHttp\Client(), $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 (\Intervention\Image\Typography\FontFactory $font) {
    $font->file('./resources/font/Roboto-Regular.ttf');
}));

$provider = new Renderer($imageManager);
$image = $provider->renderMap($map);

file_put_contents('example-1.png', $image->toPng());

Example for static map

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);

// ...

Example for static map with route

License

The MIT License (MIT). Please see License File for more information.

About

Library to create static images from various map tile providers.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages