mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +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
 | 
