在Web应用中,展示地理位置信息是常见的需求。虽然动态地图功能强大,但在某些场景下,例如邮件通知、报表生成等,静态地图更为适用。手动构建Google Static Maps API的URL既繁琐又容易出错。
幸运的是,mastani/laravel-google-static-map 这个 laravel 包,能让你轻松地在项目中生成静态地图,极大地简化了开发流程。你可以通过以下地址学习composer:学习地址
安装
对于 Laravel 5.5 及以上版本,安装非常简单:
composer require mastani/laravel-google-static-map
Laravel 会自动注册服务提供者。
对于 Laravel 5.4,你需要手动注册服务提供者:
// config/app.php
'providers' => [
// ...
Mastani\GoogleStaticMap\GoogleStaticMapServiceProvider::class,
];如果你没有使用 Laravel,也可以通过 Composer 安装:
composer require mastani/laravel-google-static-map
使用
安装完成后,就可以开始生成静态地图了。首先,你需要实例化 GoogleStaticMap 类,并传入你的 Google Maps API 密钥 (如果需要)。
$map = new \Mastani\GoogleStaticMap\GoogleStaticMap('YOUR_GOOGLE_MAPS_API_KEY'); // 替换为你的API密钥,如果没有可以留空然后,你可以使用各种方法来配置地图,例如设置中心点、缩放级别、地图类型、尺寸、格式等。
$url = $map->setCenter('Tehran')
->setMapType(\Mastani\GoogleStaticMap\MapType::RoadMap)
->setZoom(14)
->setSize(600, 600)
->setFormat(\Mastani\GoogleStaticMap\Format::JPG)
->addMarker('Tehran', '1', 'red', \Mastani\GoogleStaticMap\Size::Small)
->addMarkerLatLng(35.6907488, 51.3919293, '1', 'red', \Mastani\GoogleStaticMap\Size::Small)
->make(); // 返回包含地图地址的URL最后,调用 make() 方法生成地图 URL。你也可以使用 download($path) 方法将地图图片下载到指定路径。
常用方法
-
setSecret(secret): 设置签名密钥。 -
setCenter(location): 设置地图中心点,使用地址。 -
setCenterLatLng(latitude, longitude): 设置地图中心点,使用经纬度。 -
setZoom(zoom): 设置地图缩放级别。 -
setSize(width, height): 设置地图尺寸。 -
setMapType(type as MapType): 设置地图类型 (RoadMap, Satellite, Hybrid, Terrain)。 -
setFormat(format as Format): 设置地图格式 (PNG, JPG, GIF)。 -
addMarker(center, label, color, size): 添加标记,使用地址。 -
addMarkerLatLng(latitude, longitude, label, color, size): 添加标记,使用经纬度。 -
make(): 生成地图 URL。 -
download($path = 'current path', $name_length = 10): 下载地图图片。
优势
- 简化开发: 避免手动构建复杂的 Google Static Maps API URL。
- 易于使用: 提供简洁的 API,方便配置地图参数。
- 灵活配置: 支持设置地图中心点、缩放级别、地图类型、尺寸、格式等。
- 方便集成: 可以轻松地将静态地图嵌入到邮件、报表等场景中。
总结
mastani/laravel-google-static-map 是一个非常实用的 Laravel 包,它可以帮助你轻松生成静态地图,解决在Web应用中展示地理位置信息的难题。它简化了开发流程,提高了开发效率,是 Laravel 开发者的必备工具之一。










