dantsu / php-osm-static-api
PHP库,轻松从OpenStreetMap(OSM)获取静态图像,添加标记并绘制线条。
0.6.4
2023-08-06 07:17 UTC
Requires
- php: >=7.0
- dantsu/php-image-editor: ^1.3
README
PHP OpenStreetMap 静态API
PHP库,轻松从OpenStreetMap获取带有标记、线条、圆和多边形的静态图像。
本项目使用OpenStreetMap基金会的瓦片服务器,该服务器完全运行在捐赠资源上,更多详细信息请参阅瓦片使用政策。
✨ 支持
⭐ 星标此仓库以支持此项目。您将通过增加此库的可见性做出贡献 :)
安装
使用composer轻松安装此库
composer require dantsu/php-osm-static-api
如何使用
使用标记和多边形生成OpenStreetMap静态图像
use \DantSu\OpenStreetMapStaticAPI\OpenStreetMap; use \DantSu\OpenStreetMapStaticAPI\LatLng; use \DantSu\OpenStreetMapStaticAPI\Polygon; use \DantSu\OpenStreetMapStaticAPI\Markers; \header('Content-type: image/png'); (new OpenStreetMap(new LatLng(44.351933, 2.568113), 17, 600, 400)) ->addMarkers( (new Markers(__DIR__ . '/resources/marker.png')) ->setAnchor(Markers::ANCHOR_CENTER, Markers::ANCHOR_BOTTOM) ->addMarker(new LatLng(44.351933, 2.568113)) ->addMarker(new LatLng(44.351510, 2.570020)) ->addMarker(new LatLng(44.351873, 2.566250)) ) ->addDraw( (new Polygon('FF0000', 2, 'FF0000DD')) ->addPoint(new LatLng(44.351172, 2.571092)) ->addPoint(new LatLng(44.352097, 2.570045)) ->addPoint(new LatLng(44.352665, 2.568107)) ->addPoint(new LatLng(44.352887, 2.566503)) ->addPoint(new LatLng(44.352806, 2.565972)) ->addPoint(new LatLng(44.351517, 2.565672)) ) ->getImage() ->displayPNG();
对齐和缩放地图以适应绘制和标记
->fitToDraws(int $padding = 0)
->fitToMarkers(int $padding = 0)
->fitToDrawsAndMarkers(int $padding = 0)
->fitToPoints(LatLng[] $points, int $padding = 0)
$padding
设置地图边界的填充量,在设置视图以适应边界时不应计算在内。这可以是正数或负数,具体取决于您的需求。
use \DantSu\OpenStreetMapStaticAPI\OpenStreetMap; use \DantSu\OpenStreetMapStaticAPI\LatLng; use \DantSu\OpenStreetMapStaticAPI\Polygon; use \DantSu\OpenStreetMapStaticAPI\Markers; \header('Content-type: image/png'); (new OpenStreetMap(new LatLng(0, 0), 0, 600, 400)) ->addMarkers( (new Markers(__DIR__ . '/resources/marker.png')) ->setAnchor(Markers::ANCHOR_CENTER, Markers::ANCHOR_BOTTOM) ->addMarker(new LatLng(44.351933, 2.568113)) ->addMarker(new LatLng(44.351510, 2.570020)) ->addMarker(new LatLng(44.351873, 2.566250)) ) ->addDraw( (new Polygon('FF0000', 2, 'FF0000DD')) ->addPoint(new LatLng(44.351172, 2.571092)) ->addPoint(new LatLng(44.352097, 2.570045)) ->addPoint(new LatLng(44.352665, 2.568107)) ->addPoint(new LatLng(44.352887, 2.566503)) ->addPoint(new LatLng(44.352806, 2.565972)) ->addPoint(new LatLng(44.351517, 2.565672)) ) ->fitToDraws(10) ->getImage() ->displayPNG();
文档
贡献
请在此仓库上进行分叉并使用拉取请求进行贡献。
任何贡献,无论大小,主要功能、错误修复都受到欢迎并受到赞赏,但将进行彻底审查。