Guest sayhello Posted June 9, 2014 Posted June 9, 2014 helllo dear linux-commmunity new to Ruby - i need some advices - i plan to do some requests in osm-files. (openstreetmap) Question - how can i store the results on a Database - eg mysql or - (if you prefer postgresql) - note: my favorite db - at least at the moment is mysql here the code Code: require 'open-uri' require "net/http" require 'rexml/document' def query_overpass(object_type, left,bottom,right,top, key, value) base_url = "http://www.overpass-api.de/api/xapi?" query_string = "#{object_type}[bbox=#{left},#{bottom},#{right},#{top}][#{key}=#{value}]" url = "#{base_url}#{URI.encode(query_string)}" resp = Net::HTTP.get_response(URI.parse(url)) data = resp.body return data end 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")) overpass_result.elements.each('osm/node') {|x| if !x.elements["tag[@k=name]"].nil? print x.elements["tag[@k=name]"].attributes["v"] end print " | " if !x.elements["tag[@k=addr:postcode]"].nil? print x.elements["tag[@k=addr:postcode]"].attributes["v"] print ", " end if !x.elements["tag[@k=addr:city]"].nil? print x.elements["tag[@k=addr:city]"].attributes["v"] print ", " end if !x.elements["tag[@k=addr:street]"].nil? print x.elements["tag[@k=addr:street]"].attributes["v"] print ", " end if !x.elements["tag[@k=addr:housenumber]"].nil? print x.elements["tag[@k=addr:housenumber]"].attributes["v"] end print " | " print x.attributes["lat"] print " | " print x.attributes["lon"] print " | " if !x.elements["tag[@k=website]"].nil? print x.elements["tag[@k=website]"].attributes["v"] end print " | " if !x.elements["tag[@k=amenity]"].nil? print x.elements["tag[@k=amenity]"].attributes["v"] print " | " end puts } look forward to hear from you again - i would love to store it on a mysql - database - if possible. If you would prefer postgresql - then i would takte this one.... ;-) Continue reading... Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.