OpenLayers OpenLayers

Changeset 7524

Show
Ignore:
Timestamp:
07/16/08 10:23:32 (5 months ago)
Author:
sbenthall
Message:

YahooGeocoder now parses response, transforms projection, and returns object

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • sandbox/topp/almanac/lib/OpenLayers/Control/YahooGeocoder.js

    r7521 r7524  
    8686            callback = function() {}; 
    8787        } 
    88         var bound = OpenLayers.Function.bind(function(request) { 
    89              
     88        var requestCallback = function(request) { 
    9089            if(request.status >= 200 && request.status < 300) { 
    9190                // success 
     91                var response = request.responseXML; 
     92                 
     93                var result = response.getElementsByTagName("Result")[0]; 
     94                 
    9295                var xml = new OpenLayers.Format.XML(); 
    93                     
    94                 response = xml.read(request.response) 
     96                 
     97                var precision = xml.getAttributeNS(result, null, 'precision'); 
     98                 
     99                var latitude = result.getElementsByTagName("Latitude")[0].firstChild.nodeValue; 
     100                var longitude = result.getElementsByTagName("Longitude")[0].firstChild.nodeValue; 
     101                 
     102                var lonlat = new OpenLayers.LonLat(longitude, latitude); 
     103                 
     104                lonlat.transform(this.serverProj, this.clientProj); 
    95105                     
    96                 OpenLayers.Console.log(response); 
     106                var obj = { 
     107                    precision : precision, 
     108                    lonlat : lonlat 
     109                } 
     110                 
     111                callback(obj); 
    97112            } else { 
    98113                // failure 
    99114            } 
    100              
    101             var lonlat = null; 
    102             if(point) { 
    103                 var lonlat = new OpenLayers.LonLat(point.lng(), point.lat()); 
    104                 lonlat.transform(this.serverProj, this.clientProj); 
    105             } 
    106             callback(lonlat); 
    107         }, this); 
     115        }; 
    108116 
    109117        this.request = OpenLayers.Request.GET({ 
    110118            url: this.yahooUrl, 
    111             callback: bound
     119            callback: requestCallback
    112120            params: params, 
    113121            scope: this