1

私は私の国のすべての学校のリストを取得しようとしています。何度か試行した後、http://overpass-turbo.euでエラーなしで動作する次のクエリを作成します。

/*
This has been generated by the overpass-turbo wizard.
The original search was:
“amenity=school”=“yes”
*/
[out:json][timeout:60];
// gather results
(
  // query part for: “amenity=school”
  node[amenity=school]({{geocodeBbox:Italia}});
  way[amenity=school]({{geocodeBbox:Italia}});
  relation[amenity=school]({{geocodeBbox:Italia}});
);
// print results
out body;
>;
out skel qt;

以前geocodeBboxはイタリアのすべての学校を選択していましたがgeocodeId、 (ドキュメントgeocodeAreaを参照してください) 次のエラーが表示されるためです。

Error: line 10: parse error: ')' expected - '(' found.

Error: line 11: parse error: ')' expected - '(' found.

Error: line 11: parse error: ';' expected - ')' found.

Error: line 12: parse error: ')' expected - '(' found.

Error: line 12: parse error: ';' expected - ')' found.

Error: line 13: parse error: Unknown type ")"

Error: line 13: parse error: An empty query is not allowed

Error: line 13: parse error: Unknown type ";"

Error: line 15: parse error: An empty query is not allowed

とにかく問題は、クエリがイタリアにない学校も選択することです (たとえば、クロアチアの学校があります)。

では、特定の国からポイントを正確に取得するにはどうすればよいでしょうか。

4

1 に答える 1

4

とにかく問題は、クエリがイタリアにない学校も選択することです (たとえば、クロアチアの学校があります)。

そのとおりです。境界ボックス (bbox) は多角形ではなく四角形です。したがって、指定された bbox と完全に一致する長方形の国がある場合を除いて、常にもう少し多く含まれます;)

代わりに次のクエリを試してください。

[out:json][timeout:600];
// gather results
{{geocodeArea:Italia}}->.searchArea;
(
  // query part for: “amenity=school”
  node[amenity=school](area.searchArea);
  way[amenity=school](area.searchArea);
  relation[amenity=school](area.searchArea);
);
// print results
out body;
>;
out skel qt;
于 2015-06-25T20:15:49.353 に答える