module ComplexQueryBuilder
Public Class Methods
filter_across_named_region(filter, name)
click to toggle source
# File lib/overhelper/complex_query_builder.rb, line 2 def self.filter_across_named_region(filter, name) name_filter = CartoCSSHelper::OverpassQueryGenerator.turn_tag_into_overpass_filter(['name', name]) return "[out:json][timeout:2500]; area" + name_filter + "->.searchArea; ( node#{filter}(area.searchArea); way#{filter}(area.searchArea); relation#{filter}(area.searchArea); ); out meta; >; out meta qt;" end
two_pass_filter_across_named_region(filter, negative_filter, name)
click to toggle source
tag negation is very slow - overpass will sometimes allow this type of query while using tag!=* will cause it to fail
# File lib/overhelper/complex_query_builder.rb, line 17 def self.two_pass_filter_across_named_region(filter, negative_filter, name) name_filter = CartoCSSHelper::OverpassQueryGenerator.turn_tag_into_overpass_filter(['name', name]) return "[out:json][timeout:2500]; area" + name_filter + "->.searchArea; ( way#{filter}(area.searchArea); node#{filter}(area.searchArea); relation#{filter}(area.searchArea); )-> .a; ( way#{negative_filter}(area.searchArea); node#{negative_filter}(area.searchArea); relation#{negative_filter}(area.searchArea); ) -> .b; ( .a - .b; ); out meta; >; out meta qt;" end