Eine Abfrage in der Ausgabemenge der Resultate verringern - auf einen Teil ( 1/10 ) bis (1/100)

hallo und guten Abend,

Die Frage die mich im Moment beschäftigt: Eine Abfrage in der Ausgabemenge der Resultate verringern - auf einen Teil ( 1/10 ) bis (1/100)

es gibt m.E. weit über 30000 Objekte in Deutschland, die zwar mit amenity=school, aber nicht mit isced:level getaggt sind (Overpass-Turbo Abfrage 4), diese Objekte werden dann logischerweise auch nicht in der Übersichtskarte für isced:level angezeigt.

[out:json][timeout:250];
{{geocodeArea:Deutschland}}->.searchArea;
nwr[amenity=school][!"isced:level"](area.searchArea);
out geom;

Wie kann ich diese schiere Menge an Resultaten reduzieren -sagen wir auf etwa ein Zehntel oder ein Hundertstel -

ist das denn moeglich!?

Freue mich auf einen Tipp

Vg TagTheWorld

Pro Bundesland auswerten.

Oder die Overpass Turbo Variante ausprobieren, die für größere Ausgabemengen ausgelegt ist. Namen hab ich grad vergessen.

2 Likes

Overpass Ultra?

Das ist aber bei so einer großen Datenmenge trotzdem deutlich schneller, wenn man einen kleineren Kartenausschnitt nimmt.

1 Like

hallo Chris66 hallo osmuser63783 :slightly_smiling_face:

vielen dank für Eure Rückmeldungen. Freue mich - ja von Overpass-Ultra habe ich auch schon mal gehoert - schafft groessere Datenmengen.

Mir gehts nur um eine - sagen wir eine DEMO-Darstellung. Ich brauche nicht soooo viele Entries bzw. eine sooo große Datenmenge: es würde mir reichen wenn das nur eine Auswahl ist

also z.b. etwa so:


hmm - cool wäre halt wenn das dann auch skaliert m.a.W. wenn wie bei einem klassischen Leaflet moeglich dann auch das in der Anzeige variiert.

https://leafletjs.com/examples/quick-start/

würde so etwas gerne in ein WordPress-Widget einbinden. Meint ihr dass das geht!?

freue mich von Euch wieder zu hoeren.
vg TagTheWorld :slightly_smiling_face:

Also wenn ich da aus der abfrage die daten in einem GeoJson - Format expotiere - dann sollte das gehen. Dann kann ich die Daten weiterverarbeiten.

nachtrag:

also - ich denke, dass ich ggf. auch mit Python so ansetzen könnte:

import overpy
import json

API = overpy.Overpass()

# Fetch schools in Germany
result = API.query("""
[out:json][timeout:250];
{{geocodeArea:Deutschland}}->.searchArea;
nwr[amenity=school][!"isced:level"](area.searchArea);
out geom;
""")

# Create a GeoJSON dictionary to store the features
geojson = {
    "type": "FeatureCollection",
    "features": []
}

# Iterate over the result and extract relevant information
for node in result.nodes:
    # Extract coordinates
    lon = float(node.lon)
    lat = float(node.lat)

    # Create a GeoJSON feature for each node
    feature = {
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [lon, lat]
        },
        "properties": {
            "name": node.tags.get("name", "Unnamed School"),
            "amenity": node.tags.get("amenity", "school")
            # Add more properties as needed
        }
    }

    # Append the feature to the feature list
    geojson["features"].append(feature)

# Write the GeoJSON to a file
with open("schools.geojson", "w") as f:
    json.dump(geojson, f)

print("GeoJSON file created successfully!")

Dann kann ich hier - ab dieser Stelle mit den Daten weiterarieiten - m.a.W. das GeoJSON-Format sinnvoll nutzen - um ein Leaflet zu erzeugen…