Skip to content

Use post instead of get to allow very large querries #35

@matkoniecz

Description

@matkoniecz

see https://josm.openstreetmap.de/ticket/15141 for an equivalent issue in JOSM

very large queries hit URL limit that may be solved by using POST rather than get

see https://gist.github.com/matkoniecz/b27f17f34832fdf2115c915cee46c158 for an example resulting in

/home/mateusz/.gem/ruby/2.3.0/gems/cartocss_helper-5.0.1/lib/cartocss_helper/util/generic_downloader.rb(39) : ExceptionWithResponse
/home/mateusz/.gem/ruby/2.3.0/gems/cartocss_helper-5.0.1/lib/cartocss_helper/util/generic_downloader.rb(40) : 414 URI Too Long
/home/mateusz/.gem/ruby/2.3.0/gems/cartocss_helper-5.0.1/lib/cartocss_helper/util/generic_downloader.rb(60) : <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

It seems that one way to do that is

require 'net/http'
require 'json'

query = '[out:json][timeout:25];(way["surface"="beton"];);out body;>;out skel qt;'
url = "http://overpass-api.de/api/interpreter"
uri = URI(url)
response = Net::HTTP.post_form(uri, { 'data' => query })
puts JSON.parse(response.body)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions