Map Field: Fall back to Leaflet.js when no Google API key is provided #1137
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I finally found some time to contribute an implementation for #613 🎉 Instead of adding an explicit
set_provider
method to theMap_Field
class, I ended up implementing the free mapping service as a fallback when no Google API key is provided, so the map field works out of the box for new users without an API key.The proposed implementation is backwards compatible and uses the wonderful Leaflet.js, as well as OpenStreetMap's Nominatim service for geocoding. According to my manual tests, Google Maps and Leaflet.js are interoperable with respect to positions and zoom levels. Hence, users can easily switch implementations by setting or removing the API key returned by the
carbon_fields_map_field_api_key
filter.Here's a
composer.json
snippet to quickly try out the PR: