إنشاء نتائج مخصّصة للمواقع الجغرافية باستخدام "إحصاءات الأماكن"

نظرة عامة

بطاقة بيانات عقار معروض للبيع تعرض "مؤشر جنة الحيوانات الأليفة" المخصّص الذي يبلغ 9.1، استنادًا إلى المتنزّهات والأماكن القريبة التي تسمح باصطحاب الكلاب

يمكن أن تخبرك بيانات الموقع الجغرافي العادية بالمناطق القريبة، ولكنّها غالبًا ما تعجز عن الإجابة عن السؤال الأكثر أهمية: "ما مدى ملاءمة هذه المنطقة لي؟" تتسم احتياجات المستخدمين لديك بالدقة. فالعائلة التي لديها أطفال صغار لها أولويات مختلفة عن الشاب الذي يعيش بمفرده ولديه كلب. لمساعدتهم في اتّخاذ قرارات واثقة، عليك تقديم إحصاءات تعكس هذه الاحتياجات المحدّدة. تُعدّ نتيجة الموقع الجغرافي المخصّصة أداة فعّالة لتقديم هذه القيمة وإنشاء تجربة مستخدم مختلفة ومهمة.

يوضّح هذا المستند كيفية إنشاء نتائج مخصّصة ومتعدّدة الجوانب حول الموقع الجغرافي باستخدام مجموعة بيانات إحصاءات الأماكن في BigQuery. من خلال تحويل بيانات نقاط الاهتمام إلى مقاييس مفيدة، يمكنك إثراء تطبيقاتك الخاصة بالعقارات أو البيع بالتجزئة أو السفر وتزويد المستخدمين بالمعلومات ذات الصلة التي يحتاجون إليها. نوفّر أيضًا خيار استخدام الذكاء الاصطناعي التوليدي في BigQuery كطريقة فعّالة لاحتساب نتائجك المتعلّقة بالموقع الجغرافي.

تعزيز القيمة التجارية باستخدام النتائج المخصّصة

توضّح الأمثلة التالية كيف يمكنك ترجمة بيانات الموقع الجغرافي الأولية إلى مقاييس فعّالة تركّز على المستخدمين لتحسين تطبيقك.

  • يمكن لمطوّري العقارات إنشاء "مقياس مناسب للعائلات" أو "مقياس مثالي للمسافرين" لمساعدة المشترين والمستأجرين في اختيار الحي المثالي الذي يتوافق مع أسلوب حياتهم، ما يؤدي إلى زيادة تفاعل المستخدمين واكتساب عملاء محتملين أفضل جودة وتحقيق إحالات ناجحة بشكل أسرع.
  • يمكن لمهندسي السفر والضيافة إنشاء "مؤشر الحياة الليلية" أو "مؤشر جنة السياح" لمساعدة المسافرين في اختيار فندق يناسب أسلوب عطلتهم، ما يؤدي إلى زيادة معدلات الحجز ورضا العملاء.
  • يمكن لمحلّلي البيع بالتجزئة إنشاء "نتيجة اللياقة البدنية والصحة" لتحديد الموقع الجغرافي الأمثل لافتتاح صالة رياضية جديدة أو متجر للأطعمة الصحية استنادًا إلى الأنشطة التجارية التكميلية القريبة، ما يزيد من إمكانية استهداف الفئة الديمغرافية المناسبة من المستخدمين.

في هذا الدليل، ستتعرّف على منهجية مرنة من ثلاثة أجزاء لإنشاء أي نوع من نتائج المواقع الجغرافية المخصّصة باستخدام بيانات "أماكن Google" مباشرةً في BigQuery. سنوضّح هذا النمط من خلال إنشاء مثالَين مختلفَين للنتائج: نتيجة مدى ملاءمة المكان للعائلات ونتيجة مدى ملاءمة المكان لمحبي الحيوانات الأليفة. يتيح لك هذا الأسلوب تجاوز عدد الأماكن والاستفادة من السمات الغنية والمفصّلة ضمن مجموعة بيانات إحصاءات الأماكن. يمكنك استخدام معلومات مثل ساعات العمل أو ما إذا كان المكان مناسبًا للأطفال أو يسمح باصطحاب الكلاب، وذلك لإنشاء مقاييس متطورة ومفيدة للمستخدمين.

