С помощью этого запроса я получаю контуры департамента Жиронды, а также муниципалитетов, в которых расположены нотариусы, представленные либо узлом, либо путем. Однако мне бы хотелось повернуть процесс вспять, то есть выявить муниципалитеты, в которых нет нотариусов, и очертить их контуры.
`[out:xml][timeout:25];
// Locate the area corresponding to the Gironde department
area["ref:INSEE" = "33"]->.a;
// Search for notaries within the selected area (both as nodes and ways)
(
node(area.a)["lawyer" = "notary"];
node(area.a)["office" = "notary"];
way(area.a)["lawyer" = "notary"];
way(area.a)["office" = "notary"];
)->.notaires;
// Separate nodes and ways to process them individually
node.notaires->.notaire_nodes;
way.notaires->.notaire_ways;
// Identify administrative areas where the notaries (nodes) are located
.notaire_nodes is_in -> .potential_areas_nodes;
area.potential_areas_nodes[admin_level=8]->.commune_areas_nodes;
// Identify administrative areas (communes) where the notaries (ways) are located
way.notaire_ways->.ways_notaires;
(way.ways_notaires; >;); // Retrieve all nodes from the ways
is_in -> .potential_areas_ways;
area.potential_areas_ways[admin_level=8]->.commune_areas_ways;
// Combine the communes found for both nodes and ways
(.commune_areas_nodes; .commune_areas_ways;)->.all_communes_with_notaires;
// Find the boundaries of all communes within the Gironde department (admin_level=8)
rel(area.a)["boundary" = "administrative"]["admin_level" = "8"]->.all_communes;
// Extract the boundaries of the communes that contain notaries
rel.all_communes(pivot.all_communes_with_notaires)->.communes_with_notaires_rel;
// Get the boundary of the entire Gironde department (admin_level=6)
rel(area.a)["boundary" = "administrative"]["admin_level" = "6"]->.departement;
// Display the notaries (both nodes and ways), the boundaries of communes with notaries, and the department's boundary
(
.notaires;
rel.departement;
rel.communes_with_notaires_rel;
);
out geom;
Заранее благодарим вас за помощь.
Вы можете использовать метод разницы (.a; - .b;) -> .c;
.
В вашем коде с (.all_communes; - .communes_with_notaires_rel;) -> .communes_without_notaires_rel;
следующим образом:
[out:xml][timeout:25];
// Locate the area corresponding to the Gironde department
area["ref:INSEE" = "33"]->.a;
// Search for notaries within the selected area (both as nodes and ways)
(
node(area.a)["lawyer" = "notary"];
node(area.a)["office" = "notary"];
way(area.a)["lawyer" = "notary"];
way(area.a)["office" = "notary"];
)->.notaires;
// Separate nodes and ways to process them individually
node.notaires->.notaire_nodes;
way.notaires->.notaire_ways;
// Identify administrative areas where the notaries (nodes) are located
.notaire_nodes is_in -> .potential_areas_nodes;
area.potential_areas_nodes[admin_level=8]->.commune_areas_nodes;
// Identify administrative areas (communes) where the notaries (ways) are located
way.notaire_ways->.ways_notaires;
(way.ways_notaires; >;); // Retrieve all nodes from the ways
is_in -> .potential_areas_ways;
area.potential_areas_ways[admin_level=8]->.commune_areas_ways;
// Combine the communes found for both nodes and ways
(.commune_areas_nodes; .commune_areas_ways;)->.all_communes_with_notaires;
// Find the boundaries of all communes within the Gironde department (admin_level=8)
rel(area.a)["boundary" = "administrative"]["admin_level" = "8"]->.all_communes;
// Extract the boundaries of the communes that contain notaries
rel.all_communes(pivot.all_communes_with_notaires)->.communes_with_notaires_rel;
// Get the boundary of the entire Gironde department (admin_level=6)
rel(area.a)["boundary" = "administrative"]["admin_level" = "6"]->.departement;
// Get the communes without notaires
(.all_communes; - .communes_with_notaires_rel;) -> .communes_without_notaires_rel;
.communes_without_notaires_rel;
out geom;
С радостью. Было бы полезно, если бы вы могли указать принятый полезный ответ и/или проголосовать за него.
Когда я нажимаю кнопку «Этот ответ полезен», он отвечает: «Спасибо за отзыв! Чтобы проголосовать, вам нужно иметь как минимум 15 репутации, но ваш отзыв записан».
«Отлично, вы только что решили эту проблему! Спасибо огромное!»