snezhkoigor / map
适用于所有地图提供商的开发包
v1.9.0
2019-03-28 13:16 UTC
Requires
- php: ^7.1
- ext-json: *
- guzzlehttp/guzzle: ~6.0
- illuminate/support: 5.0 - 5.8
README
要求
- PHP >= 7.1.3
- Laravel >= 5.6
安装
- 使用composer安装此包
composer require snezhkoigor/map
- 如果您正在运行Laravel 5.5(该包将自动发现),请跳过此步骤。在
config/app.php
中找到providers
数组键并注册Map服务提供者
// 'providers' => [ Map\Laravel\MapServiceProvider::class, // ];
提供者
默认情况下,配置指定了链式提供者,其中包含用于地址以及经纬度反向查找的GoogleMaps提供者。
但是,您可以根据需要添加或删除提供者,无论是链式提供者内部还是其旁边。以下是由该包提供的默认配置
<?php
use Map\Laravel\Providers\Yandex;
return [
/*
|--------------------------------------------------------------------------
| Providers
|--------------------------------------------------------------------------
|
*/
'providers' => [
Yandex::class => [
'key' => env('YANDEX_ROUTE_KEY', ''),
'proxy' => env('YANDEX_PROXY_IP', null)
]
]
];
支持的提供者
- Yandex
自定义
如果您想更改默认配置,请发布并编辑配置文件
php artisan vendor:publish --provider="Map\Laravel\MapServiceProvider" --tag="config"
使用方法
服务提供者初始化map
服务,可通过门面Map::...
或应用助手app('map')->...
访问。
构建路由
$way = app('map')->route(
(new RouteQuery())
->withThroughPoint(new Coordinate(56.991837, 60.477136))
->withThroughPoint(new Coordinate(56.907375, 60.780160))
->withThroughPoint(new Coordinate(58.201698, 68.253762))
);
结果将是坐标类的集合
{
'provided_by': ...,
'way_points': [
{
latitude:
longitude:
},
{
latitude:
longitude:
},
...
{
latitude:
longitude:
}
]
}
导出器
包提供导出器,旨在将某些对象转换为标准格式。
支持的导出器
- Keyhole Markup Language (KML)。 Keyhole Markup Language 是一种XML表示法,用于在基于Internet的二维地图和三维地球浏览器中表达地理注释和可视化。
$way = app('map')->route(
(new RouteQuery())
->withThroughPoint(new Coordinate(56.991837, 60.477136))
->withThroughPoint(new Coordinate(56.907375, 60.780160))
->withThroughPoint(new Coordinate(58.201698, 68.253762))
->withAvoidTollsRoads()
);
$kml = (new Kml())->dumpRoute('name', $way)