Project

General

Profile

Actions

Evolution #1489

closed

Plusieurs membres dans une même commune

Added by Frederic CROZET almost 2 years ago. Updated 8 months ago.

Status:
Fermé
Priority:
Normal
Assignee:
-
Start date:
09/20/2020
Due date:
% Done:

100%

Estimated time:

Description

[ Dans Page Publique - Carte ]
Je ne me rends pas trop compte de la difficulté pour réaliser ce souhait...
Mais ce serait cool, de pouvoir visualiser le nombre d'adhérent d'une même commune avec par exemple un "+2" pour 2 membres à coté de la punaise sur la carte.
Car actuellement, seulement le dernier membre inscrit est visible.
Je trouve cette carte très visuelle pour connaitre l'impact de notre association sur les communes environnantes et très utile pour solliciter ses communes (aides financière, aides matériels, etc.) ;)


Files

Actions #1

Updated by Guillaume Agniéray 11 months ago

Étant donné que le nom de l'adhérent et son pseudo sont affichés dans la popup, il serait effectivement utile de faire ainsi.

Heureusement ç'est réalisable facilement grâce à un plugin pour la librairie affichant la carte : http://leaflet.github.io/Leaflet.markercluster/

Voir le patch ci-joint.

En attendant que cette fonction soit intégrée au plugin, l'ajouter sur une installation existante (version 1.5.0) peut se faire assez facilement :

  • leaflet.markercluster.js
  • MarkerCluster.css
  • MarkerCluster.Default.css
  • Modifier le fichier headers.tpl dans le dossier templates du plugin
    Remplacer la dernière ligne {/if} par :
    {else}
            <link rel="stylesheet" type="text/css" href="{path_for name="plugin_res" data=["plugin" => $module_id, "path" => "leaflet-markercluster/MarkerCluster.css"]}"/>
            <link rel="stylesheet" type="text/css" href="{path_for name="plugin_res" data=["plugin" => $module_id, "path" => "leaflet-markercluster/MarkerCluster.Default.css"]}"/>
    {/if}
    
  • Modifier le fichier common_scripts.tpl dans le dossier templates du plugin
    Ajouter la ligne suivante à la ligne 4 ( avant <script type="text/javascript">) :
    <script type="text/javascript" src="{path_for name="plugin_res" data=["plugin" => $module_id, "path" => "leaflet-markercluster/leaflet.markercluster.js"]}"></script>
    
  • Modifier le fichier maps.tpl dans le dossier templates du plugin
    Le plus simple est de remplacer intégralement le contenu de ce fichier par
    {extends file="page.tpl"}
    {block name="content"}
    <section>
        <div id="map"></div>
    </section>
    {include file='file:[maps]common_html.tpl'}
    {/block}
    
    {block name="javascripts"}
    {include file='file:[maps]common_scripts.tpl'}
    <script type="text/javascript">
        var _mapsBinded = function(map)
        {
            var _markers = [];
    {foreach $list as $l}
        {if isset($l.company) and $l.company neq ''}
            {assign var=icon value='galetteProIcon'}
        {else}
            {assign var=icon value='galetteIcon'}
        {/if}
            _member = [{$l.lat}, {$l.lng}, {$icon}, '<p><strong>{$l.name|escape}</strong>{if $l.nickname neq ''} {_T string="aka" domain="maps" escape="js"} <em>{$l.nickname|escape}</em>{/if}{if isset($l.company)}<br/>{$l.company|escape}{/if}</p>'];
            _markers.push(_member);
    {/foreach}
            var _group = L.markerClusterGroup();
            for (var i = 0; i < _markers.length; i++) {
                var _a = _markers[i];
                var _title = _a[3];
                var _icon = _a[2];
                var _marker = L.marker(new L.LatLng(_a[0], _a[1]), { icon: _icon });
                _marker.bindPopup(_title);
                _group.addLayer(_marker);
            }
            map.addLayer(_group).fitBounds(
                _group.getBounds(), {
                    padding: [50, 50],
                    maxZoom: 12
                }
            );
        }
    </script>
    {/block}
    
Actions #2

Updated by Frederic CROZET 11 months ago

Hello,
J'ai testé le patch avec la version galette v0.9.4.2 et cela fonctionne parfaitement!

Actions #3

Updated by Guillaume Agniéray 11 months ago

Petite correction sur les consignes pour une installation existante.
Le lien vers l'archive du plugin markercluster est obsolète.
La dernière version téléchargeable sur github est la suivante : https://github.com/Leaflet/Leaflet.markercluster/archive/v1.4.1.zip ;)

Actions #4

Updated by Anonymous 11 months ago

  • Status changed from Nouveau to Résolu
  • % Done changed from 0 to 100
Actions #5

Updated by Johan Cwiklinski 8 months ago

  • Status changed from Résolu to Fermé
Actions

Also available in: Atom PDF