nucleos/maps-bundle

This bundle provides simple map rendering in symfony application.

3.4.0 2024-08-14 17:25 UTC

README

Latest Stable Version Latest Unstable Version License

Total Downloads Monthly Downloads Daily Downloads

Continuous Integration Code Coverage Type Coverage

This bundle provides simple map rendering in symfony application.

Installation

Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:

composer require nucleos/maps-bundle

composer require geocoder-php/nominatim-provider # if you want OpenStreetMaps Geocoder

Enable the Bundle

Then, enable the bundle by adding it to the list of registered bundles in config/bundles.php file of your project:

// config/bundles.php

return [
    // ...
    Nucleos\MapsBundle\NucleosMapsBundle::class => ['all' => true],
];

Configure the Bundle

Create a configuration file called nucleos_maps.yaml and define geocoders:

# config/packages/nucleos_maps.yaml

bazinga_geocoder:
  providers:
    nominatim:
        factory: Bazinga\GeocoderBundle\ProviderFactory\NominatimFactory
        cache: 'cache.geocoder' # PSR16 Cache pool
        cache_lifetime: 3600
        cache_precision: 4

nucleos_maps:
    geocoder:
        service: 'bazinga_geocoder.provider.nominatim'

Usage

If you want dynamic address resultion:

{# template.twig #}

{{ sonata_block_render({ 'type': 'nucleos_maps.block.map' }, {
    'address': 'Hamburg',
    'service': 'openstreetmap'
}) }}

If you know the exact coordinates:

{# template.twig #}

{{ sonata_block_render({ 'type': 'nucleos_maps.block.map' }, {
    'longitude': '9.993682',
    'latitude': '53.551086',
    'service': 'openstreetmap'
}) }}

Assets

The assets can be loaded via stimulus. When using webpack-encore with enableStimulusBridge everything is pre-configured for you.

License

This bundle is under the MIT license.