Bu belgede, sonuçlarınızın güvenilirliğini artırmak için hedeflenen Yer Ayrıntıları aramalarının yanı sıra Yer Sayısı İşlevleri'ni kullanarak Places Insights'tan alınan örnek Yer Kimlikleri verilerini nasıl kullanacağınızı öğreneceksiniz.
Mimari Desen
Bu mimari desen, üst düzey istatistiksel analiz ile gerçeklik doğrulama arasındaki boşluğu doldurmak için tekrarlanabilir bir iş akışı sunar. BigQuery'nin ölçeğini Places API'nin hassasiyetiyle birleştirerek analitik bulgularınızı güvenle doğrulayabilirsiniz. Bu özellik, özellikle veri güveninin çok önemli olduğu site seçimi, rakip analizi ve pazar araştırması için yararlıdır.
Bu kalıbın temelinde dört önemli adım bulunur:
- Büyük Ölçekli Analiz Yapma: BigQuery'deki Places Insights'tan Yer Sayısı İşlevi'ni kullanarak yer verilerini büyük bir coğrafi bölgede (ör. bir şehrin veya bölgenin tamamı) analiz edin.
- Örnekleri İzole Etme ve Ayıklama: İlgi alanlarını belirleyin (ör.
"yoğunluklu alanları" (yüksek yoğunluklu) birleştirilmiş sonuçlardan kaldırır ve işlev tarafından sağlanan
sample_place_ids
değerini çıkarır. - Gerçeklik verilerini alma: Her yer için zengin ve gerçek dünyayla ilgili ayrıntıları getirmek üzere, Yer kimliklerini kullanarak Yer Ayrıntıları API'ye hedeflenmiş çağrılar yapın.
- Birleşik Görselleştirme Oluşturma: Toplanan sayıların yerel gerçekliği yansıttığını görsel olarak doğrulamak için ayrıntılı yer verilerini ilk üst düzey istatistiksel haritanın üzerine yerleştirin.
Çözüm İş Akışı
Bu iş akışı, makro düzeydeki trendler ile mikro düzeydeki gerçekler arasındaki boşluğu kapatmanıza olanak tanır. Geniş ve istatistiksel bir görünümle başlar, verileri belirli ve gerçek hayattan örneklerle doğrulamak için stratejik olarak ayrıntılara inersiniz.
Yer Analizleri ile Yer Yoğunluğunu Büyük Ölçekte Analiz Etme
İlk adım, genel olarak durumu anlamaktır. Binlerce ayrı ilgi çekici nokta (İÇN) getirmek yerine, istatistiksel bir özet almak için tek bir sorgu çalıştırabilirsiniz.
Bu amaç için ideal olan Places Insights PLACES_COUNT_PER_H3
işlevini
kullanabilirsiniz. Bu özellik, ilgi alanı sayısı verilerini altıgen ızgara sisteminde (H3) toplar.Böylece, belirli ölçütlerinize (ör. yüksek puanlı ve hizmet veren restoranlar) göre yüksek veya düşük yoğunluklu alanları hızlıca belirleyebilirsiniz.
Örnek bir sorgu aşağıda verilmiştir. Arama alanı coğrafyanızı sağlamanız gerektiğini unutmayın. Coğrafi sınır verilerini almak için Overture Maps Data BigQuery herkese açık veri kümesi gibi açık bir veri kümesi kullanılabilir.
Sık kullanılan açık veri kümesi sınırları için bunları kendi projenizdeki bir tabloda somutlaştırmanızı öneririz. Bu, BigQuery maliyetlerini önemli ölçüde azaltır ve sorgu performansını artırır.
-- 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
)
);
Bu sorgunun çıktısı, H3 hücrelerinin ve her bir hücredeki yerlerin sayısını içeren bir tablo oluşturur. Bu tablo, yoğunluk ısı haritasının temelini oluşturur.
Yoğun bölgeleri belirleme ve örnek yer kimliklerini ayıklama
PLACES_COUNT_PER_H3
işlevinin sonucu, yanıtın öğesi başına 250'ye kadar yer kimliği içeren bir dizi de döndürür.sample_place_ids
Bu kimlikler, toplu istatistikten bu istatistiğe katkıda bulunan tek tek yerlere giden bağlantıdır.
Sisteminiz ilk sorgudaki en alakalı hücreleri belirleyebilir.
Örneğin, en yüksek sayıya sahip ilk 20 hücreyi seçebilirsiniz. Ardından, bu önemli noktalardan sample_place_ids
öğesini tek bir listede birleştirirsiniz.
Bu liste, en alakalı alanlardaki en ilginç ÖY'lerin özel olarak seçilmiş bir örneğini temsil eder ve sizi hedeflenen doğrulamaya hazırlar.
BigQuery sonuçlarınızı Python'da pandas DataFrame kullanarak işliyorsanız bu kimlikleri ayıklama mantığı basittir:
# 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.")
Diğer programlama dilleri kullanılırken de benzer bir mantık uygulanabilir.
Places API ile Doğru Bilgi Ayrıntılarını Alma
Yer kimliklerinin birleştirilmiş listesiyle artık büyük ölçekli analizden belirli veri alımına geçiş yapabilirsiniz. Bu kimlikleri, her örnek konumla ilgili ayrıntılı bilgi için Place Details API'yi sorgulamak üzere kullanacaksınız.
Bu, kritik bir doğrulama adımıdır. Places Insights, bir bölgede kaç restoran olduğunu gösterirken Places API, bu restoranların hangileri olduğunu gösterir. Ayrıca restoranların adını, tam adresini, enlem/boylamını, kullanıcı puanını ve hatta Google Haritalar'daki konumlarına doğrudan bağlantı sağlar. Bu, örnek verilerinizi zenginleştirerek soyut kimlikleri somut ve doğrulanabilir yerlere dönüştürür.
Yer Ayrıntıları API'sinden kullanılabilen verilerin tam listesi ve alma işlemiyle ilişkili maliyet için API belgelerini inceleyin. API'den döndürülen verileri kontrol etmek için istekte FieldMask
ayarlanır.
Python istemci kitaplığı kullanılarak belirli bir kimlik için Places API'ye yapılan istek şu şekilde görünür:
# 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)]
)
Daha fazla bilgi için Places API (Yeni) istemci kitaplığı örneklerine göz atın.
Doğrulama için birleşik görselleştirme oluşturma
Son adım, her iki veri kümesini tek bir görünümde bir araya getirmektir. Bu sayede, ilk analizinizi anında ve sezgisel bir şekilde kontrol edebilirsiniz. Görselleştirmeniz iki katmandan oluşmalıdır:
- Temel Katman: İlk
PLACES_COUNT_PER_H3
sonuçlarından oluşturulan bir koroplet veya ısı haritası. Coğrafyanızdaki yerlerin genel yoğunluğunu gösterir. - En Üst Katman: Önceki adımda Places API'den alınan tam koordinatlar kullanılarak çizilen, her örnek ÖY için ayrı işaretçilerden oluşan bir grup.
Bu birleşik görünümü oluşturma mantığı, aşağıdaki sözde kod örneğinde açıklanmıştır:
# 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)
Yüksek düzeyli yoğunluk haritasına belirli, gerçeklik temelli işaretçileri yerleştirerek, etkin nokta olarak tanımlanan alanların gerçekten de analiz ettiğiniz yerlerin yüksek yoğunluklu bir konsantrasyonunu içerdiğini anında doğrulayabilirsiniz. Bu görsel onay, veriye dayalı sonuçlarınıza duyulan güveni önemli ölçüde artırır.
Sonuç
Bu mimari model, büyük ölçekli coğrafi analizleri doğrulamak için sağlam ve verimli bir yöntem sunar. Kapsamlı ve ölçeklenebilir analiz için Places Insights'tan, hedeflenmiş ve gerçeklik temelli doğrulama için ise Yer Ayrıntıları API'sinden yararlanarak güçlü bir geri bildirim döngüsü oluşturursunuz. Bu sayede, ister perakende sitesi seçimi ister lojistik planlama olsun, stratejik kararlarınız yalnızca istatistiksel olarak anlamlı değil, aynı zamanda doğrulanabilir şekilde doğru olan verilere dayanır.
Sonraki adımlar
- Farklı analiz sorularını nasıl yanıtlayabileceklerini görmek için diğer Yer Sayısı İşlevleri'ni keşfedin.
- Analizinizi daha da zenginleştirmek için isteyebileceğiniz diğer alanları öğrenmek üzere Places API dokümanlarını inceleyin.
Katkıda bulunanlar
Henrik Valve | DevX Engineer