/** * Creates a map query to embed its output in the current query. * * @return the map query */ public OverpassFilterQuery filterQuery() { return new OverpassFilterQuery(this); }
/** * Appends the string <i>way</i> to the current query. * * @return the current query object */ public OverpassFilterQuery way() { applySeparator(); builder.append("way"); return this; }
OverpassFilterQuery(OverpassQuery parent, OverpassQueryBuilder builder) { super(parent, builder); init(); }
.timeout(30) .filterQuery() .node() .amenity("parking") .tagNot("access", "private") .around(50.5) .prepareNext() .way() .amenity("parking") .tagNot("access", "private") .around( 50.5, 47.48047027491862, 19.039797484874725 .prepareNext() .rel() .amenity("parking") .tagNot("access", "private") .boundingBox( 47.48047027491862, 19.039797484874725, 47.51331674014172, 19.07404761761427 .end() .output(OutputVerbosity.BODY, OutputModificator.CENTER, OutputOrder.QT, 100) .build()
@Test public void testMultipleFilterQueriesWithGlobalBoundingBoxSearch() throws Exception { String result = new OverpassQuery() .format(JSON) .timeout(30) .boundingBox( 47.48047027491862, 19.039797484874725, 47.51331674014172, 19.07404761761427 ) .filterQuery() .node() .amenity("parking") .tagNot("access", "private") .prepareNext() .way() .amenity("parking") .tagNot("access", "private") .end() .output(OutputVerbosity.BODY, OutputModificator.CENTER, OutputOrder.QT, 100) .build() ; String expected = "[out:\"json\"][timeout:\"30\"]" + "[bbox:47.48047027491862,19.039797484874725,47.51331674014172,19.07404761761427]" + "; (" + "node[\"amenity\"=\"parking\"][\"access\"!=\"private\"]; " + "way[\"amenity\"=\"parking\"][\"access\"!=\"private\"]" + ";<;); out body center qt 100;"; assertEquals(expected, result); }
@Test public void testSimpleFilterQuery() throws Exception { String result = new OverpassQuery() .format(JSON) .timeout(30) .filterQuery() .node() .amenity("parking") .tagNot("access", "private") .boundingBox( 47.48047027491862, 19.039797484874725, 47.51331674014172, 19.07404761761427 ) .end() .output(OutputVerbosity.BODY, OutputModificator.CENTER, OutputOrder.QT, 100) .build() ; String expected = "[out:\"json\"][timeout:\"30\"]; (node[\"amenity\"=\"parking\"][\"access\"!=\"private\"](47.48047027491862,19.039797484874725,47.51331674014172,19.07404761761427);<;); out body center qt 100;"; assertEquals(expected, result); }
@Test public void testAroundOnlyRadius() throws Exception { double radius = 1.0d; filterQuery.around(radius); verify(builder).around(radius); }
@Test public void testAmenities() throws Exception { final HashSet<String> amenities = new HashSet<>(Arrays.asList("shop", "market")); filterQuery.amenities(amenities); verify(builder).multipleValues("amenity", amenities); }
@Test public void testArea() throws Exception { filterQuery.area(); verify(builder).append("area"); verifyNoMoreInteractions(builder); }
@Test public void testBoundingBox() throws Exception { double lat1 = 1.0d; double lon1 = 2.0d; double lat2 = 3.0d; double lon2 = 4.0d; filterQuery.boundingBox(lat1, lon1, lat2, lon2); verify(builder).boundingBox(lat1, lon1, lat2, lon2); }
@Test public void testAmenity() throws Exception { filterQuery.amenity("parking"); verify(builder).equals("amenity", "parking"); }
@Test public void testBuild() throws Exception { filterQuery.build(); verify(builder).append(END_TOKEN); verify(builder).build(); verifyNoMoreInteractions(builder); }
.timeout(30) .filterQuery() .node() .amenity("parking") .tagNot("access", "private") .boundingBox( 47.48047027491862, 19.039797484874725, 47.51331674014172, 19.07404761761427 .prepareNext() .way() .amenity("parking") .tagNot("access", "private") .boundingBox( 47.48047027491862, 19.039797484874725, 47.51331674014172, 19.07404761761427 .prepareNext() .rel() .amenity("parking") .tagNot("access", "private") .boundingBox( 47.48047027491862, 19.039797484874725, 47.51331674014172, 19.07404761761427 .end() .output(OutputVerbosity.BODY, OutputModificator.CENTER, OutputOrder.QT, 100) .build()
@Test public void testAround() throws Exception { double radius = 1.0d; double lat = 3.0d; double lon = 4.0d; filterQuery.around(radius, lat, lon); verify(builder).around(radius, lat, lon); } }
@Before public void setUp() throws Exception { filterQuery = new OverpassFilterQuery(query, builder); verify(builder).append(START_TOKEN); }
/** * Appends the string <i>area</i> to the current query. * * @return the current query object */ public OverpassFilterQuery area() { applySeparator(); builder.append("area"); return this; }
public OverpassFilterQuery(OverpassQuery parent) { super(parent); init(); }
/** * Appends the string <i>rel</i> to the current query. * * @return the current query object */ public OverpassFilterQuery rel() { applySeparator(); builder.append("rel"); return this; }
/** * Appends the string <i>node</i> to the current query. * * @return the current query object */ public OverpassFilterQuery node() { applySeparator(); builder.append("node"); return this; }