Nova Mapbox Shape Field with Vue

Nova Mapbox Shape Field

Requirements

  • php: >=8.0
  • laravel/nova: ^4.1

Features

  • Shows a geo shape with drawing capabilities

Installation

Install the package in a Laravel Nova project via Composer:

composer require elbgoods/nova-mapbox-shape-field

Usage

Expects a mapbox access-token specified in config/services.php:

<?php

return [
    'mapbox' => [
        'key' => env('MAPBOX_KEY', 'your-default-key'),
    ],

use Elbgoods\NovaMapboxShapeField\MapboxShapeField;

public function fields(Request $request)
{
    return [
        MapboxShapeField::make('Geometry') // Postgres Geometry Column
            ->latitude($this->latitude)
            ->longitude($this->longitude)
            ->geoJson($this->getGeoJson())
            ->zoom(8),
    ];
}

    public function getGeoJson(): array
    {
        if ($this->geometry) {
            $geometry = $this->getGeometry(); // Brick\Geo\Geometry

            return [
                'type'        => $geometry->geometryType(),
                'coordinates' => $geometry->toArray(),
            ];
        }

        return [];
    }

Screenshot

License

This project is open-sourced software licensed under the MIT license.

GitHub

View Github