我希望所有行业都在" Chemnitz"用" hot_water_tank"。
此查询为我提供了标记为"landuse"="industrial"
和"man_made"="hot_water_tank"
的所有对象。我只需要包含"landuse"="industrial"
的{{1}}。
"hot_water_tank"
我试过这个
area
["name"="Chemnitz"]->.a;
out body qt;
(
way
(area.a)
["landuse"="industrial"];
way(area.a)
["man_made"="hot_water_tank"];
);
out body qt;
>;
out skel qt;
结果截图:
答案 0 :(得分:1)
这里的关键是使用Overpass QL中的两个鲜为人知的语句。 首先 is_in 为我们提供了功能所在的区域,其次我们需要使用 pivot 从所述区域中提取关系和/或方式。
以下是示例代码:
(area["name"="Chemnitz"]) -> .chemnitz; //Chemnitz
(
way(area.chemnitz)["man_made"="hot_water_tank"];
(._;>;)
)->.hotwatertank; // all tanks in Chemnitz
(.hotwatertank is_in;) -> .areas; // areas in which tanks are located
(
way(pivot.areas)["landuse"="industrial"];
relation(pivot.areas)["landuse"="industrial"];
)->._; // convert areas to ways and relations with "landuse"="industrial" pair
(._;._ >;); // get geometry
out body qt; //print