In diesem Dokument erfahren Sie, wie Sie Beispiel-Orts-ID-Daten aus Places Insights mit Funktionen für die Anzahl der Orte verwenden, um das Vertrauen in Ihre Ergebnisse zu stärken.
Das Architekturmuster
Dieses Architekturmuster bietet einen wiederholbaren Workflow, um die Lücke zwischen statistischen Analysen auf hoher Ebene und der Überprüfung der Ground Truth zu schließen. Durch die Kombination der Skalierbarkeit von BigQuery mit der Präzision der Places API können Sie Ihre Analyseergebnisse zuverlässig validieren. Das ist besonders nützlich für die Standortauswahl, die Wettbewerbsanalyse und die Marktforschung, bei denen das Vertrauen in die Daten von entscheidender Bedeutung ist.
Das Kernstück dieses Musters umfasst vier wichtige Schritte:
- Umfangreiche Analysen durchführen:Mit einer Funktion zum Zählen von Orten aus Places Insights in BigQuery können Sie Ortsdaten für ein großes geografisches Gebiet wie eine ganze Stadt oder Region analysieren.
- Proben isolieren und extrahieren:Identifizieren Sie Bereiche von Interesse (z.B.
„Hotspots“ mit hoher Dichte) aus den aggregierten Ergebnissen und extrahieren Sie die von der Funktion bereitgestellte
sample_place_ids
. - Grundwahrheiten-Details abrufen:Verwenden Sie die extrahierten Orts-IDs, um gezielte Aufrufe der Place Details API auszuführen und umfangreiche, realistische Details für jeden Ort abzurufen.
- Kombinierte Visualisierung erstellen:Legen Sie die detaillierten Ortsdaten über die ursprüngliche statistische Karte, um visuell zu prüfen, ob die aggregierten Werte die Realität vor Ort widerspiegeln.
Lösungsablauf
Mit diesem Workflow können Sie die Lücke zwischen Trends auf Makroebene und Fakten auf Mikroebene schließen. Sie beginnen mit einer breiten, statistischen Ansicht und gehen dann strategisch ins Detail, um die Daten anhand konkreter Beispiele aus der Praxis zu überprüfen.
Ortsdichte in großem Umfang mit Places Insights analysieren
Der erste Schritt besteht darin, sich einen Überblick über die aktuelle Situation zu verschaffen. Anstatt Tausende von einzelnen Points of Interest (POIs) abzurufen, können Sie eine einzelne Abfrage ausführen, um eine statistische Zusammenfassung zu erhalten.
Die Funktion PLACES_COUNT_PER_H3
Places Insights ist dafür ideal. Die Anzahl der POIs wird in einem hexagonalen Raster (H3) zusammengefasst. So können Sie anhand Ihrer spezifischen Kriterien (z. B. Restaurants mit einer hohen Bewertung, die geöffnet sind) schnell Bereiche mit hoher oder niedriger Dichte identifizieren.
Hier ist eine Beispielabfrage: Sie müssen die geografische Einheit für Ihren Suchbereich angeben. Ein offenes Dataset wie das Overture Maps Data öffentliche BigQuery-Dataset kann verwendet werden, um Daten zu geografischen Grenzen abzurufen.
Für häufig verwendete Grenzen offener Datasets empfehlen wir, sie in einer Tabelle in Ihrem eigenen Projekt zu materialisieren. Dadurch werden die BigQuery-Kosten erheblich gesenkt und die Abfrageleistung verbessert.
-- This query counts all highly-rated, operational restaurants
-- across a large geography, grouping them into H3 cells.
SELECT *
FROM
`places_insights___gb.PLACES_COUNT_PER_H3`(
JSON_OBJECT(
'geography', your_defined_geography,
'h3_resolution', 8,
'types', ['restaurant'],
'business_status', ['OPERATIONAL'],
'min_rating', 3.5
)
);
Die Ausgabe dieser Abfrage ist eine Tabelle mit H3-Zellen und der Anzahl der Orte in jeder Zelle. Sie bildet die Grundlage für eine Heatmap zur Dichte.
Hotspots isolieren und Beispiel-Orts-IDs extrahieren
Das Ergebnis der Funktion PLACES_COUNT_PER_H3
gibt auch ein Array von sample_place_ids
zurück, mit bis zu 250 Orts-IDs pro Element der Antwort. Diese IDs stellen die Verbindung zwischen der aggregierten Statistik und den einzelnen Orten her, die zu ihr beitragen.
Ihr System könnte zuerst die relevantesten Zellen aus der ursprünglichen Anfrage identifizieren.
Sie können beispielsweise die 20 Zellen mit den höchsten Werten auswählen. Anschließend fassen Sie die sample_place_ids
aus diesen Hotspots in einer einzigen Liste zusammen.
Diese Liste enthält eine kuratierte Stichprobe der interessantesten POIs aus den relevantesten Bereichen, damit Sie sich auf die gezielte Überprüfung vorbereiten können.
Wenn Sie Ihre BigQuery-Ergebnisse in Python mit einem pandas-DataFrame verarbeiten, ist die Logik zum Extrahieren dieser IDs einfach:
# Assume 'results_df' is a pandas DataFrame from your BigQuery query.
# 1. Identify the 20 busiest H3 cells by sorting and taking the top results.
top_hotspots_df = results_df.sort_values(by='count', ascending=False).head(20)
# 2. Extract and flatten the lists of sample_place_ids from these hotspots.
# The .explode() function creates a new row for each ID in the lists.
all_sample_ids = top_hotspots_df['sample_place_ids'].explode()
# 3. Create a final list of unique Place IDs to verify.
place_ids_to_verify = all_sample_ids.unique().tolist()
print(f"Consolidated {len(place_ids_to_verify)} unique Place IDs for spot-checking.")
Eine ähnliche Logik kann angewendet werden, wenn andere Programmiersprachen verwendet werden.
Ground Truth-Details mit der Places API abrufen
Mit Ihrer konsolidierten Liste von Orts-IDs wechseln Sie nun von der Analyse im großen Maßstab zum Abrufen spezifischer Daten. Mit diesen IDs fragen Sie die Place Details API nach detaillierten Informationen zu den einzelnen Beispielorten ab.
Dies ist ein wichtiger Validierungsschritt. Während Sie mit Places Insights die Anzahl der Restaurants in einem Gebiet ermitteln konnten, erfahren Sie mit der Places API, welche Restaurants es sind. Sie erhalten den Namen, die genaue Adresse, den Breiten-/Längengrad, die Nutzerbewertung und sogar einen direkten Link zum Standort in Google Maps. Dadurch werden Ihre Beispieldaten angereichert und abstrakte IDs in konkrete, überprüfbare Orte umgewandelt.
Eine vollständige Liste der über die Place Details API verfügbaren Daten und der Kosten für den Abruf finden Sie in der API-Dokumentation. Der FieldMask
wird in der Anfrage festgelegt, um die von der API zurückgegebenen Daten zu steuern.
Eine Anfrage an die Places API für eine bestimmte ID mit der Python-Clientbibliothek würde so aussehen:
# A request to fetch details for a single Place ID.
request = {"name": f"places/{place_id}"}
# Define the fields you want returned in the response as a comma-separated string.
fields_to_request = "displayName,formattedAddress,location,googleMapsUri"
# The response contains ground truth data.
response = places_client.get_place(
request=request,
metadata=[("x-goog-fieldmask", fields_to_request)]
)
Weitere Informationen finden Sie in den Beispielen für die Clientbibliothek der Places API (New).
Kombinierte Visualisierung zur Validierung erstellen
Im letzten Schritt werden beide Datasets in einer einzigen Ansicht zusammengeführt. So können Sie Ihre erste Analyse sofort und intuitiv überprüfen. Die Visualisierung sollte zwei Ebenen haben:
- Basisebene:Eine Choroplethen- oder Heatmap, die aus den ersten
PLACES_COUNT_PER_H3
-Ergebnissen generiert wird und die Gesamtdichte der Orte in Ihrer geografischen Einheit zeigt. - Oberste Ebene:Eine Reihe einzelner Markierungen für jeden Beispiel-POI, die anhand der genauen Koordinaten aus der Places API aus dem vorherigen Schritt dargestellt werden.
Die Logik zum Erstellen dieser kombinierten Ansicht wird in diesem Pseudocodebeispiel dargestellt:
# Assume 'h3_density_data' is your aggregated data from Step 1.
# Assume 'detailed_places_data' is your list of place objects from Step 3.
# Create the base choropleth map from the H3 density data.
# The 'count' column determines the color of each hexagon.
combined_map = create_choropleth_map(
data=h3_density_data,
color_by_column='count'
)
# Iterate through the detailed place data to add individual markers.
for place in detailed_places_data:
# Construct the popup information with key details and a link.
popup_html = f"""
<b>{place.name}</b><br>
Address: {place.address}<br>
<a href="{place.google_maps_uri}" target="_blank">View on Maps</a>
"""
# Add a marker for the current place to the base map.
combined_map.add_marker(
location=[place.latitude, place.longitude],
popup=popup_html,
tooltip=place.name
)
# Display the final map with both layers.
display(combined_map)
Wenn Sie die spezifischen Bodenwahrheitsmarker auf die Übersichtskarte mit der Dichte legen, können Sie sofort bestätigen, dass die als Hotspots identifizierten Bereiche tatsächlich eine hohe Konzentration der von Ihnen analysierten Orte aufweisen. Diese visuelle Bestätigung schafft Vertrauen in Ihre datengestützten Schlussfolgerungen.
Fazit
Dieses Architekturmuster bietet eine robuste und effiziente Methode zum Validieren von räumlichen Erkenntnissen im großen Maßstab. Wenn Sie Places Insights für umfassende, skalierbare Analysen und die Place Details API für gezielte Überprüfungen der Grundwahrheit nutzen, schaffen Sie einen leistungsstarken Feedback-Loop. So können Sie sicher sein, dass Ihre strategischen Entscheidungen, sei es bei der Auswahl von Einzelhandelsstandorten oder bei der Logistikplanung, auf Daten basieren, die nicht nur statistisch signifikant, sondern auch nachweislich genau sind.
Nächste Schritte
- Weitere Funktionen zum Zählen von Orten
- In der Places API-Dokumentation finden Sie weitere Felder, die Sie anfordern können, um Ihre Analyse zu optimieren.
Beitragende
Henrik Valve | DevX Engineer