### Install Filament Pinpoint via Composer
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Install the package using Composer. This is the first step to integrate the component into your Laravel project.
```bash
composer require fahiem/filament-pinpoint
```
--------------------------------
### Full Pinpoint Configuration Example
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Configure the Pinpoint component with all available options, including default location, zoom, height, and fields for latitude, longitude, address, and more. Use this for comprehensive location input forms.
```php
use Fahiem\FilamentPinpoint\Pinpoint;
Pinpoint::make('location')
->label('Business Location')
->defaultLocation(-6.200000, 106.816666) // Jakarta
->defaultZoom(15)
->height(400)
->draggable()
->searchable()
->latField('lat')
->lngField('lng')
->addressField('address') // Auto-fill address field
->shortAddressField('short_address') // Auto-fill short address field (exclude province, city, district, village, and postal code)
->provinceField('province') // Auto-fill province field
->cityField('city') // Auto-fill city/county field
->districtField('district') // Auto-fill district field
->villageField('village') // Auto-fill village/district field
->postalCodeField('postal_code') // Auto-fill postal/zip code field
->countryField('country') // Auto-fill country field
->streetField('street') // Auto-fill street field
->streetNumberField('street_number') // Auto-fill street number field
->columnSpanFull()
```
--------------------------------
### Add New Language Translations
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Example of creating a new language file for custom translations. Place this file in `lang/vendor/filament-pinpoint/{locale}/pinpoint.php` to add support for a new locale.
```php
'Your translation...',
'use_my_location' => 'Your translation...',
'instructions' => 'Your translation...',
'loading_map' => 'Your translation...',
];
```
--------------------------------
### Indonesian Translation File
Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt
Example of an Indonesian translation file for Filament Pinpoint. Add or modify language files to support different locales.
```php
// lang/vendor/filament-pinpoint/id/pinpoint.php (Indonesian)
return [
'search' => 'Cari lokasi...',
'use_my_location' => 'Gunakan lokasi saya',
'instructions' => 'Klik pada peta atau seret penanda untuk mengatur lokasi. Gunakan kotak pencarian untuk menemukan alamat.',
'radius_instructions' => 'Seret tepi lingkaran untuk menyesuaikan radius.',
'loading_map' => 'Memuat peta...',
];
```
--------------------------------
### Filament Form Usage with Leaflet Provider
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Configure the Pinpoint component to use the 'leaflet' provider per field instance. This example also enables address field, draggable marker, and search functionality.
```php
Pinpoint::make('location')
->provider('leaflet')
->latField('lat')
->lngField('lng')
->addressField('address')
->draggable()
->searchable()
```
--------------------------------
### Configure Environment Variables
Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt
Set up the required API keys and provider settings in your .env file.
```php
// Publish config file (optional)
// php artisan vendor:publish --tag="filament-pinpoint-config"
// .env configuration for Google Maps provider (default)
GOOGLE_MAPS_API_KEY=your_api_key_here
GOOGLE_MAPS_DEFAULT_LAT=-6.200000
GOOGLE_MAPS_DEFAULT_LNG=106.816666
GOOGLE_MAPS_DEFAULT_ZOOM=15
GOOGLE_MAPS_DEFAULT_HEIGHT=500
// .env configuration for Leaflet provider (free, no API key)
PINPOINT_PROVIDER=leaflet
LEAFLET_TILE_URL=https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png
LEAFLET_TILE_URL_DARK=https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png
NOMINATIM_URL=https://nominatim.openstreetmap.org
```
--------------------------------
### Publish Configuration File
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Publish the Filament Pinpoint configuration file to your project's config directory using the Artisan command.
```bash
php artisan vendor:publish --tag="filament-pinpoint-config"
```
--------------------------------
### Implement Basic Location Picker
Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt
Add an interactive map field to a Filament form schema.
```php
use Fahiem\FilamentPinpoint\Pinpoint;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Form;
public static function form(Form $form): Form
{
return $form
->schema([
Pinpoint::make('location')
->label('Location')
->latField('lat')
->lngField('lng')
->draggable()
->searchable()
->columnSpanFull(),
TextInput::make('lat')
->label('Latitude')
->readOnly(),
TextInput::make('lng')
->label('Longitude')
->readOnly(),
]);
}
```
--------------------------------
### Configure Custom Marker Icons and Info Windows
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Use the pins method to define multiple map markers with custom icons or HTML-formatted info windows.
```php
PinpointEntry::make('locations')
->pins([
[
'lat' => -6.200000,
'lng' => 106.816666,
'label' => 'Main Office',
'icon' => 'https://example.com/custom-marker.png', // Custom icon URL
],
[
'lat' => -6.914744,
'lng' => 107.609810,
'label' => 'Warehouse',
'info' => '
Warehouse A
Open 24/7
', // Custom HTML
],
])
->columnSpanFull()
```
--------------------------------
### Configure PinpointEntry with Custom Icons and HTML
Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt
Use this to define map locations with custom marker icons and rich HTML info windows. The 'info' property overrides the default label in the info window popup.
```php
use Fahiem\FilamentPinpoint\PinpointEntry;
PinpointEntry::make('locations')
->label('Store Locations')
->pins([
[
'lat' => -6.200000,
'lng' => 106.816666,
'label' => 'Main Store',
'icon' => 'https://example.com/markers/store-icon.png', // Custom marker icon URL
],
[
'lat' => -6.914744,
'lng' => 107.609810,
'label' => 'Warehouse',
'info' => '', // Custom HTML info window content (overrides label)
],
[
'lat' => -7.250445,
'lng' => 112.768845,
'label' => 'Distribution Center',
'color' => 'orange',
'info' => '
Distribution Center
Handles all East Java shipments
',
],
])
->fitBounds(true)
->defaultZoom(10)
->height(450)
->columnSpanFull()
```
--------------------------------
### Enable Radius Support
Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt
Configure a radius field to allow users to define a service area by dragging the edge of a circle on the map.
```php
use FahiemilamentPinpoint
Pinpoint;
use Filament
Forms
Components
TextInput;
public static function form(Form $form): Form
{
return $form
->schema([
Pinpoint::make('location')
->label('Service Area')
->latField('lat')
->lngField('lng')
->radiusField('radius') // Database column for radius (in meters)
->defaultRadius(500) // Default 500 meters
->draggable()
->searchable()
->columnSpanFull(),
TextInput::make('lat')->label('Latitude')->readOnly(),
TextInput::make('lng')->label('Longitude')->readOnly(),
TextInput::make('radius')
->label('Radius (meters)')
->readOnly()
->helperText('Drag circle edge to resize'),
]);
}
```
--------------------------------
### Configure Google Maps API Key
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Provide your Google Maps API key in the .env file if you are using the 'google' provider. Ensure the necessary Maps JavaScript API, Places API, and Geocoding API are enabled.
```env
GOOGLE_MAPS_API_KEY=your_api_key_here
```
--------------------------------
### Publish Filament Pinpoint Translations
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Command to publish the package's translation files to your application's lang directory. This allows for customization of the package's language strings.
```bash
php artisan vendor:publish --tag="filament-pinpoint-translations"
```
--------------------------------
### Set Default Map Values via Environment Variables
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Configure default latitude, longitude, zoom level, and map height for Google Maps using environment variables.
```env
GOOGLE_MAPS_DEFAULT_LAT=-6.200000
GOOGLE_MAPS_DEFAULT_LNG=106.816666
GOOGLE_MAPS_DEFAULT_ZOOM=15
GOOGLE_MAPS_DEFAULT_HEIGHT=500
```
--------------------------------
### Configure Leaflet Optional Settings
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Optionally customize Leaflet tile server URLs for standard and dark modes, and set a custom Nominatim base URL for search and reverse geocoding.
```env
LEAFLET_TILE_URL=https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png
# Optional dark mode tile URL (e.g. CartoDB Dark)
LEAFLET_TILE_URL_DARK=https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png
# Nominatim base URL for search & reverse geocoding (default: nominatim.openstreetmap.org)
NOMINATIM_URL=https://nominatim.openstreetmap.org
```
--------------------------------
### Displaying Multiple Markers with PinpointEntry::pins()
Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt
Utilize PinpointEntry::make()->pins() to display multiple locations on a single map within Filament infolists. This method allows for customizable markers, colors, icons, and info windows.
```php
use Fahiem\
FilamentPinpoint\
PinpointEntry;
use Filament\
Infolists\
Infolist;
public static function infolist(Infolist $infolist): Infolist
{
return $infolist
->schema([
PinpointEntry::make('branches')
->label('All Branch Locations')
->pins([
[
'lat' => -6.200000,
'lng' => 106.816666,
'label' => 'Jakarta Head Office',
'color' => 'red', // Predefined colors: red, blue, green, yellow, purple, pink, orange, ltblue
],
[
'lat' => -6.914744,
'lng' => 107.609810,
'label' => 'Bandung Branch',
'color' => 'blue',
],
[
'lat' => -7.797068,
'lng' => 110.370529,
'label' => 'Yogyakarta Branch',
'color' => 'green',
],
[
'lat' => -7.250445,
'lng' => 112.768845,
'label' => 'Surabaya Branch',
'color' => 'purple',
],
])
->fitBounds() // Auto-zoom to show all markers
->height(500)
->columnSpanFull(),
]);
}
// Dynamic pins from database records
PinpointEntry::make('locations')
->pins(fn ($record) => $record->branches->map(fn ($branch) => [
'lat' => $branch->latitude,
'lng' => $branch->longitude,
'label' => $branch->name,
'color' => $branch->is_main ? 'red' : 'blue',
])->toArray())
->fitBounds()
->columnSpanFull()
```
--------------------------------
### Filament Pinpoint Configuration File
Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt
Customize map provider, API keys, Leaflet settings, and default map parameters by modifying this configuration file. Environment variables can override these settings.
```php
// config/filament-pinpoint.php
return [
/*
|--------------------------------------------------------------------------
| Map Provider
|--------------------------------------------------------------------------
| 'google' - Google Maps (requires API key, most accurate)
| 'leaflet' - OpenStreetMap + Nominatim (free, no API key)
*/
'provider' => env('PINPOINT_PROVIDER', 'google'),
/*
|--------------------------------------------------------------------------
| Google Maps API Key
|--------------------------------------------------------------------------
| Required APIs: Maps JavaScript API, Places API, Geocoding API
*/
'api_key' => env('GOOGLE_MAPS_API_KEY'),
/*
|--------------------------------------------------------------------------
| Leaflet Settings
|--------------------------------------------------------------------------
*/
'leaflet' => [
'tile_url' => env('LEAFLET_TILE_URL', 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'),
'tile_url_dark' => env('LEAFLET_TILE_URL_DARK', null), // Dark mode tiles
'tile_attribution' => env('LEAFLET_TILE_ATTRIBUTION', '© OpenStreetMap contributors'),
'nominatim_url' => env('NOMINATIM_URL', 'https://nominatim.openstreetmap.org'),
],
/*
|--------------------------------------------------------------------------
| Default Map Settings
|--------------------------------------------------------------------------
*/
'default' => [
'lat' => env('GOOGLE_MAPS_DEFAULT_LAT', -0.5050),
'lng' => env('GOOGLE_MAPS_DEFAULT_LNG', 117.1500),
'zoom' => env('GOOGLE_MAPS_DEFAULT_ZOOM', 13),
'height' => env('GOOGLE_MAPS_DEFAULT_HEIGHT', 400),
'radius' => env('GOOGLE_MAPS_DEFAULT_RADIUS', 500),
],
];
```
--------------------------------
### Basic Filament Form Usage (Google Maps)
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Integrate the Pinpoint component into a Filament form, specifying the 'location' field and linking it to 'lat' and 'lng' text input fields.
```php
use Fahiem\FilamentPinpoint\Pinpoint;
public static function form(Form $form): Form
{
return $form
->schema([
Pinpoint::make('location')
->label('Location')
->latField('lat')
->lngField('lng'),
TextInput::make('lat')
->label('Latitude')
->readOnly(),
TextInput::make('lng')
->label('Longitude')
->readOnly(),
]);
}
```
--------------------------------
### PinpointEntry Infolist Configuration
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Methods and pin customization options for the PinpointEntry infolist component, used for displaying read-only maps with markers.
```APIDOC
## PinpointEntry Infolist Methods
### Description
Configure the read-only map display and define markers for the PinpointEntry component.
### Pin Options
- **lat** (float) - Required - Latitude coordinate
- **lng** (float) - Required - Longitude coordinate
- **label** (string) - Optional - Marker title
- **color** (string) - Optional - Predefined color (red, blue, green, etc.)
- **icon** (string) - Optional - Custom marker icon URL
- **info** (string) - Optional - Custom HTML content for info window
### Available Methods
- **pins(array $pins)** - Set array of multiple markers.
- **fitBounds(bool $fit)** - Auto-zoom map to show all markers.
- **defaultLocation(float $lat, float $lng)** - Set default center location.
- **height(int $height)** - Set map height in pixels.
```
--------------------------------
### English Translation File
Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt
Default English translations for Filament Pinpoint UI elements. Customize these strings for your application's needs.
```php
// lang/vendor/filament-pinpoint/en/pinpoint.php
return [
'search' => 'Search for a location...',
'use_my_location' => 'Use my location',
'instructions' => 'Click on the map or drag the marker to set the location. Use the search box to find an address.',
'radius_instructions' => 'Drag the circle edges to adjust the radius.',
'loading_map' => 'Loading map...',
];
```
--------------------------------
### Define Database Migration for Locations
Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt
Create the necessary table schema to store latitude, longitude, and various address components for location auto-filling.
```php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::create('locations', function (Blueprint $table) {
$table->id();
$table->string('name');
// Core location fields
$table->decimal('lat', 10, 7)->nullable();
$table->decimal('lng', 10, 7)->nullable();
$table->integer('radius')->nullable(); // Radius in meters
// Address auto-fill fields
$table->text('address')->nullable(); // Full formatted address
$table->text('short_address')->nullable(); // Premise + route + street number
$table->string('street')->nullable(); // Street name
$table->string('street_number')->nullable(); // Street number
$table->string('province')->nullable(); // State/province
$table->string('city')->nullable(); // City/county
$table->string('district')->nullable(); // District
$table->string('village')->nullable(); // Village/sub-district
$table->string('postal_code')->nullable(); // Postal/ZIP code
$table->string('country')->nullable(); // Country name
$table->timestamps();
});
}
public function down(): void
{
Schema::dropIfExists('locations');
}
};
```
--------------------------------
### Configure Pinpoint with Reverse Geocoding
Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt
Use this configuration to map various address components to specific form fields for automatic population via reverse geocoding.
```php
use FahiemilamentPinpoint
Pinpoint;
use Filament
Forms
Components
TextInput;
use Filament
Forms
Components
Grid;
public static function form(Form $form): Form
{
return $form
->schema([
Pinpoint::make('location')
->label('Business Location')
->defaultLocation(-6.200000, 106.816666) // Jakarta coordinates
->defaultZoom(15)
->height(400)
->draggable()
->searchable()
->latField('lat')
->lngField('lng')
->addressField('address') // Full address
->shortAddressField('short_address') // Premise + route + street number
->streetField('street') // Street name
->streetNumberField('street_number') // Street number
->provinceField('province') // State/province (administrative_area_level_1)
->cityField('city') // City/county (administrative_area_level_2)
->districtField('district') // District (administrative_area_level_3)
->villageField('village') // Village/sub-district
->postalCodeField('postal_code') // Postal/ZIP code
->countryField('country') // Country name
->columnSpanFull(),
Grid::make(2)->schema([
TextInput::make('lat')->label('Latitude')->readOnly(),
TextInput::make('lng')->label('Longitude')->readOnly(),
TextInput::make('address')->label('Address')->readOnly()->columnSpanFull(),
TextInput::make('city')->label('City')->readOnly(),
TextInput::make('province')->label('Province')->readOnly(),
TextInput::make('postal_code')->label('Postal Code')->readOnly(),
TextInput::make('country')->label('Country')->readOnly(),
]),
]);
}
```
--------------------------------
### Customize Map Display Options
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Adjust map appearance and behavior using methods like defaultLocation, defaultZoom, and height.
```php
PinpointEntry::make('location')
->label('Business Location')
->defaultLocation(-6.200000, 106.816666) // Jakarta
->defaultZoom(15)
->height(400)
->latField('lat')
->lngField('lng')
->fitBounds(false) // Disable auto-fit bounds
->columnSpanFull()
```
--------------------------------
### Filament Infolist Usage with Leaflet Provider
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Display the Pinpoint location data in a Filament infolist using the PinpointEntry component, configured to use the 'leaflet' provider.
```php
PinpointEntry::make('location')
->provider('leaflet')
->latField('lat')
->lngField('lng')
->columnSpanFull()
```
--------------------------------
### Configure Pinpoint Provider in .env
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Set the default map provider to 'leaflet' for using OpenStreetMap tiles without an API key. This can be overridden per field instance.
```env
PINPOINT_PROVIDER=leaflet
```
--------------------------------
### Switch Map Provider
Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt
Override the default map provider to use either Leaflet or Google Maps on a per-field basis.
```php
use Fahiem\FilamentPinpoint\Pinpoint;
// Use Leaflet (free, no API key required)
Pinpoint::make('location')
->provider('leaflet')
->latField('lat')
->lngField('lng')
->addressField('address')
->draggable()
->searchable()
->columnSpanFull()
// Use Google Maps (requires API key)
Pinpoint::make('location')
->provider('google')
->latField('lat')
->lngField('lng')
->searchable()
->columnSpanFull()
```
--------------------------------
### Create Locations Table Migration
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Defines a database migration for creating a 'locations' table with columns for latitude, longitude, and address details. Ensure your table includes these columns for location data.
```php
Schema::create('locations', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->decimal('lat', 10, 7)->nullable();
$table->decimal('lng', 10, 7)->nullable();
$table->text('address')->nullable();
$table->text('short_address')->nullable();
$table->string('province')->nullable();
$table->string('city')->nullable();
$table->string('district')->nullable();
$table->string('village')->nullable();
$table->string('postal_code')->nullable();
$table->string('country')->nullable();
$table->string('street')->nullable();
$table->string('street_number')->nullable();
$table->timestamps();
});
```
--------------------------------
### Displaying a Single Read-Only Location with PinpointEntry
Source: https://context7.com/fahiem152/filament-pinpoint/llms.txt
Use PinpointEntry::make() to display a single location on a read-only map within Filament infolists. This is useful for view modes where users only need to see a location.
```php
use Fahiem\
FilamentPinpoint\
PinpointEntry;
use Filament\
Infolists\
Components\
TextEntry;
use Filament\
Infolists\
Infolist;
public static function infolist(Infolist $infolist): Infolist
{
return $infolist
->schema([
PinpointEntry::make('location')
->label('Business Location')
->latField('lat')
->lngField('lng')
->defaultZoom(15)
->height(400)
->columnSpanFull(),
TextEntry::make('address')
->label('Address'),
TextEntry::make('city')
->label('City'),
]);
}
// Using Leaflet provider for infolist
PinpointEntry::make('location')
->provider('leaflet')
->latField('lat')
->lngField('lng')
->height(350)
->columnSpanFull()
```
--------------------------------
### PinpointEntry for Read-Only Display (Multiple Markers)
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Display multiple locations on a single map using `PinpointEntry` with the `pins` option. This is useful for showing a collection of related locations in read-only views. Use `fitBounds()` to automatically adjust the map to show all markers.
```php
PinpointEntry::make('branches')
->label('Branch Locations')
->pins([
[
'lat' => -6.200000,
'lng' => 106.816666,
'label' => 'Jakarta Office',
'color' => 'red',
],
[
'lat' => -6.914744,
'lng' => 107.609810,
'label' => 'Bandung Office',
'color' => 'blue',
],
[
'lat' => -7.797068,
'lng' => 110.370529,
'label' => 'Yogyakarta Office',
'color' => 'green',
],
])
->fitBounds() // Auto-zoom to show all markers
->height(500)
->columnSpanFull()
```
--------------------------------
### Override Provider Per Field Instance
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Demonstrates how to set the map provider to 'leaflet' directly on a specific Pinpoint field instance within the form schema.
```php
Pinpoint::make('location')->provider('leaflet')
```
--------------------------------
### PinpointEntry for Read-Only Display (Single Marker)
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Use `PinpointEntry` to display a read-only map with a single marker in Filament Infolists. Configure the `latField` and `lngField` to specify the data source for the marker's coordinates.
```php
use Fahiem\FilamentPinpoint\PinpointEntry;
public static function infolist(Infolist $infolist):
return $infolist
->schema([
PinpointEntry::make('location')
->label('Location')
->latField('lat')
->lngField('lng')
->columnSpanFull(),
]);
```
--------------------------------
### Pinpoint Form Field Configuration
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Methods available for configuring the Pinpoint form field, including map providers, default locations, and address auto-fill field mapping.
```APIDOC
## Pinpoint Form Field Methods
### Description
Configure the behavior and data binding for the Pinpoint form field.
### Available Methods
- **provider(string $provider)** - Set map provider: 'google' or 'leaflet'.
- **defaultLocation(float $lat, float $lng)** - Set default center location.
- **defaultZoom(int $zoom)** - Set default zoom level.
- **height(int $height)** - Set map height in pixels.
- **latField(string $field)** - Field name for latitude.
- **lngField(string $field)** - Field name for longitude.
- **addressField(string $field)** - Field name for auto-fill address.
- **draggable(bool $draggable)** - Enable/disable marker dragging.
- **searchable(bool $searchable)** - Enable/disable search box.
```
--------------------------------
### Pinpoint with Radius Support
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Enable radius support for the Pinpoint component using `radiusField()`. This adds an interactive circle to the map for defining a radius, useful for location-based services. The radius value is saved in meters.
```php
Pinpoint::make('location')
->radiusField('radius') // 'radius' is the column name in your database
->defaultRadius(500) // Default 500 meters
```
--------------------------------
### Pinpoint Component within a Repeater
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Integrate the Pinpoint component into a Filament Repeater to manage multiple locations independently. Each repeater item will have its own map instance and associated fields for latitude, longitude, and address.
```php
use Fahiem\FilamentPinpoint\Pinpoint;
use Filament\Forms\Components\Repeater;
use Filament\Forms\Components\TextInput;
Repeater::make('branches')
->schema([
TextInput::make('branch_name')
->label('Branch Name')
->required(),
Pinpoint::make('location')
->label('Location')
->latField('latitude')
->lngField('longitude')
->addressField('address')
->draggable()
->searchable()
->height(300),
TextInput::make('latitude')
->label('Latitude')
->readOnly(),
TextInput::make('longitude')
->label('Longitude')
->readOnly(),
TextInput::make('address')
->label('Address')
->readOnly()
->columnSpanFull(),
])
->columns(2)
->columnSpanFull()
```
--------------------------------
### Disable Pinpoint Features
Source: https://github.com/fahiem152/filament-pinpoint/blob/main/README.md
Control the interactivity of the Pinpoint component by disabling features like marker dragging or the search box. Use `draggable(false)` to prevent marker movement and `searchable(false)` to hide the search input.
```php
Pinpoint::make('location')
->draggable(false) // Disable marker dragging
->searchable(false) // Hide search box
```
=== COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.