适用于所有地图提供商的开发包

安装: 213

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 0

开放问题: 0

类型:

v1.9.0 2019-03-28 13:16 UTC

README

要求

  • PHP >= 7.1.3
  • Laravel >= 5.6

安装

  1. 使用composer安装此包
composer require snezhkoigor/map
  1. 如果您正在运行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)
        ]
    ]
];

支持的提供者

  1. 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:
        }
    ]
}

导出器

包提供导出器,旨在将某些对象转换为标准格式。

支持的导出器

  1. 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)