Created
October 5, 2015 10:49
-
-
Save stepankuzmin/dbaf3a8ebf784577d6bd to your computer and use it in GitHub Desktop.
Transliterate osm2pgsql openstreetmap data table to English using Ruby
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env ruby | |
| require 'pg' | |
| require 'colorize' | |
| require 'translit' | |
| # Output a table of current connections to the DB | |
| conn = PG.connect( dbname: 'astrakhan' ) | |
| # conn.exec( "ALTER TABLE planet_osm_line ADD COLUMN name_en text;" ) | |
| # conn.exec( "ALTER TABLE planet_osm_point ADD COLUMN name_en text;" ) | |
| puts "transliterating planet_osm_point".colorize(:blue) | |
| conn.exec( "SELECT osm_id, name FROM planet_osm_point WHERE name <> ''" ) do |result| | |
| result.each do |row| | |
| id = row.values_at('osm_id').first | |
| name = row.values_at('name').first | |
| name_en = Translit.convert(name, :english).gsub("'"){"''"} | |
| conn.exec("UPDATE planet_osm_point SET name_en = '#{name_en}' WHERE osm_id = #{id}") | |
| puts "%s -> %s".colorize(:green) % [name, name_en] | |
| end | |
| end | |
| puts "transliterating planet_osm_line".colorize(:blue) | |
| conn.exec( "SELECT osm_id, name FROM planet_osm_line WHERE name <> ''" ) do |result| | |
| result.each do |row| | |
| id = row.values_at('osm_id').first | |
| name = row.values_at('name').first | |
| name_en = Translit.convert(name, :english).gsub("'"){"''"} | |
| conn.exec("UPDATE planet_osm_point SET name_en = '#{name_en}' WHERE osm_id = #{id}") | |
| puts "%s -> %s".colorize(:green) % [name, name_en] | |
| end | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment