इस दस्तावेज़ में, आपको Places Insights से मिले, जगह के आईडी के सैंपल डेटा का इस्तेमाल करने का तरीका बताया जाएगा. इसके लिए, Place Count Functions, और टारगेट किए गए Place Details लुकअप का इस्तेमाल किया जाएगा, ताकि आपको अपने नतीजों पर भरोसा हो सके.
इस पैटर्न के रेफ़रंस के तौर पर लागू करने के बारे में ज़्यादा जानने के लिए, यह जानकारी देने वाली नोटबुक देखें:

आर्किटेक्चरल पैटर्न
इस आर्किटेक्चरल पैटर्न की मदद से, एक ही वर्कफ़्लो को बार-बार इस्तेमाल किया जा सकता है. इससे, बड़े पैमाने पर किए जाने वाले आंकड़ों के विश्लेषण और असल डेटा की पुष्टि के बीच के अंतर को कम किया जा सकता है. BigQuery यह पैटर्न, खास तौर पर साइट चुनने, प्रतिस्पर्धियों के विश्लेषण, और मार्केट रिसर्च के लिए काम का है. इन कामों के लिए, डेटा पर भरोसा करना ज़रूरी है.
इस पैटर्न में, चार मुख्य चरण शामिल हैं:
- बड़े पैमाने पर विश्लेषण करना: Places Insights में मौजूद Place Count Function का इस्तेमाल करके, BigQuery में जगह के डेटा का विश्लेषण करें. इसके लिए, बड़े भौगोलिक इलाके का डेटा इस्तेमाल करें. जैसे, पूरे शहर या इलाके का डेटा.
- सैंपल को अलग करना और उन्हें एक्सट्रैक्ट करना: एग्रीगेट किए गए नतीजों से, दिलचस्पी के इलाकों की पहचान करें.जैसे, ज़्यादा घनत्व वाले "हॉटस्पॉट". इसके बाद, फ़ंक्शन से मिले
sample_place_idsको एक्सट्रैक्ट करें. - असल डेटा की जानकारी पाना: एक्सट्रैक्ट किए गए Place ID का इस्तेमाल करके, Place Details API को टारगेट किए गए कॉल करें. इससे, हर जगह के बारे में असल दुनिया की ज़्यादा जानकारी फ़ेच की जा सकती है.
- एक साथ विज़ुअलाइज़ेशन बनाना: एग्रीगेट किए गए आंकड़ों की पुष्टि करने के लिए, शुरुआती आंकड़ों के आधार पर बने मैप पर, जगह के बारे में ज़्यादा जानकारी वाला डेटा जोड़ें. इससे यह पुष्टि की जा सकती है कि एग्रीगेट किए गए आंकड़े, असल डेटा को दिखाते हैं.
सॉल्यूशन का वर्कफ़्लो
इस वर्कफ़्लो की मदद से, बड़े पैमाने पर दिखने वाले रुझानों और छोटे पैमाने पर दिखने वाले असल डेटा के बीच के अंतर को कम किया जा सकता है. शुरुआत में, आंकड़ों के आधार पर बड़े पैमाने पर डेटा देखें. इसके बाद, असल दुनिया के उदाहरणों की मदद से डेटा की पुष्टि करने के लिए, रणनीति के तहत डेटा को और गहराई से देखें.
Places Insights की मदद से, बड़े पैमाने पर जगह के घनत्व का विश्लेषण करना
पहला चरण है, बड़े पैमाने पर डेटा को समझना. दिलचस्पी की हज़ारों जगहों (पीओआई) की जानकारी फ़ेच करने के बजाय, एक क्वेरी चलाकर आंकड़ों के आधार पर खास जानकारी पाई जा सकती है.
इसके लिए, Places Insights का PLACES_COUNT_PER_H3
फ़ंक्शन
सबसे सही है. यह फ़ंक्शन, पीओआई की संख्या को हेक्सागोनल ग्रिड सिस्टम
(H3) में एग्रीगेट करता है.इससे, अपने तय किए गए मानदंड के आधार पर, ज़्यादा या कम घनत्व वाले इलाकों की पहचान की जा सकती है. जैसे, ज़्यादा रेटिंग वाले और चालू रेस्टोरेंट.
क्वेरी का एक उदाहरण यहां दिया गया है. ध्यान दें कि आपको खोज के लिए चुने गए इलाके की भौगोलिक जानकारी देनी होगी. भौगोलिक सीमा का डेटा पाने के लिए, Overture Maps Data BigQuery सार्वजनिक डेटासेट जैसे खुले डेटासेट का इस्तेमाल किया जा सकता है.
हमारा सुझाव है कि अक्सर इस्तेमाल किए जाने वाले खुले डेटासेट की सीमाओं को अपने प्रोजेक्ट में किसी टेबल में सेव करें. इससे, BigQuery की लागत काफ़ी कम हो जाती है और क्वेरी की परफ़ॉर्मेंस बेहतर होती है.
-- 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
)
);
ब्रैंड आईडी के हिसाब से फ़िल्टर करना और पुष्टि करना
अगर आपको खास ब्रैंड के लिए, संख्या और सैंपल Place ID की पुष्टि करनी है, तो brand_ids फ़िल्टर का इस्तेमाल करके, ब्रैंड आईडी की सूची दें.
टारगेट किए गए ब्रैंड का आईडी पाने के लिए, BigQuery में brands टेबल के लिए क्वेरी करें:
SELECT id, name
FROM `YOUR_PROJECT.places_insights___us.brands`
WHERE LOWER(name) LIKE "%starbucks%";
टारगेट किए गए ब्रैंड का आईडी पाने के बाद (उदाहरण के लिए, "1413758728321880760"
Starbucks के लिए), इसे brand_ids फ़िल्टर के कलेक्शन में पास करें:
SELECT *
FROM
`places_insights___us.PLACES_COUNT_PER_H3`(
JSON_OBJECT(
'geography', your_defined_geography,
'h3_resolution', 8,
'brand_ids', ["1413758728321880760"]
)
);
तीसरे चरण में, असल डेटा की पुष्टि करने के लिए, यह पुष्टि करने के बजाय कि कोई जगह सामान्य कैटगरी से मेल खाती है, प्रोग्राम के ज़रिए Place Details API से मिले डिसप्ले नेम की तुलना, रेगुलर एक्सप्रेशन मैच का इस्तेमाल करके, आपके अनुमानित ब्रैंड नेम से की जा सकती है. उदाहरण के लिए, response.display_name.text फ़ील्ड की तुलना की जा सकती है.
इस क्वेरी के आउटपुट में, H3 सेल की टेबल और हर सेल में मौजूद जगहों की संख्या दिखती है. इससे, घनत्व का हीटमैप बनाया जा सकता है.

हॉटस्पॉट को अलग करना और सैंपल Place ID एक्सट्रैक्ट करना
PLACES_COUNT_PER_H3 फ़ंक्शन के नतीजे में, sample_place_ids का कलेक्शन भी दिखता है. इसमें, जवाब के हर एलिमेंट के लिए ज़्यादा से ज़्यादा 250 Place ID हो सकते हैं. ये आईडी, एग्रीगेट किए गए आंकड़ों को उन जगहों से लिंक करते हैं जिनकी वजह से ये आंकड़े मिले हैं.
आपका सिस्टम, शुरुआती क्वेरी से सबसे काम के सेल की पहचान कर सकता है.
उदाहरण के लिए, सबसे ज़्यादा संख्या वाले टॉप 20 सेल चुने जा सकते हैं. इसके बाद, इन हॉटस्पॉट से, sample_place_ids को एक ही सूची में शामिल किया जा सकता है.
इस सूची में, सबसे काम के इलाकों के सबसे दिलचस्प पीओआई का सैंपल शामिल होता है. इससे, टारगेट किए गए डेटा की पुष्टि की जा सकती है.
अगर Python में pandas DataFrame का इस्तेमाल करके, BigQuery के नतीजों को प्रोसेस किया जा रहा है, तो इन आईडी को एक्सट्रैक्ट करने का लॉजिक आसान है:
# 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.")
अगर अन्य प्रोग्रामिंग लैंग्वेज का इस्तेमाल किया जा रहा है, तो इसी तरह का लॉजिक लागू किया जा सकता है.
Places API की मदद से, असल डेटा की जानकारी पाना
Place ID की एग्रीगेट की गई सूची के साथ, अब बड़े पैमाने पर किए जाने वाले आंकड़ों के विश्लेषण से, खास डेटा पाने की प्रोसेस पर जाएं. इन आईडी का इस्तेमाल करके, हर सैंपल जगह के बारे में ज़्यादा जानकारी पाने के लिए, Place Details API के लिए क्वेरी करें.
यह पुष्टि करने का एक ज़रूरी चरण है. Places Insights से आपको यह पता चलता है कि किसी इलाके में कितने रेस्टोरेंट हैं. वहीं, Places API से आपको यह पता चलता है कि वे कौनसे रेस्टोरेंट हैं. इससे आपको उनके नाम, सटीक पते, अक्षांश/देशांतर, उपयोगकर्ता की रेटिंग, और Google Maps पर उनकी जगह का डायरेक्ट लिंक भी मिलता है. इससे, आपके सैंपल डेटा की क्वालिटी बेहतर होती है. साथ ही, आईडी को असल जगहों में बदला जा सकता है जिनकी पुष्टि की जा सकती है.
Place Details API से उपलब्ध डेटा की पूरी सूची और उसे पाने की लागत के बारे में जानने के लिए, एपीआई का दस्तावेज़ देखें.
Python क्लाइंट लाइब्रेरी का इस्तेमाल करके, किसी खास आईडी के लिए Places API को किया गया अनुरोध इस तरह दिखेगा. ज़्यादा जानकारी के लिए, Places API (नया) की क्लाइंट लाइब्रेरी के उदाहरण देखें.
# 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 = "formattedAddress,location,displayName,googleMapsUri"
# The response contains ground truth data.
response = places_client.get_place(
request=request,
metadata=[("x-goog-fieldmask", fields_to_request)]
)
ध्यान दें कि इस अनुरोध में मौजूद फ़ील्ड, दो अलग-अलग बिलिंग SKU से डेटा फ़ेच करते हैं.
formattedAddressऔरlocation, Place Details Essentials SKU का हिस्सा हैं.displayNameऔरgoogleMapsUri, Place Details Pro SKU का हिस्सा हैं.
जब Place Details के किसी एक अनुरोध में, एक से ज़्यादा SKU के फ़ील्ड शामिल होते हैं, तो पूरे अनुरोध के लिए, सबसे बड़े टियर वाले SKU की दर से बिल भेजा जाता है. इसलिए, इस खास कॉल के लिए, Place Details Pro के अनुरोध के तौर पर बिल भेजा जाएगा.
लागत को कंट्रोल करने के लिए, हमेशा FieldMask का इस्तेमाल करके, सिर्फ़ उन फ़ील्ड के लिए अनुरोध करें जिनकी आपके ऐप्लिकेशन को ज़रूरत है.
पुष्टि करने के लिए, एक साथ विज़ुअलाइज़ेशन बनाना
आखिरी चरण है, दोनों डेटासेट को एक ही व्यू में लाना. इससे, शुरुआती विश्लेषण की तुरंत और आसानी से जांच की जा सकती है. आपके विज़ुअलाइज़ेशन में दो लेयर होनी चाहिए:
- बेस लेयर: शुरुआती
PLACES_COUNT_PER_H3के नतीजों से जनरेट किया गया कोरोप्लेथ या हीटमैप. इसमें, आपके भौगोलिक इलाके में जगहों का कुल घनत्व दिखता है. - सबसे ऊपर की लेयर: हर सैंपल पीओआई के लिए मार्कर का सेट. इसे पिछले चरण में Places API से मिले सटीक कोऑर्डिनेट का इस्तेमाल करके प्लॉट किया जाता है.
इस कंबाइंड व्यू को बनाने का लॉजिक, इस स्यूडो-कोड के उदाहरण में दिखाया गया है:
# 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)
बड़े पैमाने पर घनत्व दिखाने वाले मैप पर, असल डेटा के मार्कर को ओवरले करके, तुरंत पुष्टि की जा सकती है कि हॉटस्पॉट के तौर पर पहचाने गए इलाकों में, असल में उन जगहों का घनत्व ज़्यादा है जिनका विश्लेषण किया जा रहा है. विज़ुअल पुष्टि से, डेटा पर आधारित नतीजों पर भरोसा बढ़ता है.
नतीजा
यह आर्किटेक्चरल पैटर्न, बड़े पैमाने पर जियोस्पेशल अहम जानकारी की पुष्टि करने का एक मज़बूत और असरदार तरीका है. बड़े पैमाने पर, स्केलेबल विश्लेषण के लिए Places Insights और टारगेट किए गए, असल डेटा की पुष्टि के लिए Place Details API का इस्तेमाल करके, एक मज़बूत फ़ीडबैक लूप बनाया जा सकता है. इससे यह पक्का होता है कि आपके रणनीतिक फ़ैसले, चाहे वे खुदरा कारोबार के लिए साइट चुनने से जुड़े हों या लॉजिस्टिक्स की योजना बनाने से जुड़े हों, ऐसे डेटा पर आधारित हों जो न सिर्फ़ आंकड़ों के हिसाब से अहम हो, बल्कि जिसकी पुष्टि भी की जा सके.
अगले चरण
- अन्य Place Count Functions के बारे में जानें, ताकि यह देखा जा सके कि वे विश्लेषण से जुड़े अलग-अलग सवालों के जवाब कैसे दे सकते हैं.
- Places API का दस्तावेज़ देखें, ताकि अन्य फ़ील्ड के बारे में पता लगाया जा सके. इन फ़ील्ड के लिए अनुरोध करके, अपने विश्लेषण को और बेहतर बनाया जा सकता है.
योगदानकर्ता
हेनरिक वाल्व | DevX इंजीनियर
Google Colab में चलाएं
GitHub पर सोर्स देखें