@@ -50,6 +50,37 @@ VirtualEarthGeocoder.prototype._geocode = function(value, callback) {
5050 } ) ;
5151} ;
5252
53+ /**
54+ * Reverse geocoding
55+ * @param {lat:<number>, lon:<number> } lat: Latitude, lon: Longitude
56+ * @param <function> callback Callback method
57+ */
58+ VirtualEarthGeocoder . prototype . _reverse = function ( value , callback ) {
59+
60+ var _this = this ;
61+
62+ var params = {
63+ key : this . options . apiKey
64+ } ;
65+
66+ var endpoint = this . _endpoint + "/" + value . lat + "," + value . lon ;
67+
68+ this . httpAdapter . get ( endpoint , params , function ( err , result ) {
69+ if ( err ) {
70+ return callback ( err ) ;
71+ } else {
72+ var results = [ ] ;
73+
74+ for ( var i = 0 ; i < result . resourceSets [ 0 ] . resources . length ; i ++ ) {
75+ results . push ( _this . _formatResult ( result . resourceSets [ 0 ] . resources [ i ] ) ) ;
76+ }
77+
78+ results . raw = result ;
79+ callback ( false , results ) ;
80+ }
81+ } ) ;
82+ }
83+
5384VirtualEarthGeocoder . prototype . _formatResult = function ( result ) {
5485 return {
5586 'latitude' : result . point . coordinates [ 0 ] ,
@@ -58,7 +89,8 @@ VirtualEarthGeocoder.prototype._formatResult = function(result) {
5889 'city' : result . address . locality ,
5990 'state' : result . address . adminDistrict ,
6091 'zipcode' : result . address . postalCode ,
61- 'streetName' : result . address . addressLine
92+ 'streetName' : result . address . addressLine ,
93+ 'formattedAddress' : result . address . formattedAddress
6294 } ;
6395} ;
6496
0 commit comments