Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Google Map Laravel Package

egeloen/google-map

PHP 5.6+ Google Maps JavaScript API v3 integration. Build and render maps with configurable controls, overlays, events and services via helpers, plus easy API script rendering with your key.

View on GitHub
Deep Wiki
Context7

Google Map API v3 integration for PHP 5.6+

Frequently asked questions about Google Map
Can I use this package with Laravel 9+ (PHP 8.0+) despite its PHP 5.6+ requirement?
Yes, but you’ll need to mitigate compatibility risks. The package can still be integrated via Laravel’s service container, but you may encounter deprecated PHP functions or type mismatches. Use a wrapper class or polyfills like `nikic/php-parser` to abstract legacy code. Test thoroughly in your Laravel 9+ environment.
How do I load the Google Maps JavaScript API in Laravel’s asset pipeline (Mix/Vite)?
Use the `google-maps` npm package in your frontend build. Load the script dynamically in your Blade template or via Laravel Mix/Vite. The package’s `ApiHelper` generates the script tag with your API key, but ensure it’s bundled correctly to avoid conflicts with SPAs or SSR.
Does this package support Laravel’s Eloquent for storing map data (e.g., coordinates, addresses)?
No, the package is backend-agnostic. You’ll need to manually integrate Eloquent models to store location data. Use Eloquent relationships to fetch coordinates or addresses, then hydrate the map objects dynamically in your controllers or Blade views.
How can I handle map events (e.g., marker clicks) in Laravel with Livewire/Alpine.js?
Use Laravel Echo or Alpine.js to listen for map events. The package supports event binding, but you’ll need custom JavaScript to forward events to your backend. For Livewire, emit events via `$dispatch` and handle them in your Livewire component. For Alpine.js, use `x-on:click` or similar directives.
Is there built-in caching for Google API responses (e.g., geocoding, directions)?
No, the package doesn’t include caching. Implement Redis or Laravel’s cache system to store API responses. For geocoding, cache results by address or coordinates. Use Laravel’s queue system to offload heavy computations and cache responses for performance.
Will this package work with Laravel’s Inertia.js for SPA-like interactions?
Yes, but you’ll need to ensure the Google Maps JavaScript API is loaded client-side. Inertia.js shares Laravel’s backend logic, so you can use the package’s PHP helpers to generate map configurations, then render them in your Vue/React components. Handle dynamic updates via Inertia’s page props or API calls.
How do I manage Google Maps API keys securely in Laravel?
Store your API key in Laravel’s `.env` file (e.g., `GOOGLE_MAPS_API_KEY`). Inject the key into the `ApiHelperBuilder` via dependency injection or service container. Avoid hardcoding keys in Blade templates or frontend JavaScript.
Are there alternatives to this package for Laravel that support modern PHP versions?
Yes, consider `spatie/laravel-google-maps` or `michiellis/google-maps` for Laravel-specific packages with better PHP 8+ support. These may offer tighter Laravel integration (e.g., Eloquent models, caching) but lack the same level of JavaScript API abstraction as this package.
How do I test interactions between the PHP backend and JavaScript frontend?
Use Laravel’s HTTP tests to verify backend responses (e.g., API key rendering, map configurations). For frontend testing, use tools like Nightwatch.js or Cypress to simulate user interactions (e.g., map clicks, zoom changes). Mock Google API responses in tests to avoid rate limits.
Can I use this package for static maps (e.g., thumbnails) without the full JavaScript API?
Yes, the package includes a `StaticMapHelper` for generating static map images. Configure it with coordinates, markers, or overlays, then render the static URL. This avoids JavaScript dependencies but lacks interactivity. Use it for thumbnails, previews, or offline use cases.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
besmartand-pro/php-quality-config
sentix/ai-chatbot
codifyo/ts-generator-bundle
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor