source: plugins_spip/diogene_complements/diogene_geo/formulaires/diogene_ajouter_medias_geo.html @ 4932

Last change on this file since 4932 was 4932, checked in by kent1, 9 years ago

Hop ... on joue plus finement avec le géocoder

Et on enregistre l'adresse si présente

Et un fichier +répertoire non nécessaire

File size: 5.1 KB
Line 
1#CACHE{0}
2
3<li class="fieldset diogene_geo" id="diogene_geo">
4<fieldset>
5        <h3 class="legend"><:diogene_geo:form_legend:></h3>
6        <ul>
7                [(#ENV{id_gis}|oui)
8                        [(#SAISIE{case, gis_supprimer,
9                                label=<:diogene_geo:label_supprimer_gis:>})]
10                ]
11                <li style="padding:0" class="editer editer_carte">
12                        <div id="geomap" name="formMap" style="width: 100%; height: 350px"></div>
13                                <script type="text/javascript">
14                                <!--
15                                var form_map;
16                                [(#ENV{recherche}|!={non}|oui|et{#CONFIG{gis/geocoder}|oui})
17                                [(#SET{geocoder,oui})]
18                                var geocoder;]
19                               
20                                (function($){
21                                       
22                                        var maj_inputs = function(map,pos) {
23                                                var zoom = map.getZoom();
24                                                $("#champ_lat").val(pos.lat);
25                                                $("#champ_lon").val(pos.lon);
26                                                $("#champ_zoom").val(zoom);
27                                        }
28                                       
29                                        [(#GET{geocoder}|oui)
30                                        function geocode(address) {
31                                                form_map.setCenterAndZoom(address.point, 15);
32                                                geocode_marker = new mxn.Marker(address.point);
33                                                var info = address.locality + ", " + address.region + ", " + address.country;
34                                                geocode_marker.setInfoBubble(info);
35                                                form_map.removeAllMarkers();
36                                                form_map.addMarker(geocode_marker);
37                                                geocode_marker.openBubble();
38                                                maj_inputs(form_map,address.point);
39                                                if($('#champ_gis_titre').val() == ''){
40                                                        $('#champ_gis_titre').val(info);
41                                                }
42                                                if(address.street != ''){
43                                                        $('#champ_adresse').val(address.street)
44                                                }
45                                                if(address.postal_code != ''){
46                                                        $('#champ_code_postal').val(address.postal_code)
47                                                }
48                                                if(address.locality != ''){
49                                                        $('#champ_ville').val(address.locality)
50                                                }
51                                                if(address.region != ''){
52                                                        $('#champ_region').val(address.region)
53                                                }
54                                                if(address.country != ''){
55                                                        $('#champ_pays').val(address.country)
56                                                }
57                                        }]
58                               
59                                        var init_map = function() {
60                                                // creer la carte
61                                                var map_container = 'geomap';
62                                                form_map = new mxn.Mapstraction(map_container,'#CONFIG{gis/api,openlayers}');
63                                                form_map.setCenterAndZoom(new mxn.LatLonPoint(#ENV{lat,#CONFIG{gis/lat,0}},#ENV{lon,#CONFIG{gis/lon,0}}),#ENV{zoom,#CONFIG{gis/zoom,0}});
64                                                form_map.addControls({
65                                                        pan: true,
66                                                        zoom: '#CONFIG{gis/control,large}',
67                                                        map_type: true
68                                                });
69                                                [(#GET{geocoder}|oui)
70                                                // geocoder
71                                                geocoder = new mxn.Geocoder('#CONFIG{gis/api,openlayers}',geocode);]
72                                               
73                                                [(#ENV{lat}|oui)
74                                                point = new mxn.LatLonPoint([(#ENV{lat})],[(#ENV{lon})]);
75                                                marker = new mxn.Marker(point);
76                                                form_map.addMarker(marker);]
77                                               
78                                                // mettre a jour les coordonnees quand on clique la carte
79                                                form_map.click.addHandler(function(name, source, args) {
80                                                        var pos = args.location;
81                                                        form_map.removeAllMarkers();
82                                                        marker = new mxn.Marker(pos);
83                                                        marker.setDraggable(true);
84                                                        form_map.addMarker(marker);
85                                                        form_map.setCenter(pos,{pan:true});
86                                                        maj_inputs(form_map,pos);
87                                                });
88                                               
89                                                // mettre à jour le zoom quand on le modifie
90                                                form_map.changeZoom.addHandler(function(name, source, args) {
91                                                        var zoom = source.getZoom();
92                                                        $("#champ_zoom").val(zoom);
93                                                });
94                                               
95                                                [(#GET{geocoder}|oui)
96                                                // geocoder si clic...
97                                                $('a#gis_rechercher').css("cursor","pointer").click(function(){
98                                                        var address = {};
99                                                        address.address = $("#champ_gis_adresse").attr("value");
100                                                        geocoder.geocode(address);
101                                                });
102                               
103                                                // ne pas soumettre le formulaire si on presse Entree depuis le champ de recherche
104                                                $('#champ_gis_adresse').keypress(function(e){
105                                                        if (e.which == 13) {
106                                                                $('a#gis_rechercher').trigger("click");
107                                                                return false;
108                                                        }
109                                                });]
110                                               
111                                                $('#champ_gis_supprimer').change(function(){
112                                                        if($(this).is(':checked')){
113                                                                $('#diogene_geo li').not('.editer_gis_supprimer').slideUp();
114                                                        }else{
115                                                                $('#diogene_geo li').not('.editer_gis_supprimer').slideDown();
116                                                        }
117                                                });
118                                        };
119                               
120                                        $(function(){
121                                                init_map();
122                                                onAjaxLoad(init_map);
123                                        });
124                                       
125                                })(jQuery);
126                                -->
127                                </script>
128                        </li>
129                [(#SAISIE{hidden,id_gis})]
130                [(#GET{geocoder}|oui)
131                <li class="rechercher_adresse">
132                        <label for="champ_gis_adresse"><:gis:label_rechercher_address:></label>
133                        <input type="text" class="text nomulti" name="champ_gis_adresse" id="champ_gis_adresse" value="" />
134                        <a id="gis_rechercher"><:info_rechercher:></a>
135                </li>]
136                [(#SAISIE{input,lat,
137                        label=<:gis:lat:>,
138                        class=nomulti,
139                        obligatoire=oui})]
140                [(#SAISIE{input,lon,
141                        label=<:gis:lon:>,
142                        class=nomulti,
143                        obligatoire=oui})]
144                [(#SAISIE{input,zoom,
145                        label=<:gis:zoom:>,
146                        size=2,
147                        maxlength=2,
148                        class=nomulti,
149                        obligatoire=oui})]
150                [(#SAISIE{input,gis_titre,
151                        label=<:info_titre:>,
152                        obligatoire=oui})]
153                [(#SAISIE{textarea,gis_descriptif,
154                        label=<:info_descriptif:>,
155                        rows=5})]
156                [(#CONFIG{gis/adresse}|=={on}|oui)
157                        [(#SAISIE{input,adresse,
158                                label=<:gis:label_adress:>})]
159                        [(#SAISIE{input,code_postal,
160                                label=<:gis:label_code_postal:>})]
161                        [(#SAISIE{input,ville,
162                                label=<:gis:label_ville:>})]
163                        [(#SAISIE{input,region,
164                                label=<:gis:label_region:>})]
165                        [(#SAISIE{input,pays,
166                                label=<:gis:label_pays:>})]
167                ]
168        </ul>
169</fieldset>
170</li>
Note: See TracBrowser for help on using the repository browser.