Advertisement
Guest User

Untitled

a guest
Sep 24th, 2013
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rails 1.66 KB | None | 0 0
  1. require 'open-uri'
  2. require "net/http"
  3. require 'rexml/document'
  4.  
  5. def query_overpass(object_type, left,bottom,right,top, key, value)
  6.    base_url = "http://www.overpass-api.de/api/xapi?"
  7.    query_string = "#{object_type}[bbox=#{left},#{bottom},#{right},#{top}][#{key}=#{value}]"
  8.    url = "#{base_url}#{URI.encode(query_string)}"
  9.    resp = Net::HTTP.get_response(URI.parse(url))
  10.    data = resp.body
  11.    return data
  12. end
  13.  
  14. overpass_result = REXML::Document.new(query_overpass("node", 7.1,51.2,7.2,51.3,"amenity","restaurant|pub|ice_cream|food_court|fast_food|cafe|biergarten|bar|bakery|steak|pasta|pizza|sushi|asia|nightclub"))
  15.  
  16. overpass_result.elements.each('osm/node') {|x|
  17.   if !x.elements["tag[@k='name']"].nil?
  18.     print x.elements["tag[@k='name']"].attributes["v"]
  19.   end
  20.   print " | "
  21.  
  22.   if !x.elements["tag[@k='addr:postcode']"].nil?
  23.     print x.elements["tag[@k='addr:postcode']"].attributes["v"]
  24.     print ", "
  25.   end
  26.   if !x.elements["tag[@k='addr:city']"].nil?
  27.     print x.elements["tag[@k='addr:city']"].attributes["v"]
  28.     print ", "
  29.   end
  30.   if !x.elements["tag[@k='addr:street']"].nil?
  31.     print x.elements["tag[@k='addr:street']"].attributes["v"]
  32.     print ", "
  33.   end
  34.   if !x.elements["tag[@k='addr:housenumber']"].nil?
  35.     print x.elements["tag[@k='addr:housenumber']"].attributes["v"]
  36.   end
  37.   print " | "
  38.   print x.attributes["lat"]
  39.   print " | "
  40.   print x.attributes["lon"]
  41.   print " | "
  42.   if !x.elements["tag[@k='website']"].nil?
  43.     print x.elements["tag[@k='website']"].attributes["v"]
  44.   end
  45.   print " | "
  46.   if !x.elements["tag[@k='amenity']"].nil?
  47.     print x.elements["tag[@k='amenity']"].attributes["v"]
  48.     print " | "
  49.   end
  50.   puts
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement