Jump to content

how to store this ruby-results in a mysql-database


Recommended Posts

Guest sayhello
Posted

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...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...