Doing a resync from mainline 8633:10895. There was one simple to resolve conflict...
authorShaun McDonald <shaun@shaunmcdonald.me.uk>
Thu, 25 Sep 2008 15:06:05 +0000 (15:06 +0000)
committerShaun McDonald <shaun@shaunmcdonald.me.uk>
Thu, 25 Sep 2008 15:06:05 +0000 (15:06 +0000)
16 files changed:
1  2 
app/controllers/api_controller.rb
app/controllers/application.rb
app/models/node.rb
app/models/old_way.rb
app/models/relation.rb
app/models/way.rb
config/environment.rb
config/routes.rb
db/migrate/016_add_timestamp_indexes.rb
db/migrate/017_populate_node_tags_and_remove.rb
db/migrate/017_populate_node_tags_and_remove_helper.c
db/migrate/018_move_to_innodb.rb
db/migrate/019_key_constraints.rb
db/migrate/020_add_changesets.rb
lib/geo_record.rb
lib/osm.rb

Simple merge
Simple merge
@@@ -17,8 -17,9 +17,11 @@@ class Node < ActiveRecord::Bas
    has_many :way_nodes
    has_many :ways, :through => :way_nodes
  
 +  has_many :node_tags, :foreign_key => :id
 +  
+   has_many :old_way_nodes
+   has_many :ways_via_history, :class_name=> "Way", :through => :old_way_nodes, :source => :way
    has_many :containing_relation_members, :class_name => "RelationMember", :as => :member
    has_many :containing_relations, :class_name => "Relation", :through => :containing_relation_members, :source => :relation, :extend => ObjectFinder
  
Simple merge
Simple merge
@@@ -249,20 -234,9 +249,11 @@@ class Way < ActiveRecord::Bas
    end
  
    # delete a way and it's nodes that aren't part of other ways, with history
 +
 +  # FIXME: merge the potlatch code to delete the relations
    def delete_with_relations_and_nodes_and_history(user)
-     
-     node_ids = self.nodes.collect {|node| node.id }
-     node_ids_not_to_delete = []
-     way_nodes = WayNode.find(:all, :conditions => "node_id in (#{node_ids.join(',')}) and id != #{self.id}")
-     
-     node_ids_not_to_delete = way_nodes.collect {|way_node| way_node.node_id}
-     node_ids_to_delete = node_ids - node_ids_not_to_delete
      # delete the nodes not used by other ways
-     node_ids_to_delete.each do |node_id|
+     self.unshared_node_ids.each do |node_id|
        n = Node.find(node_id)
        n.user_id = user.id
        n.visible = false
      
      self.user_id = user.id
  
 -    self.delete_with_relations_and_history(user)
 +    self.delete_with_history(user)
+   end
+   # Find nodes that belong to this way only
+   def unshared_node_ids
+     node_ids = self.nodes.collect { |node| node.id }
+     unless node_ids.empty?
+       way_nodes = WayNode.find(:all, :conditions => "node_id in (#{node_ids.join(',')}) and id != #{self.id}")
+       node_ids = node_ids - way_nodes.collect { |way_node| way_node.node_id }
+     end
  
+     return node_ids
    end
  
    # Temporary method to match interface to nodes
Simple merge
Simple merge
index c551b0e,0000000..c551b0e
mode 100644,000000..100644
--- /dev/null
index 40f98be,0000000..40f98be
mode 100644,000000..100644
--- /dev/null
index 40455ec,0000000..40455ec
mode 100644,000000..100644
--- /dev/null
@@@ -39,18 -34,9 +39,9 @@@ module GeoRecor
  
    # Return WGS84 longitude
    def lon
 -    return self.longitude.to_f / 10000000
 +    return self.longitude.to_f / SCALE
    end
  
-   # Potlatch projections
-   def lon_potlatch(baselong,masterscale)
-     (self.lon-baselong)*masterscale
-   end
-   def lat_potlatch(basey,masterscale)
-     -(lat2y(self.lat)-basey)*masterscale
-   end
-   
  private
    
    def lat2y(a)
diff --cc lib/osm.rb
Simple merge