سير عمل الحل

مخطّط لسير العمل يتضمّن ثلاث خطوات: تحديد المواقع الجغرافية، وطلب البحث عن أماكن قريبة، وتسوية النتائج لإنشاء النتيجة النهائية.

يستخدم هذا البرنامج التعليمي استعلام SQL واحدًا وفعّالاً لإنشاء نتيجة مخصّصة يمكنك تكييفها مع أي حالة استخدام. سنشرح هذه العملية من خلال إنشاء مثالَين على النتائج لمجموعة افتراضية من بيانات الشقق المتاحة للاستئجار.

لاستكشاف سير العمل هذا في بيئة تفاعلية، شغِّل دفتر الملاحظات التالي. يوضّح هذا الفيديو كيفية استخدام الدالة AI.GENERATE ضمن BigQuery لإنشاء نتيجة موقع جغرافي.

المتطلبات الأساسية

قبل البدء، اتّبِع هذه التعليمات لإعداد "إحصاءات الأماكن".

1. وضع الأساس: المواقع الجغرافية محلّ الاهتمام

قبل إنشاء نتائج، يجب أن تتوفّر لديك قائمة بالمواقع الجغرافية التي تريد تحليلها. الخطوة الأولى هي التأكّد من توفّر هذه البيانات كجدول في BigQuery. المهم هو توفير معرّف فريد لكل موقع جغرافي وعمود GEOGRAPHYيخزّن إحداثياته.

يمكنك إنشاء جدول بالمواقع الجغرافية التي تريد تسجيلها وتعبئته باستخدام طلب بحث مثل ما يلي:

CREATE OR REPLACE TABLE `your_project.your_dataset.apartment_listings`
(
  id INT64,
  name STRING,
  location GEOGRAPHY
);

INSERT INTO `your_project.your_dataset.apartment_listings` VALUES
  (1, 'The Downtowner', ST_GEOGPOINT(-74.0077, 40.7093)),
  (2, 'Suburban Oasis', ST_GEOGPOINT(-73.9825, 40.7507)),
  (3, 'Riverside Lofts', ST_GEOGPOINT(-73.9470, 40.8079))
  -- More rows can be added here
  . . . ;

سيبدو تنفيذ SELECT * على بيانات موقعك الجغرافي مشابهًا لما يلي.

نتائج طلب بحث في BigQuery تعرض جدولاً يتضمّن بيانات الشقق المتاحة للاستئجار، مثل المعرّف والاسم وإحداثيات الموقع الجغرافي.

2. تطوير المنطق الأساسي: استعلام تسجيل النقاط

بعد تحديد المواقع الجغرافية، تتمثّل الخطوة التالية في العثور على الأماكن القريبة ذات الصلة بالنتيجة المخصّصة وتصفيتها واحتسابها. يتم تنفيذ كل ذلك ضمن عبارة SELECT واحدة.

العثور على "أماكن قريبة" باستخدام البحث الجغرافي المكاني

أولاً، عليك العثور على جميع الأماكن من مجموعة بيانات "إحصاءات الأماكن" التي تقع على مسافة معيّنة من كل موقع جغرافي. الدالة ST_DWITHIN في BigQuery هي الأنسب لهذا الغرض. سنُجري عملية JOIN بين جدول apartment_listings وجدول places_insights للعثور على جميع الأماكن ضمن دائرة نصف قطرها 800 متر. تضمن LEFT JOIN تضمين جميع مواقعك الجغرافية الأصلية في النتائج، حتى إذا لم يتم العثور على أماكن مطابقة بالقرب منك.

الفلترة حسب الصلة بالموضوع باستخدام السمات المتقدّمة

وهنا يتم تحويل المفهوم المجرّد للنتيجة إلى فلاتر بيانات ملموسة. بالنسبة إلى النتيجتَين المثاليتَين، تختلف المعايير:

  • بالنسبة إلى "مقياس الملاءمة للعائلة"، نهتم بالمتنزّهات والمتاحف والمطاعم التي تكون مناسبة للأطفال بشكل واضح.
  • بالنسبة إلى "مؤشر الجنة الخاصة بمالكي الحيوانات الأليفة"، نهتم بالحدائق والعيادات البيطرية ومتاجر الحيوانات الأليفة وأي مطعم أو مقهى يسمح بدخول الكلاب.

يمكنك فلترة هذه السمات المحدّدة مباشرةً في عبارة WHERE ضمن طلب البحث.

تجميع الإحصاءات لكل موقع جغرافي

أخيرًا، عليك احتساب عدد الأماكن الملائمة التي عثرت عليها لكل شقة. تجمع عبارة GROUP BY النتائج، وتحسب الدالة COUNTIF الأماكن التي تطابق المعايير المحددة لكل درجة من درجاتنا.

يجمع الاستعلام أدناه بين هذه الخطوات الثلاث، ويحسب عدد مرات الظهور الأولي لكلتا النتيجتين في عملية واحدة:

-- This Common Table Expression (CTE) will hold the raw counts for each score component.
WITH insight_counts AS (
  SELECT WITH AGGREGATION_THRESHOLD -- Correctly includes the mandatory aggregation threshold
    apartments.id,
    apartments.name,
    COUNTIF(places.primary_type = 'park') AS park_count,
    COUNTIF(places.primary_type = 'museum') AS museum_count,
    COUNTIF(places.primary_type = 'restaurant' AND places.good_for_children = TRUE) AS family_restaurant_count,
    COUNTIF(places.primary_type IN ('veterinary_care', 'pet_store')) AS pet_service_count,
    COUNTIF(places.allows_dogs = TRUE) AS dog_friendly_place_count
  FROM
    `your_project.your_dataset.apartment_listings` AS apartments
  LEFT JOIN
    `your-project.places_insights___us.places` AS places -- Corrected table name for the US dataset
    ON ST_DWITHIN(apartments.location, places.point, 800) -- Find places within 800 meters
  GROUP BY
    apartments.id, apartments.name
)
SELECT * FROM insight_counts;

ستكون نتيجة هذا الاستعلام مشابهة لما يلي.

نتائج BigQuery التي تعرض الأعداد الأولية للمرافق، مثل الحدائق والمطاعم وخدمات الحيوانات الأليفة، لكل شقة معروضة للإيجار

سنستند إلى هذه النتائج في القسم التالي.

3- إنشاء النتيجة

بعد أن أصبح لديك عدد الأماكن والوزن لكل نوع مكان ولكل موقع جغرافي، يمكنك الآن إنشاء نتيجة الموقع الجغرافي المخصّصة. سنناقش في هذا القسم خيارَين: استخدام عملية حسابية مخصّصة في BigQuery أو استخدام وظائف الذكاء الاصطناعي التوليدي في BigQuery.

الخيار 1: استخدام عملية حسابية مخصّصة في BigQuery

تُعدّ الأعداد الأولية من الخطوة السابقة مفيدة، ولكن الهدف هو الحصول على نتيجة واحدة سهلة الاستخدام. الخطوة الأخيرة هي دمج هذه الأعداد باستخدام الأوزان ثم تسوية النتيجة على مقياس من 0 إلى 10.

تطبيق قيم ترجيح مخصّصة اختيار قيم الترجيح هو فن وعلم في الوقت نفسه. ويجب أن تعكس هذه المقاييس أولويات نشاطك التجاري أو ما تعتقد أنّه الأهم بالنسبة إلى المستخدمين. بالنسبة إلى نتيجة "مناسبة للعائلة"، قد تقرّر أنّ أهمية الحديقة تبلغ ضعف أهمية المتحف. ابدأ بأفضل الافتراضات لديك وكرِّر العملية استنادًا إلى ملاحظات المستخدمين.

تسوية النتيجة يستخدم الاستعلام أدناه تعبيرَين عن الجدول المشترك (CTE): يحسب الأول عدد النتائج الأولية كما كان من قبل، ويحسب الثاني النتائج المرجّحة. بعد ذلك، تنفّذ عبارة SELECT النهائية عملية تسوية بين الحدّ الأدنى والحدّ الأقصى للنتائج المرجّحة. يتم عرض العمود location من جدول المثال apartment_listings، وذلك لتفعيل تصور البيانات على الخريطة.

WITH
  -- CTE 1: Count nearby amenities of interest for each apartment listing.
  insight_counts AS (
    SELECT WITH AGGREGATION_THRESHOLD
      apartments.id,
      apartments.name,
      COUNTIF(places.primary_type = 'park') AS park_count,
      COUNTIF(places.primary_type = 'museum') AS museum_count,
      COUNTIF(places.primary_type = 'restaurant' AND places.good_for_children = TRUE) AS family_restaurant_count,
      COUNTIF(places.primary_type IN ('veterinary_care', 'pet_store')) AS pet_service_count,
      COUNTIF(places.allows_dogs = TRUE) AS dog_friendly_place_count
    FROM
      `your_project.your_dataset.apartment_listings` AS apartments
    LEFT JOIN
      `your-project.places_insights___us.places` AS places
      ON ST_DWITHIN(apartments.location, places.point, 800)
    GROUP BY
      apartments.id,
      apartments.name
  ),
  -- CTE 2: Apply custom weighting to the amenity counts to generate raw scores.
  raw_scores AS (
    SELECT
      id,
      name,
      (park_count * 3.0) + (museum_count * 1.5) + (family_restaurant_count * 2.5) AS family_friendliness_score,
      (park_count * 2.0) + (pet_service_count * 3.5) + (dog_friendly_place_count * 2.5) AS pet_paradise_score
    FROM
      insight_counts
  )
-- Final Step: Normalize scores to a 0-10 scale and rejoin to retrieve the location geometry.
SELECT
  raw_scores.id,
  raw_scores.name,
  apartments.location,
  raw_scores.family_friendliness_score,
  raw_scores.pet_paradise_score,
  -- Normalize Family Score using a MIN/MAX window function.
  ROUND(
    COALESCE(
      SAFE_DIVIDE(
        (raw_scores.family_friendliness_score - MIN(raw_scores.family_friendliness_score) OVER ()),
        (MAX(raw_scores.family_friendliness_score) OVER () - MIN(raw_scores.family_friendliness_score) OVER ())
      ) * 10,
      0
    ),
    2
  ) AS normalized_family_score,
  -- Normalize Pet Score using a MIN/MAX window function.
  ROUND(
    COALESCE(
      SAFE_DIVIDE(
        (raw_scores.pet_paradise_score - MIN(raw_scores.pet_paradise_score) OVER ()),
        (MAX(raw_scores.pet_paradise_score) OVER () - MIN(raw_scores.pet_paradise_score) OVER ())
      ) * 10,
      0
    ),
    2
  ) AS normalized_pet_score
FROM
  raw_scores
JOIN
  `your_project.your_dataset.apartment_listings` AS apartments
  ON raw_scores.id = apartments.id;

ستكون نتائج الاستعلام مشابهة لما يلي. يمثّل العمودان الأخيران النتائج المعدَّلة.

نتائج الاستعلام النهائية التي تعرض كلاً من النتائج الأولية المرجّحة والنتائج العادية التي تتراوح بين 0 و10 لكل شقة معروضة للاستئجار

التعرّف على "النتيجة المعدَّلة"

من المهم فهم سبب أهمية خطوة التسوية النهائية هذه. يمكن أن تتراوح النتائج الأولية المرجّحة بين 0 وعدد كبير جدًا محتمل حسب الكثافة السكانية في مواقعك الجغرافية. لا يمكن للمستخدم فهم النتيجة 500 بدون سياق.

يحوّل التسوية هذه الأرقام المجردة إلى ترتيب نسبي. من خلال توسيع نطاق النتائج من 0 إلى 10، توضّح النتيجة بوضوح مستوى أداء كل موقع جغرافي مقارنةً بالمواقع الأخرى في مجموعة البيانات المحدّدة:

  • يتم منح النتيجة 10 للموقع الجغرافي الذي حصل على أعلى نتيجة أولية، ما يجعله الخيار الأفضل في المجموعة الحالية.
  • يتم منح النتيجة 0 للموقع الجغرافي الذي سجّل أدنى نتيجة أولية، ما يجعله المرجع للمقارنة. لا يعني ذلك أنّ المكان لا يوفّر أي وسائل راحة، بل يعني أنّه الأقل ملاءمة مقارنةً بالخيارات الأخرى التي يتم تقييمها.
  • تتوزّع جميع النتائج الأخرى بشكل نسبي بين هذين الحدّين، ما يمنح المستخدمين طريقة واضحة وسهلة لمقارنة خياراتهم بنظرة سريعة.

الخيار 2: استخدام الدالة AI.GENERATE (Gemini)

كبديل لاستخدام صيغة رياضية ثابتة، يمكنك استخدام دالة BigQuery AI.GENERATE لاحتساب نتائج المواقع الجغرافية المخصّصة مباشرةً ضمن سير عمل SQL.

على الرغم من أنّ الخيار 1 ممتاز للتسجيل الكمي البحت استنادًا إلى عدد وسائل الراحة، لا يمكنه بسهولة أخذ البيانات النوعية في الاعتبار. تتيح لك الدالة AI.GENERATE دمج الأرقام من طلب البحث في إحصاءات الأماكن مع بيانات غير منظَّمة، مثل الوصف النصي الخاص بقائمة الشقق (مثلاً، "هذا المكان مناسب للعائلات والمنطقة هادئة في الليل") أو الإعدادات المفضّلة المحدّدة في ملف المستخدم الشخصي (مثلاً، "يحجز هذا المستخدم مكان إقامة لعائلة ويفضّل منطقة هادئة في موقع مركزي"). يتيح لك ذلك إنشاء نتيجة أكثر دقة ترصد التفاصيل الدقيقة التي قد لا يرصدها العدد الصارم، مثل موقع جغرافي يتضمّن عددًا كبيرًا من وسائل الراحة ولكنّه موصوف أيضًا بأنّه "صاخب جدًا بالنسبة إلى الأطفال".

إنشاء الطلب

لاستخدام هذه الدالة، يتم تنسيق نتائج التجميع (من الخطوة 2) في طلب بلغة طبيعية. يمكن إجراء ذلك بشكل ديناميكي في SQL من خلال دمج أعمدة البيانات مع تعليمات النموذج.

في طلب البحث أدناه، يتم دمج insight_counts مع الوصف النصي للشقة لإنشاء طلب لكل صف. يتم أيضًا تحديد ملف شخصي للمستخدم المستهدف لتوجيه عملية التسجيل.

إنشاء النتيجة باستخدام SQL

ينفّذ طلب البحث التالي العملية بأكملها في BigQuery. إذ إنه:

  1. تجميع عدد الأماكن (كما هو موضّح في الخطوة 2)
  2. إنشاء طلب لكل موقع جغرافي
  3. يستدعي الدالة AI.GENERATE لتحليل الطلب باستخدام نموذج Gemini.
  4. تحليل النتيجة إلى تنسيق منظَّم جاهز للاستخدام في تطبيقك
WITH
  -- CTE 1: Aggregate Place counts (Same as Step 2)
  insight_counts AS (
    SELECT WITH AGGREGATION_THRESHOLD
      apartments.id,
      apartments.name,
      apartments.description, -- Assuming your table has a description column
      COUNTIF(places.primary_type = 'park') AS park_count,
      COUNTIF(places.primary_type = 'museum') AS museum_count,
      COUNTIF(places.primary_type = 'restaurant' AND places.good_for_children = TRUE) AS family_restaurant_count
    FROM
      `your-project.your_dataset.apartment_listings` AS apartments
    LEFT JOIN
      `your-project.places_insights___us.places` AS places
      ON ST_DWITHIN(apartments.location, places.point, 800)
    GROUP BY
      apartments.id, apartments.name, apartments.description
  ),

  -- CTE 2: Construct the Prompt
  prepared_prompts AS (
    SELECT
      id,
      name,
      FORMAT("""
        You are an expert real estate analyst. Generate a 'Family-Friendliness Score' (0-10) for this location.

        Target User: Young family with a toddler, looking for a balance of activity and quiet.

        Location Data:
        - Name: %s
        - Description: %s
        - Parks nearby: %d
        - Museums nearby: %d
        - Family-friendly restaurants nearby: %d

        Scoring Rules:
        - High importance: Proximity to parks and high restaurant count.
        - Negative modifiers: Descriptions indicating excessive noise or nightlife focus.
        - Positive modifiers: Descriptions indicating quiet streets or backyards.
      """, name, description, park_count, museum_count, family_restaurant_count) AS prompt_text
    FROM insight_counts
    )

-- Final Step: Call AI.GENERATE
SELECT
  id,
  name,
  -- Access the structured fields returned by the model
  generated.family_friendliness_score,
  generated.reasoning
FROM
  prepared_prompts,
  AI.GENERATE(
    prompt_text,
    endpoint => 'gemini-flash-latest',
    output_schema => 'family_friendliness_score FLOAT64, reasoning STRING'
  ) AS generated;
التعرّف على الإعدادات
  • الوعي بالتكلفة: تنقل هذه الدالة الإدخال إلى أحد نماذج Gemini، وتتحمّل رسومًا في Vertex AI في كل مرة يتم استدعاؤها. إذا كان يتم تحليل عدد كبير من المواقع الجغرافية (مثل آلاف الشقق المعروضة للإيجار)، يُنصح بفلترة مجموعة البيانات لتحديد المرشحين الأكثر صلة أولاً. لمزيد من التفاصيل حول تقليل التكاليف، يُرجى الاطّلاع على أفضل الممارسات.
  • endpoint: تم تحديد gemini-flash-latest في هذا المثال لتحديد الأولوية للسرعة وفعالية التكلفة. ومع ذلك، يمكنك اختيار النموذج الأنسب لاحتياجاتك. راجِع مستندات نماذج Gemini لتجربة إصدارات مختلفة (مثل Gemini Pro للمهام التي تتطلّب تفكيرًا أكثر تعقيدًا) والعثور على النموذج الأنسب لحالة الاستخدام.
  • output_schema: بدلاً من تحليل النص الأولي، يتم فرض مخطط (FLOAT64 للنتيجة وSTRING للسبب). يضمن ذلك إمكانية استخدام الناتج على الفور في تطبيقك أو أدوات العرض المرئي بدون الحاجة إلى معالجة لاحقة.
مثال على الناتج

يعرض الطلب جدولاً عاديًا في BigQuery يتضمّن النتيجة المخصّصة وسبب النموذج.

id الاسم family_friendliness_score الاستدلال
1 The Downtowner 5.5 عدد ممتاز من وسائل الراحة (المنتزهات والمطاعم)، ما يستوفي المقاييس الكمية ومع ذلك، تشير البيانات النوعية إلى وجود ضوضاء مفرطة في عطلة نهاية الأسبوع والتركيز بشكل كبير على الحياة الليلية، ما يتعارض بشكل مباشر مع حاجة المستخدم المستهدَف إلى الهدوء.
2 Suburban Oasis 9.8 بيانات كمية ممتازة مع وصف ("شارع هادئ تصطف على جانبيه الأشجار") يتوافق تمامًا مع الملف الشخصي للعائلة المستهدَفة تؤدي المعدّلات الإيجابية العالية إلى تحقيق نتيجة شبه مثالية.

يتيح لك هذا الإجراء تقديم نتائج تقييم مخصّصة للغاية تبدو مفهومة ومصمّمة خصيصًا لكل مستخدم على حدة، وكل ذلك ضمن طلب بحث SQL واحد.

4. عرض نتائجك على الخريطة

يتضمّن BigQuery Studio تصوّرًا متكاملاً للخريطة لأي نتيجة طلب بحث تحتوي على عمود GEOGRAPHY. بما أنّ طلب البحث يعرض العمود location، يمكنك على الفور إنشاء عرض مرئي لنتائجك.

سيؤدي النقر على علامة التبويب Visualization إلى عرض الخريطة، ويتحكّم القائمة المنسدلة Data Column في درجة الموقع الجغرافي التي سيتم عرضها. في هذا المثال، يتم عرض normalized_pet_score من المثال 1. يُرجى العِلم أنّه تمت إضافة المزيد من المواقع الجغرافية إلى جدول apartment_listings في هذا المثال.

خريطة تعرض النتيجة العادية للحيوانات الأليفة في مواقع جغرافية مختلفة، حيث تشير النقاط الخضراء الداكنة إلى نتائج أعلى وأكثر ملاءمة.

يؤدي عرض البيانات بشكل مرئي إلى الكشف بنظرة سريعة عن المواقع الجغرافية الأنسب للنتيجة التي تم إنشاؤها، حيث تمثّل الدوائر الخضراء الداكنة المواقع الجغرافية التي تتضمّن normalized_pet_score أعلى، في هذه الحالة. للاطّلاع على المزيد من خيارات عرض بيانات إحصاءات الأماكن، يُرجى الاطّلاع على عرض نتائج الطلبات.

الخاتمة

أصبح لديك الآن منهجية فعّالة ومتكررة لإنشاء نتائج دقيقة خاصة بالموقع الجغرافي. بدأت بمواقعك الجغرافية، وأنشأت طلب بحث واحدًا بلغة SQL في BigQuery يعثر على الأماكن القريبة التي تتضمّن ST_DWITHIN، ثمّ فلترتها حسب سمات متقدّمة مثل good_for_children وallows_dogs، وجمّعت النتائج باستخدام COUNTIF. ومن خلال تطبيق أوزان مخصّصة وتسوية النتيجة، حصلت على نتيجة واحدة سهلة الاستخدام تقدّم إحصاءات مفصّلة قابلة للتنفيذ. يمكنك تطبيق هذا النمط مباشرةً لتحويل بيانات الموقع الجغرافي الأولية إلى ميزة تنافسية مهمة.

الإجراءات التالية

حان دورك الآن لإنشاء تطبيق. يوفّر هذا البرنامج التعليمي نموذجًا. يمكنك استخدام البيانات الغنية المتوفّرة في مخطط إحصاءات الأماكن لإنشاء النتائج التي تحتاج إليها أكثر من غيرها في حالة الاستخدام. إليك بعض النتائج الأخرى التي يمكنك تحقيقها:

  • "مؤشر الحياة الليلية": يمكنك الجمع بين فلاتر primary_type (bar وnight_club) وprice_level وساعات العمل حتى وقت متأخر من الليل للعثور على المناطق الأكثر حيوية بعد حلول الظلام.
  • "نتيجة اللياقة البدنية والصحة": يتم احتساب عدد gyms وparks وhealth_food_stores في الأماكن القريبة، ويتم فلترة المطاعم التي تتضمّن serves_vegetarian_food لتحديد نتيجة المواقع الجغرافية للمستخدمين المهتمين بالصحة.
  • "مؤشر سهولة التنقّل": يمكنك العثور على مواقع جغرافية تتضمّن عددًا كبيرًا من الأماكن القريبة التي يمكن الوصول إليها باستخدام transit_station وparking لمساعدة المستخدمين الذين يهمّهم سهولة الوصول إلى وسائل النقل.

المساهمون

هنريك فالف | مهندس DevX