Skip to content

Commit 193e5a4

Browse files
committed
ch19: added dealer geocoding function.
1 parent 92436a2 commit 193e5a4

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

ch19/meadowlark.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,31 @@ Dealer.find({}, function(err, dealers){
243243
}).save();
244244
});
245245

246+
// dealer geocoding
247+
function geocodeDealer(dealer){
248+
var addr = dealer.getAddress(' ');
249+
if(addr===dealer.geocodedAddress) return; // already geocoded
250+
251+
if(dealerCache.geocodeCount >= dealerCache.geocodeLimit){
252+
// has 24 hours passed since we last started geocoding?
253+
if(Date.now() > dealerCache.geocodeCount + 24 * 60 * 60 * 1000){
254+
dealerCache.geocodeBegin = Date.now();
255+
dealerCache.geocodeCount = 0;
256+
} else {
257+
// we can't geocode this now: we've
258+
// reached our usage limit
259+
return;
260+
}
261+
}
262+
263+
geocode(addr, function(err, coords){
264+
if(err) return console.log('Geocoding failure for ' + addr);
265+
dealer.lat = coords.lat;
266+
dealer.lng = coords.lng;
267+
dealer.save();
268+
});
269+
}
270+
246271
// dealer cache
247272
var dealerCache = {
248273
lastRefreshed: 0,

0 commit comments

Comments
 (0)