Changeset 49788 in spip-zone


Ignore:
Timestamp:
Jul 20, 2011, 12:35:42 PM (9 years ago)
Author:
kent1@…
Message:

Pouvoir avoir un point précis même avec le geocodeur d'utilisé

File:
1 edited

Legend:

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

    r49684 r49788  
    44<!--
    55var form_map;
     6var annuler_geocoder = 0;
    67[(#ENV{recherhce}|!={non}|oui|et{#CONFIG{gis/geocoder}|oui})
    78[(#SET{geocoder,oui})]
     
    1011(function($){
    1112       
    12         var maj_inputs = function(map,data) {
     13        var maj_inputs = function(map,data,action) {
     14                [(#GET{geocoder}|oui)
     15                if (action != 'geocoding') {
     16                        var f = geocoder.geocode(data);
     17                }]
    1318                var zoom = map.getZoom();
    1419                $("#champ_zoom").val(zoom);
    15                 [(#GET{geocoder}|oui)
    16                         $("#champ_lat").val(data.point.lat);
    17                         $("#champ_lon").val(data.point.lon);
    18                         $('#champ_adresse').val(data.street);
    19                         $('#champ_code_postal').val(data.postcode);
    20                         $('#champ_ville').val(data.locality);
    21                         $('#champ_region').val(data.region);
    22                         $('#champ_pays').val(data.country);
    23                 ][(#GET{geocoder}|non)
     20                if(action == 'click'){
    2421                        $("#champ_lat").val(data.lat);
    2522                        $("#champ_lon").val(data.lon);
    26                 ]
     23                        annuler_geocoder = 1;
     24                        form_map.setCenter(data);
     25                        marker = new mxn.Marker(data);
     26                }
     27                else if(annuler_geocoder != 1){
     28                        if(data.point == 'undefined'){
     29                                $("#champ_lat").val(data.lat);
     30                                $("#champ_lon").val(data.lon);
     31                                form_map.setCenter(data);
     32                                marker = new mxn.Marker(data);
     33                        }else{
     34                                $("#champ_lat").val(data.point.lat);
     35                                $("#champ_lon").val(data.point.lon);
     36                                form_map.setCenter(data.point);
     37                                marker = new mxn.Marker(data.point);
     38                        }
     39                }
     40                form_map.removeAllMarkers();
     41                form_map.addMarker(marker);
    2742        }
    2843       
    2944        [(#GET{geocoder}|oui)
    3045        function geocode(query) {
    31                 form_map.setCenter(query.point);
    32                 geocode_marker = new mxn.Marker(query.point);
    33                 form_map.removeAllMarkers();
    34                 form_map.addMarker(geocode_marker);
    35                 maj_inputs(form_map,query);
     46                $('#champ_adresse').val(query.street);
     47                $('#champ_code_postal').val(query.postcode);
     48                $('#champ_ville').val(query.locality);
     49                $('#champ_region').val(query.region);
     50                $('#champ_pays').val(query.country);
     51                maj_inputs(form_map,query,'geocoding');
    3652        }]
    3753
     
    6783                                }[(#VAL{93}|chr)]
    6884                }
    69                 form_map.addJSON(data);
    70                 ]
     85                form_map.addJSON(data);]
    7186               
    7287                // mettre a jour les coordonnees quand on clique la carte
    7388                form_map.click.addHandler(function(name, source, args) {
     89                        annuler_geocoder = 0;
    7490                        var pos = args.location;
    75                         form_map.removeAllMarkers();
    76                         marker = new mxn.Marker(pos);
    77                         form_map.addMarker(marker);
    78                         form_map.setCenter(pos,{pan:true});
    79                         [(#GET{geocoder}|non)
    80                         maj_inputs(form_map,pos);]
    81                         [(#GET{geocoder}|oui)
    82                         geocoder.geocode(pos);]
     91                        maj_inputs(form_map,pos,'click');
    8392                });
    8493               
     
    94103                        var address = {};
    95104                        address.address = $("#champ_geocoder").attr("value");
     105                        annuler_geocoder = 0;
    96106                        geocoder.geocode(address);
    97107                });
Note: See TracChangeset for help on using the changeset viewer.