- What does mauricewijnia/nova-maps-address do?
- It is a Laravel Nova form field that adds a Google Maps-based address input to your admin panels. Users can search with Places autocomplete, pick a location on a map, and store the selected address together with its coordinates. It is a presentation-layer package, so it only touches the database columns you bind to the field.
- How do I install mauricewijnia/nova-maps-address in Laravel Nova?
- Install it with Composer and add the field to the fields() method of your Nova resource, which is a single line of code. The real setup effort is on Google Cloud: enable the Maps JavaScript API and Places API, attach billing, and create a restricted key to pass to the field. Pin ^2.0.1 or an exact 2.0.1 so no environment can resolve to the asset-less 2.0.0 release.
- Which Laravel, PHP, and Nova versions does this package support?
- It presupposes a Laravel application with Nova installed and PHP 8.x. Exact constraints live in the package composer.json, and because v2.0.0 was a major bump, Nova version support may have changed between v1 and v2. Check composer.json and the changelog before committing, particularly if you are on Nova 5, and remember that the prebuilt Vue front end must match your Nova major.
- Do I need a Google Maps API key, and which APIs must I enable?
- Yes, the field will not render without a valid Google Maps key. You need a Google Cloud project with billing enabled, with the Maps JavaScript API and Places API turned on. Autocomplete is a billable SKU, so cost scales with admin form usage rather than only production traffic.
- How should I restrict my Google Maps API key for this field?
- The key is passed to the browser so the map and autocomplete can render client-side, which means it must be locked down. Apply an HTTP-referrer restriction for your Nova host and an API restriction limited to the Maps JavaScript and Places APIs. Do not deploy an unrestricted key, and rotate it if it has ever been exposed.
- How are addresses and latitude/longitude stored in the database?
- You bind the field to your own columns, so the storage format is whatever you configure in the resource. Address components can be mapped to discrete columns such as street, city, and postcode, with lat/lng stored alongside them. The v2 format may differ from v1, so validate your mappings against the schema and any existing records before migrating.
- Does nova-maps-address make server-side geocoding requests?
- Based on the available evaluation, address resolution happens client-side through the Google Maps JavaScript and Places APIs inside the browser. No server-side geocoding call is documented for the package. Verify this against the source if server-side caching, billing, or API key secrecy matters to your setup.
- How do I migrate from v1 to v2 of mauricewijnia/nova-maps-address?
- Treat it as a project rather than a routine bump. Diff the changelog, expect Nova-major alignment plus possible namespace and config key changes, and re-verify every resource that uses the field. Data already stored in the v1 format should also be checked, since a formal migration guide is not documented in the release notes.
- Is v2.0.0 of this Nova field broken, and should I pin 2.0.1?
- Yes, pin ^2.0.1 or an exact 2.0.1. The sole change in 2.0.1 was adding the built assets, which means 2.0.0 shipped without the compiled front-end bundle and renders a non-functional field. If 2.0.0 is deployed in any environment, treat it as a defect rather than a normal upgrade.
- Is mauricewijnia/nova-maps-address production-ready and actively maintained?
- It is usable for internal Nova admin tooling where an operator captures a normalised address and coordinates, but understand the trade-offs. It is a single-maintainer package with no SLA, a low release cadence, and no visible test signal in the release notes. The manual asset build behind the 2.0.0 problem suggests a fragile publish process, so pin exact versions and smoke-test every upgrade, and consider a standalone Places integration if you need public-facing forms or want to avoid Google dependencies.