class CartoCSSHelper::DataFileGenerator

Public Class Methods

new(tags, type, lat, lon, size) click to toggle source
# File lib/cartocss_helper/data_file_handling.rb, line 45
def initialize(tags, type, lat, lon, size)
  @lat = lat
  @lon = lon
  @tags = tags
  @type = type
  @size = size
end

Public Instance Methods

add_node(lat, lon, tags, id) click to toggle source
# File lib/cartocss_helper/data_file_handling.rb, line 112
def add_node(lat, lon, tags, id)
  @data_file.write "\n"
  @data_file.write "  <node id='#{id}' visible='true' lat='#{lat}' lon='#{lon}'>"
  add_tags(tags)
  @data_file.write '</node>'
end
add_tags(tags) click to toggle source
# File lib/cartocss_helper/data_file_handling.rb, line 130
def add_tags(tags)
  tags.each do |tag|
    @data_file.write "\n"
    @data_file.write "    <tag k='#{tag[0]}' v='#{tag[1]}' />"
  end
end
add_way(tags, nodes, id) click to toggle source
# File lib/cartocss_helper/data_file_handling.rb, line 119
def add_way(tags, nodes, id)
  @data_file.write "\n"
  @data_file.write "  <way id='#{id}' visible='true'>"
  nodes.each do |node|
    @data_file.write "\n"
    @data_file.write "    <nd ref='#{node}' />"
  end
  add_tags(tags)
  @data_file.write "\n  </way>"
end
close_file() click to toggle source
# File lib/cartocss_helper/data_file_handling.rb, line 57
def close_file
  @data_file.close
end
finish_file() click to toggle source
# File lib/cartocss_helper/data_file_handling.rb, line 66
def finish_file
  generate_sufix
  close_file
end
generate() click to toggle source
# File lib/cartocss_helper/data_file_handling.rb, line 71
def generate
  prepare_file
  if @type == 'node'
    generate_node_topology(@lat, @lon, @tags)
  elsif @type == 'way'
    generate_way_topology(@lat, @lon, @tags)
  elsif @type == 'closed_way'
    generate_closed_way_topology(@lat, @lon, @tags)
  else
    raise 'this type of element does not exists'
  end
  finish_file
end
generate_closed_way_topology(lat, lon, tags) click to toggle source
# File lib/cartocss_helper/data_file_handling.rb, line 95
def generate_closed_way_topology(lat, lon, tags)
  delta = @size / 3
  add_node lat - delta, lon - delta, [], 1
  add_node lat - delta, lon + delta, [], 2
  add_node lat + delta, lon + delta, [], 3
  add_node lat + delta, lon - delta, [], 4
  add_way tags, [1, 2, 3, 4, 1], 5
end
generate_node_topology(lat, lon, tags) click to toggle source
# File lib/cartocss_helper/data_file_handling.rb, line 85
def generate_node_topology(lat, lon, tags)
  add_node lat, lon, tags, 2387
end
generate_prefix() click to toggle source
# File lib/cartocss_helper/data_file_handling.rb, line 104
def generate_prefix
  @data_file.write "<?xml version='1.0' encoding='UTF-8'?>\n<osm version='0.6' generator='script'>"
end
generate_sufix() click to toggle source
# File lib/cartocss_helper/data_file_handling.rb, line 108
def generate_sufix
  @data_file.write "\n</osm>"
end
generate_way_topology(lat, lon, tags) click to toggle source
# File lib/cartocss_helper/data_file_handling.rb, line 89
def generate_way_topology(lat, lon, tags)
  add_node lat, lon - @size / 3, [], 1
  add_node lat, lon + @size / 3, [], 2
  add_way tags, [1, 2], 3
end
open_file() click to toggle source
# File lib/cartocss_helper/data_file_handling.rb, line 53
def open_file
  @data_file = open(Configuration.get_data_filename, 'w')
end
prepare_file() click to toggle source
# File lib/cartocss_helper/data_file_handling.rb, line 61
def prepare_file
  open_file
  generate_prefix
end