- # FIXME: The server really shouldn't be figuring out a ways bounding box and doing projection for potlatch
- # FIXME: the argument splitting should be done in the 'talk' method, not here
- #
- def getway(args)
- objname,wayid,baselong,basey,masterscale = args
- wayid = wayid.to_i
-
- RAILS_DEFAULT_LOGGER.info(" Message: getway, id=#{wayid}")
-
- way = Way.find_eager(wayid)
- long_array = []
- lat_array = []
- points = []
-
- way.way_nodes.each do |way_node|
- node = way_node.node # get the node record
- projected_longitude = node.lon_potlatch(baselong,masterscale) # do projection for potlatch
- projected_latitude = node.lat_potlatch(basey,masterscale)
- id = node.id
- tags_hash = node.tags_as_hash
-
- points << [projected_longitude, projected_latitude, id, nil, tags_hash] # FIXME remove the nil in potlatch. performance matters y'know!
- long_array << projected_longitude
- lat_array << projected_latitude
- end
-
- [objname,points,way.tags,long_array.min,long_array.max,lat_array.min,lat_array.max]
- end
-
- # ----- getway_old
- # returns old version of way
-
- # in: [0] SWF object name, [1] way id,
- # [2] way version to get (or -1 for "last deleted version")
- # [3] baselong, [4] basey, [5] masterscale
- # does: gets old version of way and all constituent nodes
- # for undelete, always uses the most recent version of each node
- # (even if it's moved)
- # for revert, uses the historic version of each node, but if that node is
- # still visible and has been changed since, generates a new node id
- # out: [0] 0 (code for success), [1] SWF object name,
- # [2] array of points (as getway _except_ [3] is node.visible?, 0 or 1),
- # [4] xmin, [5] xmax, [6] ymin, [7] ymax (unprojected bbox),
- # [8] way version
-
- def getway_old(args)
- RAILS_DEFAULT_LOGGER.info(" Message: getway_old (server is #{SERVER_URL})")
- # if SERVER_URL=="www.openstreetmap.org" then return -1,"Revert is not currently enabled on the OpenStreetMap server." end
-
- objname,wayid,version,baselong,basey,masterscale=args
- wayid = wayid.to_i
- version = version.to_i
- xmin = ymin = 999999
- xmax = ymax = -999999
- points=[]
- if version<0
- historic=false
- version=getlastversion(wayid,version)