wm/map-multi-linestring

一个 Laravel Nova 字段。

v0.0.10 2024-08-20 12:56 UTC

README

Map Multi Linestring, awesome resource field for Nova

Version

需求

  • php: ^8
  • laravel/nova: ^4

安装

您可以通过 composer 将此包安装到使用 Nova 的 Laravel 应用中

composer require wm/map-multi-linestring

开发

在您想要开发的项目的根目录中创建一个 nova-components 文件夹。在内部克隆 map-multi-linestring。添加到 composer.json 文件的 repositories 数组属性中

        {
            "type": "path",
            "url": "./nova-components/map-multi-linestring"
        }

修改 composer.json 文件的 requires 对象属性

    "wm/map-multi-linestring": "*",

首次运行

在托管字段的存储库中运行

    cd vendor/laravel/nova && npm install

我们需要修改 composer.lock 的启动

    composer update wm/map-multi-linestring

在字段中运行

    npm install

使用

地图多线字符串

image

您可以在地图上显示一个地理位置(gist地理(MultiLineString,4326)区域)并在上传新的 MultiLineString 文件 (.GPX, .KML, .GEOJSON) 时更改它。要使用 Map Multi Linestring 功能,请包含 MapMultiLinestring 类并将其添加到资源的字段中。通过提供元数据(如初始地图中心、瓦片服务器 URL、版权文本、最小和最大缩放级别、默认缩放级别、用于指定 GraphHopper API URL 的 GraphHopper API URL 和 GraphHopper 路由配置文件)来自定义地图设置。默认值为此字段为 'foot',这意味着路由将针对步行进行优化。其他可用配置文件包括 'bike' 和 'hike'。

    use Wm\MapMultiLinestring\MapMultiLinestring;
    /**
     * Get the fields displayed by the resource.
     *
     * @param  \Laravel\Nova\Http\Requests\NovaRequest  $request
     * @return array
     */
    public function fields(NovaRequest $request)
    {
        return [
            ID::make()->sortable(),
                ...
            MapMultiLinestring::make('geometry')->withMeta([
                'center' => [42, 10],
                'attribution' => '<a href="https://webmapp.it/">Webmapp</a> contributors',
                'tiles' => 'https://api.webmapp.it/tiles/{z}/{x}/{y}.png',
                'minZoom' => 5,
                'maxZoom' => 17,
                'defaultZoom' => 10,
                'graphhopper_api' => 'https://graphhopper.webmapp.it/route',
                'graphhopper_profile' => 'hike'
            ]),
        ];
    }

配置

从 v1.4.0 版本开始,可以使用 Tab 类而不是数组来表示您的选项卡。