Где бы вы точно не жили и не остановились даже на время, если бы знали и выбирали на основе фактов

osmworld=# explain create table distance as select h3_lat_lng_to_cell(b.centre,10) h3_10, h3_lat_lng_to_cell(b.centre,8) h3_8, round(ST_Distance(b.geom::geography,g.geom::geography))::integer distance, b.type from_type, g.type to_type, b.id from_id, g.id to_id from geometry_global_view b inner join geometry_global_view g on ST_DWithin(b.geom::geography,g.geom::geography,200) and b.tags->'building' is not null and b.tags->'building' not in --в перечисленных ниже зданиях не живут на постоянной основе ('service','garages','industrial','retail','office','roof','commercial','garage','kiosk','warehouse','church', 'parking','public','shed','hangar','train_station','guardhouse','transportation','terrace','greenhouse','bridge', 'government','chapel','gazebo','civic','ruins','supermarket','sports_centre','semidetached_house','toilets', 'sports_hall','clinic','farm_auxiliary','stable','grandstand','bunker','gatehouse','store','temple','ventilation_kiosk', 'carport','cowshed','barracks','shop','cabin','barn','cathedral','wall','townhouse','manufacture','shelter', 'fire_station','stadium','stands','sport_hall','theatre','storage_tank','checkpoint','houseboat','abandoned','dovecote', 'mosque','museum','military','container','observatory','lift','tent','factory','sport','mall','riding_hall','depot', 'prison','gate','triumphal_arch','water_works','public_building','pavilion','bank','institute','works','collapsed', 'car_repair','crossing_box','fuel','tree_house','presbytery','yesq','farm','outbuilding','police','porch','sauna', 'monastery','cinema','tower','boathouse','library','transformer_tower','heat_exchange_station') and ( g.tags->'amenity'='waste_transfer_station' or --_качество воздуха_ g.tags->'landuse'='landfill' or --_качество воздуха_ g.tags->'man_made'='spoil_heap' or --_качество воздуха_ g.tags->'man_made'='wastewater_plant' or --_качество воздуха_ g.tags->'amenity'='crematorium' or --_качество воздуха_ (g.tags->'natural'='wetland' and g.tags->'wetland' is distinct from 'mangrove') or --_комары_ g.tags->'power'='substation' or --_промышленность_ g.tags->'power'='generator' or --_промышленность_ g.tags->'power'='plant' or --_промышленность_ g.tags->'building'='industrial' or --_промышленность_ g.tags->'landuse'='industrial' or --_промышленность_ g.tags->'landuse'='quarry' or --промышленность_ g.tags->'aeroway'='runway' or --_шумное место_ g.tags->'railway'='rail' or --_шумное место_ g.tags->'highway'='primary' or --_шумное место_ g.tags->'highway'='trunk' or --_шумное место_ g.tags->'leisure'='stadium' or --_шумное место_ g.tags->'landuse'='construction' --_шумное место_ ); Time: 41,440 ms QUERY PLAN QUERY PLAN ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Gather (cost=1000.53..698216225.15 rows=91264670 width=44) Workers Planned: 4 -> Nested Loop (cost=0.53..689088758.15 rows=22816168 width=44) -> Parallel Append (cost=0.00..124924.54 rows=31608 width=162) -> Parallel Seq Scan on ways_001 ways_4 (cost=0.00..83311.46 rows=20092 width=178) Filter: (((tags -> 'amenity'::text) = 'waste_transfer_station'::text) OR ((tags -> 'landuse'::text) = 'landfill'::text) OR ((tags -> 'man_made'::text) = 'spoil_heap'::text) OR ((tags -> 'man_made'::text) = 'wastewater_plant'::text) OR ((tags -> 'amenity'::text) = 'crematorium'::text) OR (((tags -> 'natural'::text) = 'wetland'::text) AND ((tags -> 'wetland'::text) IS DISTINCT FROM 'mangrove'::text)) OR ((tags -> 'power'::text) = 'substation'::text) OR ((tags -> 'power'::text) = 'generator'::text) OR ((tags -> 'power'::text) = 'plant'::text) OR ((tags -> 'building'::text) = 'industrial'::text) OR ((tags -> 'landuse'::text) = 'industrial'::text) OR ((tags -> 'landuse'::text) = 'quarry'::text) OR ((tags -> 'aeroway'::text) = 'runway'::text) OR ((tags -> 'railway'::text) = 'rail'::text) OR ((tags -> 'highway'::text) = 'primary'::text) OR ((tags -> 'highway'::text) = 'trunk'::text) OR ((tags -> 'leisure'::text) = 'stadium'::text) OR ((tags -> 'landuse'::text) = 'construction'::text)) -> Parallel Seq Scan on nodes_001 nodes_3 (cost=0.00..27175.52 rows=14806 width=76) Filter: (((tags -> 'amenity'::text) = 'waste_transfer_station'::text) OR ((tags -> 'landuse'::text) = 'landfill'::text) OR ((tags -> 'man_made'::text) = 'spoil_heap'::text) OR ((tags -> 'man_made'::text) = 'wastewater_plant'::text) OR ((tags -> 'amenity'::text) = 'crematorium'::text) OR (((tags -> 'natural'::text) = 'wetland'::text) AND ((tags -> 'wetland'::text) IS DISTINCT FROM 'mangrove'::text)) OR ((tags -> 'power'::text) = 'substation'::text) OR ((tags -> 'power'::text) = 'generator'::text) OR ((tags -> 'power'::text) = 'plant'::text) OR ((tags -> 'building'::text) = 'industrial'::text) OR ((tags -> 'landuse'::text) = 'industrial'::text) OR ((tags -> 'landuse'::text) = 'quarry'::text) OR ((tags -> 'aeroway'::text) = 'runway'::text) OR ((tags -> 'railway'::text) = 'rail'::text) OR ((tags -> 'highway'::text) = 'primary'::text) OR ((tags -> 'highway'::text) = 'trunk'::text) OR ((tags -> 'leisure'::text) = 'stadium'::text) OR ((tags -> 'landuse'::text) = 'construction'::text)) -> Parallel Seq Scan on multipolygon_001 multipolygon_4 (cost=0.00..6941.94 rows=1913 width=467) Filter: (((tags -> 'amenity'::text) = 'waste_transfer_station'::text) OR ((tags -> 'landuse'::text) = 'landfill'::text) OR ((tags -> 'man_made'::text) = 'spoil_heap'::text) OR ((tags -> 'man_made'::text) = 'wastewater_plant'::text) OR ((tags -> 'amenity'::text) = 'crematorium'::text) OR (((tags -> 'natural'::text) = 'wetland'::text) AND ((tags -> 'wetland'::text) IS DISTINCT FROM 'mangrove'::text)) OR ((tags -> 'power'::text) = 'substation'::text) OR ((tags -> 'power'::text) = 'generator'::text) OR ((tags -> 'power'::text) = 'plant'::text) OR ((tags -> 'building'::text) = 'industrial'::text) OR ((tags -> 'landuse'::text) = 'industrial'::text) OR ((tags -> 'landuse'::text) = 'quarry'::text) OR ((tags -> 'aeroway'::text) = 'runway'::text) OR ((tags -> 'railway'::text) = 'rail'::text) OR ((tags -> 'highway'::text) = 'primary'::text) OR ((tags -> 'highway'::text) = 'trunk'::text) OR ((tags -> 'leisure'::text) = 'stadium'::text) OR ((tags -> 'landuse'::text) = 'construction'::text)) -> Parallel Seq Scan on ways_000 ways_3 (cost=0.00..6444.37 rows=2136 width=198) Filter: (((tags -> 'amenity'::text) = 'waste_transfer_station'::text) OR ((tags -> 'landuse'::text) = 'landfill'::text) OR ((tags -> 'man_made'::text) = 'spoil_heap'::text) OR ((tags -> 'man_made'::text) = 'wastewater_plant'::text) OR ((tags -> 'amenity'::text) = 'crematorium'::text) OR (((tags -> 'natural'::text) = 'wetland'::text) AND ((tags -> 'wetland'::text) IS DISTINCT FROM 'mangrove'::text)) OR ((tags -> 'power'::text) = 'substation'::text) OR ((tags -> 'power'::text) = 'generator'::text) OR ((tags -> 'power'::text) = 'plant'::text) OR ((tags -> 'building'::text) = 'industrial'::text) OR ((tags -> 'landuse'::text) = 'industrial'::text) OR ((tags -> 'landuse'::text) = 'quarry'::text) OR ((tags -> 'aeroway'::text) = 'runway'::text) OR ((tags -> 'railway'::text) = 'rail'::text) OR ((tags -> 'highway'::text) = 'primary'::text) OR ((tags -> 'highway'::text) = 'trunk'::text) OR ((tags -> 'leisure'::text) = 'stadium'::text) OR ((tags -> 'landuse'::text) = 'construction'::text)) -> Parallel Seq Scan on nodes_000 nodes_2 (cost=0.00..628.11 rows=402 width=76) Filter: (((tags -> 'amenity'::text) = 'waste_transfer_station'::text) OR ((tags -> 'landuse'::text) = 'landfill'::text) OR ((tags -> 'man_made'::text) = 'spoil_heap'::text) OR ((tags -> 'man_made'::text) = 'wastewater_plant'::text) OR ((tags -> 'amenity'::text) = 'crematorium'::text) OR (((tags -> 'natural'::text) = 'wetland'::text) AND ((tags -> 'wetland'::text) IS DISTINCT FROM 'mangrove'::text)) OR ((tags -> 'power'::text) = 'substation'::text) OR ((tags -> 'power'::text) = 'generator'::text) OR ((tags -> 'power'::text) = 'plant'::text) OR ((tags -> 'building'::text) = 'industrial'::text) OR ((tags -> 'landuse'::text) = 'industrial'::text) OR ((tags -> 'landuse'::text) = 'quarry'::text) OR ((tags -> 'aeroway'::text) = 'runway'::text) OR ((tags -> 'railway'::text) = 'rail'::text) OR ((tags -> 'highway'::text) = 'primary'::text) OR ((tags -> 'highway'::text) = 'trunk'::text) OR ((tags -> 'leisure'::text) = 'stadium'::text) OR ((tags -> 'landuse'::text) = 'construction'::text)) -> Parallel Seq Scan on multipolygon_000 multipolygon_3 (cost=0.00..137.01 rows=38 width=807) Filter: (((tags -> 'amenity'::text) = 'waste_transfer_station'::text) OR ((tags -> 'landuse'::text) = 'landfill'::text) OR ((tags -> 'man_made'::text) = 'spoil_heap'::text) OR ((tags -> 'man_made'::text) = 'wastewater_plant'::text) OR ((tags -> 'amenity'::text) = 'crematorium'::text) OR (((tags -> 'natural'::text) = 'wetland'::text) AND ((tags -> 'wetland'::text) IS DISTINCT FROM 'mangrove'::text)) OR ((tags -> 'power'::text) = 'substation'::text) OR ((tags -> 'power'::text) = 'generator'::text) OR ((tags -> 'power'::text) = 'plant'::text) OR ((tags -> 'building'::text) = 'industrial'::text) OR ((tags -> 'landuse'::text) = 'industrial'::text) OR ((tags -> 'landuse'::text) = 'quarry'::text) OR ((tags -> 'aeroway'::text) = 'runway'::text) OR ((tags -> 'railway'::text) = 'rail'::text) OR ((tags -> 'highway'::text) = 'primary'::text) OR ((tags -> 'highway'::text) = 'trunk'::text) OR ((tags -> 'leisure'::text) = 'stadium'::text) OR ((tags -> 'landuse'::text) = 'construction'::text)) -> Parallel Seq Scan on ways_32767 ways_5 (cost=0.00..108.99 rows=26 width=843) Filter: (((tags -> 'amenity'::text) = 'waste_transfer_station'::text) OR ((tags -> 'landuse'::text) = 'landfill'::text) OR ((tags -> 'man_made'::text) = 'spoil_heap'::text) OR ((tags -> 'man_made'::text) = 'wastewater_plant'::text) OR ((tags -> 'amenity'::text) = 'crematorium'::text) OR (((tags -> 'natural'::text) = 'wetland'::text) AND ((tags -> 'wetland'::text) IS DISTINCT FROM 'mangrove'::text)) OR ((tags -> 'power'::text) = 'substation'::text) OR ((tags -> 'power'::text) = 'generator'::text) OR ((tags -> 'power'::text) = 'plant'::text) OR ((tags -> 'building'::text) = 'industrial'::text) OR ((tags -> 'landuse'::text) = 'industrial'::text) OR ((tags -> 'landuse'::text) = 'quarry'::text) OR ((tags -> 'aeroway'::text) = 'runway'::text) OR ((tags -> 'railway'::text) = 'rail'::text) OR ((tags -> 'highway'::text) = 'primary'::text) OR ((tags -> 'highway'::text) = 'trunk'::text) OR ((tags -> 'leisure'::text) = 'stadium'::text) OR ((tags -> 'landuse'::text) = 'construction'::text)) -> Parallel Seq Scan on multipolygon_32767 multipolygon_5 (cost=0.00..19.09 rows=9 width=5966) Filter: (((tags -> 'amenity'::text) = 'waste_transfer_station'::text) OR ((tags -> 'landuse'::text) = 'landfill'::text) OR ((tags -> 'man_made'::text) = 'spoil_heap'::text) OR ((tags -> 'man_made'::text) = 'wastewater_plant'::text) OR ((tags -> 'amenity'::text) = 'crematorium'::text) OR (((tags -> 'natural'::text) = 'wetland'::text) AND ((tags -> 'wetland'::text) IS DISTINCT FROM 'mangrove'::text)) OR ((tags -> 'power'::text) = 'substation'::text) OR ((tags -> 'power'::text) = 'generator'::text) OR ((tags -> 'power'::text) = 'plant'::text) OR ((tags -> 'building'::text) = 'industrial'::text) OR ((tags -> 'landuse'::text) = 'industrial'::text) OR ((tags -> 'landuse'::text) = 'quarry'::text) OR ((tags -> 'aeroway'::text) = 'runway'::text) OR ((tags -> 'railway'::text) = 'rail'::text) OR ((tags -> 'highway'::text) = 'primary'::text) OR ((tags -> 'highway'::text) = 'trunk'::text) OR ((tags -> 'leisure'::text) = 'stadium'::text) OR ((tags -> 'landuse'::text) = 'construction'::text)) -> Append (cost=0.53..3735.74 rows=76 width=129) -> Index Scan using nodes_000_geom_idx on nodes_000 nodes (cost=0.53..25.56 rows=1 width=44) Index Cond: ((geom)::geography && _st_expand((ways_4.linestring)::geography, '200'::double precision)) Filter: (((tags -> 'building'::text) IS NOT NULL) AND ((tags -> 'building'::text) <> ALL ('{service,garages,industrial,retail,office,roof,commercial,garage,kiosk,warehouse,church,parking,public,shed,hangar,train_station,guardhouse,transportation,terrace,greenhouse,bridge,government,chapel,gazebo,civic,ruins,supermarket,sports_centre,semidetached_house,toilets,sports_hall,clinic,farm_auxiliary,stable,grandstand,bunker,gatehouse,store,temple,ventilation_kiosk,carport,cowshed,barracks,shop,cabin,barn,cathedral,wall,townhouse,manufacture,shelter,fire_station,stadium,stands,sport_hall,theatre,storage_tank,checkpoint,houseboat,abandoned,dovecote,mosque,museum,military,container,observatory,lift,tent,factory,sport,mall,riding_hall,depot,prison,gate,triumphal_arch,water_works,public_building,pavilion,bank,institute,works,collapsed,car_repair,crossing_box,fuel,tree_house,presbytery,yesq,farm,outbuilding,police,porch,sauna,monastery,cinema,tower,boathouse,library,transformer_tower,heat_exchange_station}'::text[])) AND st_dwithin((geom)::geography, (ways_4.linestring)::geography, '200'::double precision, true)) -> Index Scan using nodes_001_geom_idx on nodes_001 nodes_1 (cost=0.66..1027.11 rows=20 width=44) Index Cond: ((geom)::geography && _st_expand((ways_4.linestring)::geography, '200'::double precision)) Filter: (((tags -> 'building'::text) IS NOT NULL) AND ((tags -> 'building'::text) <> ALL ('{service,garages,industrial,retail,office,roof,commercial,garage,kiosk,warehouse,church,parking,public,shed,hangar,train_station,guardhouse,transportation,terrace,greenhouse,bridge,government,chapel,gazebo,civic,ruins,supermarket,sports_centre,semidetached_house,toilets,sports_hall,clinic,farm_auxiliary,stable,grandstand,bunker,gatehouse,store,temple,ventilation_kiosk,carport,cowshed,barracks,shop,cabin,barn,cathedral,wall,townhouse,manufacture,shelter,fire_station,stadium,stands,sport_hall,theatre,storage_tank,checkpoint,houseboat,abandoned,dovecote,mosque,museum,military,container,observatory,lift,tent,factory,sport,mall,riding_hall,depot,prison,gate,triumphal_arch,water_works,public_building,pavilion,bank,institute,works,collapsed,car_repair,crossing_box,fuel,tree_house,presbytery,yesq,farm,outbuilding,police,porch,sauna,monastery,cinema,tower,boathouse,library,transformer_tower,heat_exchange_station}'::text[])) AND st_dwithin((geom)::geography, (ways_4.linestring)::geography, '200'::double precision, true)) -> Index Scan using ways_000_linestring_idx on ways_000 ways (cost=0.66..150.89 rows=3 width=166) Index Cond: ((linestring)::geography && _st_expand((ways_4.linestring)::geography, '200'::double precision)) Filter: (((tags -> 'building'::text) IS NOT NULL) AND ((tags -> 'building'::text) <> ALL ('{service,garages,industrial,retail,office,roof,commercial,garage,kiosk,warehouse,church,parking,public,shed,hangar,train_station,guardhouse,transportation,terrace,greenhouse,bridge,government,chapel,gazebo,civic,ruins,supermarket,sports_centre,semidetached_house,toilets,sports_hall,clinic,farm_auxiliary,stable,grandstand,bunker,gatehouse,store,temple,ventilation_kiosk,carport,cowshed,barracks,shop,cabin,barn,cathedral,wall,townhouse,manufacture,shelter,fire_station,stadium,stands,sport_hall,theatre,storage_tank,checkpoint,houseboat,abandoned,dovecote,mosque,museum,military,container,observatory,lift,tent,factory,sport,mall,riding_hall,depot,prison,gate,triumphal_arch,water_works,public_building,pavilion,bank,institute,works,collapsed,car_repair,crossing_box,fuel,tree_house,presbytery,yesq,farm,outbuilding,police,porch,sauna,monastery,cinema,tower,boathouse,library,transformer_tower,heat_exchange_station}'::text[])) AND st_dwithin((linestring)::geography, (ways_4.linestring)::geography, '200'::double precision, true)) -> Index Scan using ways_001_linestring_idx on ways_001 ways_1 (cost=0.67..2329.28 rows=46 width=146) Index Cond: ((linestring)::geography && _st_expand((ways_4.linestring)::geography, '200'::double precision)) Filter: (((tags -> 'building'::text) IS NOT NULL) AND ((tags -> 'building'::text) <> ALL ('{service,garages,industrial,retail,office,roof,commercial,garage,kiosk,warehouse,church,parking,public,shed,hangar,train_station,guardhouse,transportation,terrace,greenhouse,bridge,government,chapel,gazebo,civic,ruins,supermarket,sports_centre,semidetached_house,toilets,sports_hall,clinic,farm_auxiliary,stable,grandstand,bunker,gatehouse,store,temple,ventilation_kiosk,carport,cowshed,barracks,shop,cabin,barn,cathedral,wall,townhouse,manufacture,shelter,fire_station,stadium,stands,sport_hall,theatre,storage_tank,checkpoint,houseboat,abandoned,dovecote,mosque,museum,military,container,observatory,lift,tent,factory,sport,mall,riding_hall,depot,prison,gate,triumphal_arch,water_works,public_building,pavilion,bank,institute,works,collapsed,car_repair,crossing_box,fuel,tree_house,presbytery,yesq,farm,outbuilding,police,porch,sauna,monastery,cinema,tower,boathouse,library,transformer_tower,heat_exchange_station}'::text[])) AND st_dwithin((linestring)::geography, (ways_4.linestring)::geography, '200'::double precision, true)) -> Index Scan using ways_32767_linestring_idx on ways_32767 ways_2 (cost=0.52..25.56 rows=1 width=811) Index Cond: ((linestring)::geography && _st_expand((ways_4.linestring)::geography, '200'::double precision)) Filter: (((tags -> 'building'::text) IS NOT NULL) AND ((tags -> 'building'::text) <> ALL ('{service,garages,industrial,retail,office,roof,commercial,garage,kiosk,warehouse,church,parking,public,shed,hangar,train_station,guardhouse,transportation,terrace,greenhouse,bridge,government,chapel,gazebo,civic,ruins,supermarket,sports_centre,semidetached_house,toilets,sports_hall,clinic,farm_auxiliary,stable,grandstand,bunker,gatehouse,store,temple,ventilation_kiosk,carport,cowshed,barracks,shop,cabin,barn,cathedral,wall,townhouse,manufacture,shelter,fire_station,stadium,stands,sport_hall,theatre,storage_tank,checkpoint,houseboat,abandoned,dovecote,mosque,museum,military,container,observatory,lift,tent,factory,sport,mall,riding_hall,depot,prison,gate,triumphal_arch,water_works,public_building,pavilion,bank,institute,works,collapsed,car_repair,crossing_box,fuel,tree_house,presbytery,yesq,farm,outbuilding,police,porch,sauna,monastery,cinema,tower,boathouse,library,transformer_tower,heat_exchange_station}'::text[])) AND st_dwithin((linestring)::geography, (ways_4.linestring)::geography, '200'::double precision, true)) -> Index Scan using multipolygon_000_polygon_idx1 on multipolygon_000 multipolygon (cost=0.52..25.56 rows=1 width=775) Index Cond: ((polygon)::geography && _st_expand((ways_4.linestring)::geography, '200'::double precision)) Filter: (((tags -> 'building'::text) IS NOT NULL) AND ((tags -> 'building'::text) <> ALL ('{service,garages,industrial,retail,office,roof,commercial,garage,kiosk,warehouse,church,parking,public,shed,hangar,train_station,guardhouse,transportation,terrace,greenhouse,bridge,government,chapel,gazebo,civic,ruins,supermarket,sports_centre,semidetached_house,toilets,sports_hall,clinic,farm_auxiliary,stable,grandstand,bunker,gatehouse,store,temple,ventilation_kiosk,carport,cowshed,barracks,shop,cabin,barn,cathedral,wall,townhouse,manufacture,shelter,fire_station,stadium,stands,sport_hall,theatre,storage_tank,checkpoint,houseboat,abandoned,dovecote,mosque,museum,military,container,observatory,lift,tent,factory,sport,mall,riding_hall,depot,prison,gate,triumphal_arch,water_works,public_building,pavilion,bank,institute,works,collapsed,car_repair,crossing_box,fuel,tree_house,presbytery,yesq,farm,outbuilding,police,porch,sauna,monastery,cinema,tower,boathouse,library,transformer_tower,heat_exchange_station}'::text[])) AND st_dwithin((polygon)::geography, (ways_4.linestring)::geography, '200'::double precision, true)) -> Index Scan using multipolygon_001_polygon_idx1 on multipolygon_001 multipolygon_1 (cost=0.66..125.86 rows=3 width=435) Index Cond: ((polygon)::geography && _st_expand((ways_4.linestring)::geography, '200'::double precision)) Filter: (((tags -> 'building'::text) IS NOT NULL) AND ((tags -> 'building'::text) <> ALL ('{service,garages,industrial,retail,office,roof,commercial,garage,kiosk,warehouse,church,parking,public,shed,hangar,train_station,guardhouse,transportation,terrace,greenhouse,bridge,government,chapel,gazebo,civic,ruins,supermarket,sports_centre,semidetached_house,toilets,sports_hall,clinic,farm_auxiliary,stable,grandstand,bunker,gatehouse,store,temple,ventilation_kiosk,carport,cowshed,barracks,shop,cabin,barn,cathedral,wall,townhouse,manufacture,shelter,fire_station,stadium,stands,sport_hall,theatre,storage_tank,checkpoint,houseboat,abandoned,dovecote,mosque,museum,military,container,observatory,lift,tent,factory,sport,mall,riding_hall,depot,prison,gate,triumphal_arch,water_works,public_building,pavilion,bank,institute,works,collapsed,car_repair,crossing_box,fuel,tree_house,presbytery,yesq,farm,outbuilding,police,porch,sauna,monastery,cinema,tower,boathouse,library,transformer_tower,heat_exchange_station}'::text[])) AND st_dwithin((polygon)::geography, (ways_4.linestring)::geography, '200'::double precision, true)) -> Index Scan using multipolygon_32767_polygon_idx1 on multipolygon_32767 multipolygon_2 (cost=0.52..25.55 rows=1 width=5934) Index Cond: ((polygon)::geography && _st_expand((ways_4.linestring)::geography, '200'::double precision)) Filter: (((tags -> 'building'::text) IS NOT NULL) AND ((tags -> 'building'::text) <> ALL ('{service,garages,industrial,retail,office,roof,commercial,garage,kiosk,warehouse,church,parking,public,shed,hangar,train_station,guardhouse,transportation,terrace,greenhouse,bridge,government,chapel,gazebo,civic,ruins,supermarket,sports_centre,semidetached_house,toilets,sports_hall,clinic,farm_auxiliary,stable,grandstand,bunker,gatehouse,store,temple,ventilation_kiosk,carport,cowshed,barracks,shop,cabin,barn,cathedral,wall,townhouse,manufacture,shelter,fire_station,stadium,stands,sport_hall,theatre,storage_tank,checkpoint,houseboat,abandoned,dovecote,mosque,museum,military,container,observatory,lift,tent,factory,sport,mall,riding_hall,depot,prison,gate,triumphal_arch,water_works,public_building,pavilion,bank,institute,works,collapsed,car_repair,crossing_box,fuel,tree_house,presbytery,yesq,farm,outbuilding,police,porch,sauna,monastery,cinema,tower,boathouse,library,transformer_tower,heat_exchange_station}'::text[])) AND st_dwithin((polygon)::geography, (ways_4.linestring)::geography, '200'::double precision, true)) JIT: Functions: 81 Options: Inlining true, Optimization true, Expressions true, Deforming true (48 rows)