#!/usr/bin/ruby # fixes geo codes require 'rubygems' require 'google_geocode' require 'csv' gg = GoogleGeocode.new('your map api key here') #location = gg.locate '94401' #p location.coordinates #exit CSV.open('zips.csv', 'r') do |row| zip = "#{row[0]}"; lat = "#{row[1]}".to_f; lon = "#{row[2]}".to_f; city = "#{row[3]}"; state = "#{row[4]}"; county = "#{row[5]}"; ziptype = "#{row[6]}"; if (lat == 0) && (ziptype != "MILITARY") #military zip codes aren't necessarily in US begin location = gg.locate zip #p location.coordinates lat = location.latitude lon = location.longitude p "# geocoded zip #{zip}" rescue p "# *** error geocoding zip #{zip}" end end puts "\"#{zip}\",\"#{lat}\",\"#{lon}\",\"#{city}\",\"#{state}\",\"#{county}\",\"#{ziptype}\"" end