runalyze/static-maps

用于从各种地图瓦片提供商创建静态图像的库。

0.4.2 2024-05-05 19:51 UTC

README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

用于从各种地图瓦片提供商创建静态图像的库。StaticMaps将从指定的瓦片提供商获取地图瓦片,并将它们组合成指定大小的静态图像,适用于任何边界框。

StaticMaps需要Intervention Image进行绘制和League\Flysystem进行瓦片缓存。

安装

通过Composer

$ composer require runalyze/static-maps

用法

要查看所需使用语句的完整列表,请参阅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');

Example for static map

还可以使用完整路线作为图像的基础,请参阅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

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件