1. Go to this page and download the library: Download spiritsaint/nova-map-field library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
spiritsaint / nova-map-field example snippets
return new class extends Migration
{
public function up()
{
Schema::create('locations', function (Blueprint $table) {
$table->id();
$table->string('title', 150);
$table->point('location')->nullable();
$table->polygon('area')->nullable();
$table->multiPolygon('areas')->nullable();
$table->timestamps();
});
}
};
namespace App\Models;
use Mostafaznv\NovaMapField\Traits\HasSpatialColumns;
class Location extends Model
{
use HasSpatialColumns;
}
namespace App\Models;
use MatanYadaev\EloquentSpatial\Objects\MultiPolygon;
use MatanYadaev\EloquentSpatial\Objects\Point;
use MatanYadaev\EloquentSpatial\Objects\Polygon;
class Location extends Model
{
use HasSpatialColumns;
protected $casts = [
'location' => Point::class,
'area' => Polygon::class,
'areas' => MultiPolygon::class
];
}
namespace App\Nova\Resources;
use Mostafaznv\NovaMapField\Fields\MapMultiPolygonField;
use Mostafaznv\NovaMapField\Fields\MapPointField;
use Mostafaznv\NovaMapField\Fields\MapPolygonField;
class Location extends Resource
{
public function fields(Request $request): array
{
return [
MapPointField::make('location'),
MapPolygonField::make('area'),
MapMultiPolygonField::make('areas'),
];
}
}
namespace App\Nova\Resources;
use App\Nova\Resource;
use Illuminate\Http\Request;
use Laravel\Nova\Fields\ID;
use Laravel\Nova\Fields\Text;
use App\Models\Location as Model;
use Mostafaznv\NovaMapField\DTOs\MapSearchBoxType;
use Mostafaznv\NovaMapField\DTOs\MapSearchProvider;
use Mostafaznv\NovaMapField\Fields\MapPointField;
class Location extends Resource
{
public static string $model = Model::class;
public function fields(Request $request): array
{
return [
ID::make()->sortable(),
Text::make('Title')
->sortable()
->rules('nLength(4)
->searchAutocompleteTimeout(500)
->searchLanguage('fa-IR')
->searchPlaceholder('Placeholder ...')
->searchBoxType(MapSearchBoxType::BUTTON())
->searchResultLimit(3)
->searchResultKeepOpen(true)
->