Projet

Général

Profil

Actions

Evolution #1489

fermé

Plusieurs membres dans une même commune

Ajouté par Frederic CROZET il y a plus de 3 ans. Mis à jour il y a plus de 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Début:
20/09/2020
Echéance:
% réalisé:

100%

Temps estimé:

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.) ;)


Fichiers

Mis à jour par Guillaume AGNIERAY il y a plus de 2 ans

É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}
    

Mis à jour par Frederic CROZET il y a plus de 2 ans

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

Mis à jour par Guillaume AGNIERAY il y a plus de 2 ans

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 ;)

Mis à jour par Anonyme il y a plus de 2 ans

  • Statut changé de Nouveau à Résolu
  • % réalisé changé de 0 à 100

Mis à jour par Johan Cwiklinski il y a plus de 2 ans

  • Statut changé de Résolu à Fermé
Actions

Formats disponibles : Atom PDF