#!/usr/bin/env ruby # coding: utf-8 # Copyright muflax , 2011 # License: GNU GPL 3 require "csv" Coords = {} # get PLZ coordinates CSV.foreach("plz-coords.csv") do |row| Coords[row[0].to_i] = [row[1].to_f, row[2].to_f] end def coord_of plz if Coords.include? plz Coords[plz] else # approximate it Coords.keys.map{|x| [(x - plz).abs, x]}.min[1] end end kml = File.open("lw-germany.kml", "w") kml.write < German LW users EOL # read form data CSV.foreach("plz.csv", :headers => true) do |row| if row[1] == "Deutschland" plz = row[2].to_i coord = coord_of plz kml.write < #{row[0]} #{coord[0]},#{coord[1]} EOL end end kml.write < EOL