Open Street Map
CommunityAdd form field with Open Street Map for write point to database
filament/
namespace. Review the source and install at your own risk. Found
malware or an unresolved security issue the author won't
address?
Report it
.
Author:
Traineratwot
Documentation
- Interface
- How it view in database
- Installation
- Usage
- Changelog
- Contributing
- Security Vulnerabilities
- Credits
- License
- Used packages
Add openstreetmap field to filament form
Full free map API
#Interface
#How it view in database
#Installation
You can install the package via composer:
composer require traineratwot/filament-openstreetmap
#Usage
Make model with migration
return new class extends Migration {
public function up(): void
{
Schema::create('points', function (Blueprint $table) {
$table->id();
$table->string('point')->nullable();
$table->json('point_array')->nullable();
$table->timestamps();
$table->softDeletes();
});
}
public function down(): void
{
Schema::dropIfExists('points');
}
};
namespace App\Models;
use MatanYadaev\EloquentSpatial\Objects\Point;
use Illuminate\Database\Eloquent\Model;
class Point extends Model
{
use SoftDeletes;
protected $guarded = ['id'];
protected function casts()
{
return [
'point' => PointCast::class,
'point_array' => PointCast::class . ':' . PointFormat::ARRAY->value ,
];
}
}
Make filament resource
<?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(Schema $schema): Schema
{
return $schema
->components([
MapInput::make('point')
->columnSpan(2)
->saveFormat(PointFormat::WKT)
,
MapInput::make('point_array')
->saveFormat(PointFormat::ARRAY)
,
TextEntry::make('created_at')
->label('Created Date')
->dateTime(),
TextEntry::make('updated_at')
->label('Last Modified Date')
->dateTime(),
]);
}
}
You can save in database in thar formats
foreach (PointFormat::cases() as $p){
dump($p->getExample());
}
# $point = new Point(55.7558, 37.6173);
# return $point->format(PointFormat::URL_YANDEX);
"55.7558,37.6173" // app/Console/Commands/DevTestCommand.php:17
"37.6173,55.7558" // app/Console/Commands/DevTestCommand.php:17
"POINT(37.6173 55.7558)" // app/Console/Commands/DevTestCommand.php:17
"{"type":"Point","coordinates":[37.6173,55.7558]}" // app/Console/Commands/DevTestCommand.php:17
"55°45'20.88"N 37°37'2.28"E" // app/Console/Commands/DevTestCommand.php:17
"55.755800, 37.617300" // app/Console/Commands/DevTestCommand.php:17
"https://www.google.com/maps/search/?api=1&query=55.7558,37.6173" // app/Console/Commands/DevTestCommand.php:17
"https://www.openstreetmap.org/?mlat=55.7558&mlon=37.6173#map=15/55.7558/37.6173" // app/Console/Commands/DevTestCommand.php:17
"https://yandex.ru/maps/?pt=37.6173,55.7558&z=15&l=map" // app/Console/Commands/DevTestCommand.php:17
"{"latitude":55.7558,"longitude":37.6173}" // app/Console/Commands/DevTestCommand.php:17
"[37.6173,55.7558]" // app/Console/Commands/DevTestCommand.php:17
#Changelog
Please see CHANGELOG for more information on what has changed recently.
#Contributing
Please see CONTRIBUTING for details.
#Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
#Credits
#License
The MIT License (MIT). Please see License File for more information.
#Used packages
composer: matanyadaev/laravel-eloquent-spatial
npm: ol
npm: ol-geocoder
Featured Plugins
A selection of plugins curated by the Filament team
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
Filament
Spotlight Pro
Browse your Filament Panel with ease. Filament Spotlight Pro adds a Spotlight/Raycast like Command Palette to your Filament Panel.
Dennis Koch
Custom Fields
Eliminate custom field migrations forever. Let your users create and manage form fields directly in Filament admin panels with 20+ built-in field types, validation, and zero database changes.
Relaticle