Changeset 53911 in spip-zone


Ignore:
Timestamp:
Oct 31, 2011, 4:07:38 PM (8 years ago)
Author:
lesage.sylvain@…
Message:

Ajout de la bounding box dans les options du formulaire d'edition d'un point.

A noter: on actualise les valeurs des champs lat et lon dans le formulaire associé a la saisie. A voir si on le fait dans tous les cas, ou seulement quand l'initialisation se fait par boundingbox. Il y a d'ailleurs éventuellement un probleme avec les connexions lentes: les deux champs se mettent a jour seulement quand la carte est chargée...

Pour l'utiliser, par exemple:<pre>
<BOUCLE_articles(ARTICLES){0,1}{!par date}>
#SET{options_bb_caranavi, #ARRAY{

sw_lat,-16.0547979018872,
sw_lon,-67.6812077324119,
ne_lat,-15.5573661360417,
ne_lon,-67.2448971414121,

}}
#FORMULAIRE_EDITER_GIS{'new', 'article', #ID_ARTICLE, , , #GET{options_bb_caranavi}}
</BOUCLE_articles>
</pre>

Location:
_plugins_/gis/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/gis/trunk/formulaires/editer_gis.php

    r53906 r53911  
    3030        if (is_numeric($options['zoom']) && intval($options['zoom'])==$options['zoom'])
    3131                $valeurs['zoom']=$options['zoom'];
     32                /* Bounding Box */
     33            if (is_numeric($options['sw_lat']))
     34                $valeurs['sw_lat']=$options['sw_lat'];
     35            if (is_numeric($options['sw_lon']))
     36                $valeurs['sw_lon']=$options['sw_lon'];
     37            if (is_numeric($options['ne_lat']))
     38                $valeurs['ne_lat']=$options['ne_lat'];
     39            if (is_numeric($options['ne_lon']))
     40                $valeurs['ne_lon']=$options['ne_lon'];
    3241        }
     42spip_log($valeurs,'quipus');
    3343        return $valeurs;
    3444}
  • _plugins_/gis/trunk/saisies/carte.html

    r53908 r53911  
    11[(#REM)
    22
    3     Saisie carte
     3        Saisie carte
    44
    5     Parametres optionnels:
     5        Parametres optionnels:
    66
    7     - lat = 48.3                    latitude du centre de la carte
    8     - lon = -4.7                    longitude du centre de la carte
    9     - zoom = 5                      zoom de la carte
     7        - lat = 48.3                    latitude du centre de la carte
     8        - lon = -4.7                    longitude du centre de la carte
     9        - zoom = 5                      zoom de la carte
     10        - sw_lat = lat - 10°            latitude du sud-ouest de la bounding box
     11        - sw_lon = lon - 10°            longitude du sud-ouest de la bounding box
     12        - ne_lat = lat + 10°            latitude du nord-est de la bounding box
     13        - ne_lon = lon + 10°            longitude du nord-est de la bounding box
    1014
    1115]
     
    1418[(#SET{init_lon,#ENV{lon,#CONFIG{gis/lon,0}}})]
    1519[(#SET{init_zoom,#ENV{zoom,#CONFIG{gis/zoom,0}}})]
     20[(#REM) On utilise la bounding box seulement si le centre n'a pas été donné et si les quatre valeurs de la bounding box sont renseignées
     21        Les valeurs par defaut sont "centre +/- 10°", ce qui est naze, mais c'est un cas normalement impossible
     22]
     23[(#ENV{lat}|ou{#ENV{lon}}|non|et{#ENV{sw_lat}}|et{#ENV{sw_lon}}|et{#ENV{ne_lat}}|et{#ENV{ne_lon}})
     24        #SET{utiliser_bb, oui}
     25        #SET{init_sw_lat,#ENV{sw_lat,#GET{lat}|moins{10}}}
     26        #SET{init_sw_lon,#ENV{sw_lon,#GET{lon}|moins{10}}}
     27        #SET{init_ne_lat,#ENV{ne_lat,#GET{lat}|plus{10}}}
     28        #SET{init_ne_lon,#ENV{ne_lon,#GET{lon}|plus{10}}}
     29]
    1630
    1731<li class="pleine_largeur editer editer_[(#ENV{nom})][ (#ENV{li_class})][ saisie_(#ENV{type_saisie})]"[ data-id="(#ENV{id_saisie})"]>
     
    8195                var map_container = 'map_[(#ENV{nom})]';
    8296                form_map = new mxn.Mapstraction(map_container,'[(#REM|gis_api_utilisee)]');
    83                 form_map.setCenterAndZoom(new mxn.LatLonPoint(#GET{init_lat},#GET{init_lon}),#GET{init_zoom});
     97                [(#GET{utiliser_bb}|non)
     98                form_map.setCenterAndZoom(new mxn.LatLonPoint([(#GET{init_lat})],[(#GET{init_lon})]),[(#GET{init_zoom})]);
     99                ]
     100                [(#GET{utiliser_bb}|oui)
     101                form_map.setBounds(new mxn.BoundingBox([(#GET{init_sw_lat})],[(#GET{init_sw_lon})],[(#GET{init_ne_lat})],[(#GET{init_ne_lon})]));
     102                // mettre à jour les champs de latitude et longitude quand la carte est chargée
     103                // a voir si on le fait dans tous les cas, pas seulement pour la boundingbox, comme pour le zoom
     104                form_map.load.addHandler(function(name, source, args) {
     105                        var center = source.getCenter();
     106                        $('#champ_#ENV{champ_lat,lat}').val(center.lat);
     107                        $('#champ_#ENV{champ_lon,lon}').val(center.lon);
     108                });             
     109                ]
    84110        // Pour l'API Openlayers, la methode n'existe pas
    85111        try {
Note: See TracChangeset for help on using the changeset viewer.