traineratwot/filament-openstreetmap

此包已被弃用且不再维护。未建议替代包。

这是我创建的 filament-openstreetmap 包

1.2.2 2024-02-05 07:37 UTC

This package is auto-updated.

Last update: 2024-09-18 14:07:52 UTC


README

Latest Version on Packagist

Total Downloads

向 filament 表单添加 openstreetmap 字段

完整的免费地图 API

界面

2024-01-19_09-54-03

在数据库中如何查看

NVIDIA_Share_Yn8wCeCsJf

安装

您可以通过 composer 安装此包

composer require traineratwot/filament-openstreetmap

用法

使用迁移创建模型

return new class extends Migration {
    public function up(): void
    {
        Schema::create('map_points', function (Blueprint $table) {
            $table->id();

            $table->point('point')->nullable(); // for Point type in Laravel 10
            $table->geography('point', 'point', 0)->nullable(); // for Point type in Laravel 11

            $table->string('point_string')->nullable(); // for String type
            $table->json('point_array')->nullable(); // for Array type
            $table->timestamps();
        });
    }

    public function down(): void
    {
        Schema::dropIfExists('map_points');
    }
};
namespace App\Models;

use MatanYadaev\EloquentSpatial\Objects\Point;
use Illuminate\Database\Eloquent\Model;

class MapPoint extends Model
{

    protected $casts = [
        'point' => Point::class, // Important for Point type
        'point_array' => 'array', // Important for Array type
    ];
    
    ...
}

创建 filament 资源

<?php

namespace App\Filament\Resources;

use Traineratwot\FilamentOpenStreetMap\Forms\Components\MapInput;


class MapPointResource extends Resource
{
    protected static ?string $model = MapPoint::class;

    public static function form(Form $form): Form
    {
        return $form
            ->schema([
                MapInput::make('point')
                    ->saveAsPoint() // Important for Point type
                    ->srid(4326) // Change srid for Point
                    ->placeholder('Choose your location')
                    ->coordinates(37.619, 55.7527) // start coordinates
                    ->rows(10) // height of map
                ,

                MapInput::make('point_string')
                    ->saveAsString() // default 
                    ->placeholder('Choose your location')
                    ->coordinates(37.619, 55.7527) // start coordinates
                    ->rows(10) // height of map
                ,

                MapInput::make('point_array')
                    ->saveAsArray() // Important for Array type
                    ->placeholder('Choose your location')
                    ->coordinates(37.619, 55.7527) // start coordinates
                    ->rows(10) // height of map
                ,

              ]);
    }
...
}

变更日志

请参阅变更日志了解最近更改的详细信息。

贡献

请参阅贡献指南以获取详细信息。

安全漏洞

请查阅我们的安全策略了解如何报告安全漏洞。

鸣谢

许可

MIT 许可证(MIT)。有关更多信息,请参阅许可文件

使用的包

composer: matanyadaev/laravel-eloquent-spatial
npm: ol
npm: ol-geocoder