aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/chouette/pt_link.rb
blob: 680632a14149a6222addb4dca57b186dbb9b4b5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
require 'geokit'

module Chouette
  class PtLink < Chouette::ActiveRecord
    has_metadata
    include Geokit::Mappable

    def geometry
      the_geom
    end

    def self.import_csv
      csv_file = Rails.root + "chouette_pt_links.csv"
      if File.exists?( csv_file)
        csv = CSV::Reader.parse(File.read(csv_file))

        slug = csv.shift.first

        Network::Base.find_by_slug( slug).tune_connection

        csv.each do |row|
          origin = Chouette::StopArea.find_by_objectid( row[0])
          destination = Chouette::StopArea.find_by_objectid( row[1])

          raise "unknown origin #{row[0]}" unless origin
          raise "unknown destination #{row[1]}" unless destination

          Chouette::PtLink.create( :departure_id => origin.id,
                                  :arrival_id => destination.id,
                                  :the_geom => GeoRuby::SimpleFeatures::Geometry.from_hex_ewkb( row[2]))
        end
      end
    end
  end
end