Project

General

Profile

Evolution #1489

Plusieurs membres dans une même commune

Added by Frederic CROZET about 1 year ago. Updated about 1 month ago.

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

100%

Estimated time:
Vote:

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

#1

Updated by Guillaume Agnieray about 1 month 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}
    
#2

Updated by Frederic CROZET about 1 month ago

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

#3

Updated by Guillaume Agnieray about 1 month 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 ;)

#4

Updated by Anonymous about 1 month ago

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

Also available in: Atom PDF