[英]Overpass query. Absence of [maxsize] returns significantly smaller results
我有两个立交桥查询。
node(33.68336,-117.89466,34.14946,-117.03498);
way["highway"~"motorway|motorway_link|trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|road|residential|service"](bn);
(._;>;);
out;
上面的查询返回一个 osm.xml 文件,大小为 167.306 kb。
[out:xml][maxsize:2000000000];
(
node(33.68336,-117.89466,34.14946,-117.03498);
way["highway"~"motorway|motorway_link|trunk|trunk_link|primary|primary_link|secondary|seconda ry_link|tertiary|tertiary_link|road|residential|service"](bn);
(._;>;);
);
out;
第二个查询返回一个大小为 618.994 kb 的文件。 为什么第二个查询会返回明显更大的结果? 第一个查询没有给我完整的数据集吗? 有没有办法用两个查询获得相同的结果? (缺少 [maxsize] 有时会导致错误……)
我觉得您的查询缺少一些东西:
node(33.68336,-117.89466,34.14946,-117.03498);
应该返回这个区域的所有节点,这是很多数据。
然后是第二行:
way"highway"~“motorway|motorway_link|trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|road|residential|service”;
给出一个错误,因为它应该用括号和直引号写成这样:
way["highway"~"motorway|motorway_link|trunk|trunk_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|road|residential|service"];
但这会寻找世界上所有的道路,并且不再使用您的第一个查询,因为您的 output 只是第二个查询。 但这是一个巨大的数据量,可能在 GB 范围内。
所以我不明白你怎么会只得到 167 kB。 我假设您必须有一个边界框或您没有提到的其他过滤器。
但是在你的第二个例子中,你将两个查询结合起来,因为你把它们放在方括号中: (... ; ...;); out;
(... ; ...;); out;
所以你会得到该地区的所有节点和世界上所有的道路。 同样,如果你有一个额外的边界框或过滤器,你可能只会得到 619 kB。 假设有很多非道路节点,你得到更多数据是有意义的,因为你得到了两个搜索的联合(所有节点+来自道路的节点)
问题未解决?试试以下方法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.