mirror of
https://github.com/MariaDB/server.git
synced 2025-01-24 07:44:22 +01:00
53 lines
1.3 KiB
Ruby
Executable file
53 lines
1.3 KiB
Ruby
Executable file
#!/usr/bin/env ruby
|
|
# -*- coding: utf-8 -*-
|
|
|
|
if ARGV.size != 2
|
|
puts "Usage: #{$0} SOURCE_CSV OUTPUT_GRN"
|
|
puts " e.g.: #{$0} fixtures/geo-select/13_2010.CSV fixtures/geo-select/load.grn"
|
|
exit(false)
|
|
end
|
|
|
|
csv, grn = ARGV
|
|
|
|
require "fileutils"
|
|
require "csv"
|
|
|
|
FileUtils.mkdir_p(File.dirname(grn))
|
|
File.open(grn, "w") do |output|
|
|
output.print(<<-EOH.strip)
|
|
table_create Addresses TABLE_HASH_KEY ShortText
|
|
column_create Addresses location COLUMN_SCALAR WGS84GeoPoint
|
|
|
|
table_create Locations TABLE_PAT_KEY WGS84GeoPoint
|
|
column_create Locations address COLUMN_INDEX Addresses location
|
|
|
|
load --table Addresses
|
|
[
|
|
["_key", "location"]
|
|
EOH
|
|
|
|
headers = nil
|
|
csv_foreach_args = [csv]
|
|
csv_foreach_args << {:encoding => "UTF-8"} if defined?(Encoding)
|
|
CSV.foreach(*csv_foreach_args) do |row|
|
|
if headers.nil?
|
|
headers = row
|
|
else
|
|
record = {}
|
|
headers.each_with_index do |header, i|
|
|
record[header] = row[i]
|
|
end
|
|
central_value_p = record["代表フラグ"] == "1"
|
|
next unless central_value_p
|
|
name =
|
|
record["都道府県名"] + record["市区町村名"] +
|
|
record["大字・町丁目"] + record["街区符号・地番"]
|
|
location = "%sx%s" % [record["緯度"], record["経度"]]
|
|
output.print(",\n[\"#{name}\", \"#{location}\"]")
|
|
end
|
|
end
|
|
output.print(<<-EOF)
|
|
|
|
]
|
|
EOF
|
|
end
|