require 'json'
data = JSON.parse(IO.read('OBJtoJSON_koshinto_meguro_1_raw.json'))
open('dump.csv', 'w') do |io|
# ポリゴン座標と各頂点の高さを書き出す
io.puts 'geometry;z1;z2;z3'
# position に頂点座標が書き込まれている
pos = data['geometries'][0]['data']['attributes']['position']
# x, y, z の3要素 * 3頂点なので、値を9個ずつ取得する
(pos['array'].size / 9).times do |i|
v = pos['array'][i * 9, 9]
# ポリゴン座標の最終点は始点と同一にする必要がある
v = v + v[0, 3]
wkt = 'POLYGONZ((%.7f %.7f %.7f, %.7f %.7f %.7f, %.7f %.7f %.7f, %.7f %.7f %.7f))' % v
io.puts [wkt, v[2], v[5], v[8]].join(';')
end
end