Tổng quan
Dữ liệu vị trí tiêu chuẩn có thể cho bạn biết những gì ở gần, nhưng thường không trả lời được câu hỏi quan trọng hơn: "Khu vực này có phù hợp với tôi không?" Nhu cầu của người dùng rất đa dạng. Một gia đình có trẻ nhỏ sẽ có những ưu tiên khác so với một người trẻ có thú cưng. Để giúp họ đưa ra quyết định tự tin, bạn cần cung cấp thông tin chi tiết phản ánh những nhu cầu cụ thể này. Điểm vị trí tuỳ chỉnh là một công cụ mạnh mẽ để mang lại giá trị này và tạo ra trải nghiệm khác biệt đáng kể cho người dùng.
Tài liệu này mô tả cách tạo điểm số tuỳ chỉnh, đa dạng về vị trí bằng cách sử dụng tập dữ liệu Thông tin chi tiết về địa điểm trong BigQuery. Bằng cách chuyển đổi dữ liệu về địa điểm yêu thích thành các chỉ số có ý nghĩa, bạn có thể làm phong phú thêm các ứng dụng bất động sản, bán lẻ hoặc du lịch của mình và cung cấp cho người dùng thông tin phù hợp mà họ cần. Chúng tôi cũng cung cấp lựa chọn sử dụng AI tạo sinh trong BigQuery như một cách hiệu quả để tính toán điểm số vị trí của bạn.
Nâng cao giá trị kinh doanh bằng điểm số phù hợp
Các ví dụ sau đây minh hoạ cách bạn có thể dịch dữ liệu vị trí thô thành các chỉ số mạnh mẽ, lấy người dùng làm trung tâm để cải thiện ứng dụng của mình.
- Nhà phát triển bất động sản có thể tạo "Điểm thân thiện với gia đình" hoặc "Điểm lý tưởng cho người đi làm" để giúp người mua và người thuê nhà chọn được khu dân cư phù hợp với lối sống của họ, từ đó tăng mức độ tương tác của người dùng, tăng số khách hàng tiềm năng chất lượng cao và tăng tốc độ chuyển đổi.
- Các kỹ sư trong ngành Du lịch và Khách sạn có thể xây dựng "Điểm số về cuộc sống về đêm" hoặc "Điểm số về thiên đường cho khách du lịch" để giúp khách du lịch chọn được khách sạn phù hợp với phong cách du lịch của họ, từ đó tăng tỷ lệ đặt phòng và mức độ hài lòng của khách hàng
- Nhà phân tích bán lẻ có thể tạo "Điểm số về thể dục và sức khoẻ" để xác định vị trí tối ưu cho một phòng tập thể dục hoặc cửa hàng thực phẩm tốt cho sức khoẻ mới dựa trên các doanh nghiệp bổ sung lân cận, tối đa hoá tiềm năng nhắm đến đúng nhóm nhân khẩu học người dùng.
Trong hướng dẫn này, bạn sẽ tìm hiểu một phương pháp linh hoạt gồm 3 phần để xây dựng mọi loại điểm số tuỳ chỉnh về vị trí bằng dữ liệu về Địa điểm ngay trong BigQuery. Chúng tôi sẽ minh hoạ mẫu này bằng cách xây dựng 2 điểm số ví dụ riêng biệt: Điểm thân thiện với gia đình và Điểm thiên đường cho người nuôi thú cưng. Phương pháp này giúp bạn không chỉ biết được số lượng địa điểm mà còn tận dụng được các thuộc tính phong phú và chi tiết trong tập dữ liệu Thông tin chi tiết về địa điểm. Bạn có thể sử dụng thông tin như giờ hoạt động, địa điểm có phù hợp với trẻ em hay không hoặc có cho phép chó hay không để tạo ra các chỉ số phức tạp và có ý nghĩa cho người dùng.
Quy trình giải pháp

Hướng dẫn này sử dụng một truy vấn SQL duy nhất và mạnh mẽ để tạo điểm số tuỳ chỉnh mà bạn có thể điều chỉnh cho phù hợp với mọi trường hợp sử dụng. Chúng ta sẽ xem xét quy trình này bằng cách xây dựng hai điểm số ví dụ cho một bộ danh sách căn hộ giả định.
Điều kiện tiên quyết
Trước khi bắt đầu, hãy làm theo các hướng dẫn này để thiết lập Thông tin chi tiết về địa điểm.
1. Xây dựng nền tảng: Vị trí ưa thích
Trước khi có thể tạo điểm số, bạn cần có danh sách các vị trí mà bạn muốn phân tích. Bước đầu tiên là đảm bảo dữ liệu này tồn tại dưới dạng một bảng trong BigQuery.
Điều quan trọng là bạn phải có một giá trị nhận dạng duy nhất cho mỗi vị trí và một cột GEOGRAPHY lưu trữ toạ độ của vị trí đó.
Bạn có thể tạo và điền sẵn một bảng gồm các vị trí để tính điểm bằng một truy vấn như sau:
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
. . . ;
Thực hiện thao tác SELECT * trên dữ liệu vị trí của bạn sẽ trông giống như sau.

2. Phát triển Logic cốt lõi: Truy vấn tính điểm
Sau khi xác định được các vị trí, bước tiếp theo là tìm, lọc và đếm những địa điểm lân cận phù hợp với điểm số tuỳ chỉnh của bạn. Tất cả những việc này đều được thực hiện trong một câu lệnh SELECT duy nhất.
Tìm thông tin về những địa điểm lân cận bằng tính năng tìm kiếm không gian địa lý
Trước tiên, bạn cần tìm tất cả những địa điểm trong tập dữ liệu Thông tin chi tiết về địa điểm nằm trong một khoảng cách nhất định so với từng địa điểm của bạn. Hàm BigQuery ST_DWITHIN là lựa chọn phù hợp cho trường hợp này. Chúng ta sẽ thực hiện một JOIN giữa bảng apartment_listings và bảng places_insights để tìm tất cả các địa điểm trong bán kính 800 mét. LEFT JOIN đảm bảo rằng tất cả vị trí ban đầu của bạn đều có trong kết quả, ngay cả khi không tìm thấy địa điểm nào phù hợp ở gần đó.
Lọc theo mức độ liên quan bằng thuộc tính nâng cao
Đây là nơi bạn chuyển đổi khái niệm trừu tượng về điểm số thành các bộ lọc dữ liệu cụ thể. Đối với 2 điểm số ví dụ này, các tiêu chí sẽ khác nhau:
- Đối với "Điểm thân thiện với gia đình", chúng tôi quan tâm đến những công viên, bảo tàng và nhà hàng phù hợp với trẻ em.
- Đối với "Điểm thiên đường cho chủ thú cưng", chúng tôi quan tâm đến công viên, phòng khám thú y, cửa hàng thú cưng và mọi nhà hàng hoặc quán cà phê cho phép chó.
Bạn có thể lọc các thuộc tính cụ thể này ngay trong mệnh đề WHERE của truy vấn.
Tổng hợp thông tin chi tiết cho từng vị trí
Cuối cùng, bạn cần đếm xem mình tìm được bao nhiêu địa điểm phù hợp cho mỗi căn hộ. Mệnh đề GROUP BY tổng hợp kết quả và hàm COUNTIF đếm những địa điểm phù hợp với tiêu chí cụ thể cho từng điểm số của chúng tôi.
Truy vấn bên dưới kết hợp 3 bước này, tính toán số lượng thô cho cả hai điểm số trong một lần truyền:
-- 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;
Kết quả của truy vấn này sẽ tương tự như sau.

Chúng ta sẽ dựa trên những kết quả này trong phần tiếp theo.
3. Tạo điểm số
Giờ đây, bạn đã có số lượng địa điểm và trọng số cho từng loại địa điểm của từng vị trí. Giờ đây, bạn có thể tạo điểm số tuỳ chỉnh về vị trí. Trong phần này, chúng ta sẽ thảo luận về 2 lựa chọn: sử dụng phép tính tuỳ chỉnh của riêng bạn trong BigQuery hoặc sử dụng các hàm trí tuệ nhân tạo (AI) tạo sinh trong BigQuery.
Cách 1: Sử dụng phép tính tuỳ chỉnh của riêng bạn trong BigQuery
Số liệu thô từ bước trước đó rất hữu ích, nhưng mục tiêu là một điểm số duy nhất, thân thiện với người dùng. Bước cuối cùng là kết hợp các số liệu này bằng cách sử dụng trọng số, sau đó chuẩn hoá kết quả theo thang điểm từ 0 đến 10.
Áp dụng trọng số tuỳ chỉnh Việc chọn trọng số vừa là nghệ thuật vừa là khoa học. Các mục tiêu này cần phản ánh mức độ ưu tiên của doanh nghiệp hoặc những gì bạn cho là quan trọng nhất đối với người dùng. Đối với Điểm "Phù hợp với gia đình", bạn có thể quyết định rằng công viên quan trọng gấp đôi so với bảo tàng. Bắt đầu bằng những giả định tốt nhất của bạn và lặp lại dựa trên ý kiến phản hồi của người dùng.
Chuẩn hoá điểm số Truy vấn bên dưới sử dụng 2 Biểu thức bảng chung (CTE): biểu thức đầu tiên tính toán số lượng thô như trước và biểu thức thứ hai tính toán điểm số có trọng số. Sau đó, câu lệnh SELECT cuối cùng sẽ thực hiện một quy trình chuẩn hoá tối thiểu-tối đa trên các điểm số có trọng số. Cột location của bảng ví dụ apartment_listings được xuất ra để cho phép trực quan hoá dữ liệu trên bản đồ.
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;
Kết quả của truy vấn sẽ tương tự như kết quả dưới đây. Hai cột cuối cùng là điểm số được chuẩn hoá.

Tìm hiểu về Điểm số được chuẩn hoá
Bạn cần hiểu lý do khiến bước chuẩn hoá cuối cùng này có giá trị đến vậy.
Điểm số thô có trọng số có thể dao động từ 0 đến một con số rất lớn tuỳ thuộc vào mật độ đô thị của các vị trí. Điểm số 500 không có ý nghĩa gì đối với người dùng nếu không có bối cảnh.
Việc chuẩn hoá sẽ chuyển đổi những con số trừu tượng này thành một bảng xếp hạng tương đối. Bằng cách mở rộng kết quả từ 0 đến 10, điểm số cho biết rõ ràng mức độ so sánh của từng vị trí với các vị trí khác trong tập dữ liệu cụ thể của bạn:
- Điểm 10 được chỉ định cho vị trí có điểm thô cao nhất, đánh dấu vị trí đó là lựa chọn tốt nhất trong nhóm hiện tại.
- Điểm 0 được chỉ định cho vị trí có điểm thô thấp nhất, khiến vị trí này trở thành đường cơ sở để so sánh. Điều này không có nghĩa là vị trí đó không có tiện nghi nào, mà là vị trí đó ít phù hợp nhất so với các lựa chọn khác đang được đánh giá.
- Tất cả các điểm số khác đều nằm ở giữa theo tỷ lệ, giúp người dùng có một cách rõ ràng và trực quan để so sánh các lựa chọn của họ trong nháy mắt.
Cách 2: Sử dụng hàm AI.GENERATE (Gemini)
Ngoài việc sử dụng một công thức toán học cố định, bạn có thể sử dụng hàm AI.GENERATE BigQuery để tính điểm vị trí tuỳ chỉnh ngay trong quy trình làm việc SQL.
Mặc dù Cách 1 rất phù hợp để tính điểm hoàn toàn định lượng dựa trên số lượng tiện nghi, nhưng cách này không thể dễ dàng tính đến dữ liệu định tính. Hàm AI.GENERATE cho phép bạn kết hợp các con số từ truy vấn Thông tin chi tiết về địa điểm với dữ liệu không có cấu trúc, chẳng hạn như nội dung mô tả bằng văn bản của trang thông tin căn hộ (ví dụ: "Địa điểm này phù hợp với gia đình và khu vực này yên tĩnh vào ban đêm") hoặc các lựa chọn ưu tiên cụ thể trong hồ sơ người dùng (ví dụ: "Người dùng này đang đặt phòng cho gia đình và muốn ở một khu vực yên tĩnh ở vị trí trung tâm"). Điều này cho phép bạn tạo ra một điểm số chi tiết hơn để phát hiện những điểm tinh tế mà số lượng chính xác có thể bỏ lỡ, chẳng hạn như một địa điểm có mật độ tiện nghi cao nhưng cũng được mô tả là "quá ồn ào đối với trẻ em".
Xây dựng câu lệnh
Để sử dụng hàm này, kết quả của quá trình tổng hợp (từ Bước 2) sẽ được định dạng thành một câu lệnh bằng ngôn ngữ tự nhiên. Bạn có thể thực hiện việc này một cách linh động trong SQL bằng cách nối các cột dữ liệu với hướng dẫn cho mô hình.
Trong câu hỏi bên dưới, insight_counts được kết hợp với nội dung mô tả bằng văn bản về căn hộ để tạo câu lệnh cho từng hàng. Hồ sơ người dùng mục tiêu cũng được xác định để hướng dẫn việc tính điểm.
Tạo Điểm số bằng SQL
Truy vấn sau đây thực hiện toàn bộ thao tác trong BigQuery. Tính năng tự động gắn thẻ:
- Tổng hợp số lượng Địa điểm (như mô tả trong Bước 2).
- Xây dựng một câu lệnh cho từng vị trí.
- Gọi hàm
AI.GENERATEđể phân tích câu lệnh bằng mô hình Gemini. - Phân tích cú pháp kết quả thành một định dạng có cấu trúc để sử dụng trong ứng dụng của bạn.
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;
Tìm hiểu về Cấu hình
- Nhận biết chi phí: Chức năng này truyền dữ liệu đầu vào của bạn đến một mô hình Gemini và phát sinh phí trong Vertex AI mỗi khi được gọi. Nếu bạn đang phân tích một số lượng lớn vị trí (ví dụ: hàng nghìn danh sách căn hộ), thì trước tiên, bạn nên lọc tập dữ liệu thành những đề xuất phù hợp nhất. Để biết thêm thông tin về cách giảm thiểu chi phí, hãy xem phần Các phương pháp hay nhất.
endpoint:gemini-flash-latestđược chỉ định cho ví dụ này để ưu tiên tốc độ và hiệu quả chi phí. Tuy nhiên, bạn có thể chọn mô hình phù hợp nhất với nhu cầu của mình. Hãy xem tài liệu về các mô hình Gemini để thử nghiệm với nhiều phiên bản (ví dụ: Gemini Pro cho các nhiệm vụ suy luận phức tạp hơn) và tìm ra mô hình phù hợp nhất với trường hợp sử dụng của bạn.output_schema: Thay vì phân tích cú pháp văn bản thô, một giản đồ sẽ được thực thi (FLOAT64cho điểm số vàSTRINGcho lý do). Điều này đảm bảo đầu ra có thể sử dụng ngay trong ứng dụng hoặc công cụ trực quan hoá của bạn mà không cần xử lý hậu kỳ.
Ví dụ về kết quả đầu ra
Truy vấn này trả về một bảng BigQuery tiêu chuẩn có điểm số tuỳ chỉnh và lý do của mô hình.
| id | tên | family_friendliness_score | suy luận |
|---|---|---|---|
| 1 | Người sống ở trung tâm thành phố | 5,5 | Số lượng tiện nghi tuyệt vời (công viên, nhà hàng), đáp ứng các chỉ số định lượng. Tuy nhiên, dữ liệu định tính cho thấy tiếng ồn quá mức vào cuối tuần và hoạt động về đêm diễn ra sôi nổi, điều này mâu thuẫn trực tiếp với nhu cầu yên tĩnh của người dùng mục tiêu. |
| 2 | Ốc đảo ngoại ô | 9,8 | Dữ liệu định lượng nổi bật kết hợp với nội dung mô tả ("đường phố yên tĩnh, rợp bóng cây") hoàn toàn phù hợp với hồ sơ gia đình mục tiêu. Hệ số điều chỉnh dương cao sẽ mang lại điểm số gần như hoàn hảo. |
Quy trình này cho phép bạn phân phối điểm số có độ cá nhân hoá cao, dễ hiểu và phù hợp với từng người dùng riêng lẻ, tất cả trong một truy vấn SQL duy nhất.
4. Hình dung điểm số của bạn trên bản đồ
BigQuery Studio có hình ảnh trực quan hoá bản đồ tích hợp cho mọi kết quả truy vấn có chứa cột GEOGRAPHY. Vì truy vấn của chúng tôi xuất cột location, nên bạn có thể hình dung ngay điểm số của mình.
Khi nhấp vào thẻ Visualization, bản đồ sẽ xuất hiện và trình đơn thả xuống Data Column sẽ kiểm soát điểm số vị trí để trực quan hoá. Trong ví dụ này, normalized_pet_score được trực quan hoá từ Ví dụ 1. Xin lưu ý rằng chúng tôi đã thêm nhiều vị trí hơn vào bảng apartment_listings cho ví dụ này.

Việc trực quan hoá dữ liệu sẽ cho thấy ngay những vị trí phù hợp nhất cho điểm số đã tạo, với các vòng tròn màu xanh lục đậm hơn biểu thị những vị trí có normalized_pet_score cao hơn, trong trường hợp này. Để biết thêm các lựa chọn trực quan hoá dữ liệu Thông tin chi tiết về địa điểm, hãy xem phần Trực quan hoá kết quả truy vấn.
Kết luận
Giờ đây, bạn đã có một phương pháp mạnh mẽ và có thể lặp lại để tạo điểm số vị trí chi tiết. Bắt đầu với các vị trí của bạn, bạn đã tạo một truy vấn SQL duy nhất trong BigQuery để tìm những địa điểm lân cận bằng ST_DWITHIN, lọc những địa điểm đó theo các thuộc tính nâng cao như good_for_children và allows_dogs, đồng thời tổng hợp kết quả bằng COUNTIF. Bằng cách áp dụng trọng số tuỳ chỉnh và chuẩn hoá kết quả, bạn đã tạo ra một điểm số duy nhất, thân thiện với người dùng, mang lại thông tin chi tiết sâu sắc và hữu ích. Bạn có thể áp dụng trực tiếp mẫu này để chuyển đổi dữ liệu vị trí thô thành một lợi thế cạnh tranh đáng kể.
Hành động tiếp theo
Giờ đến lượt bạn xây dựng. Hướng dẫn này cung cấp một mẫu. Bạn có thể sử dụng dữ liệu phong phú có trong giản đồ Thông tin chi tiết về địa điểm để tạo những điểm số cần thiết nhất cho trường hợp sử dụng của mình. Hãy cân nhắc những điểm số khác mà bạn có thể xây dựng:
- "Điểm vui chơi về đêm": Kết hợp các bộ lọc cho
primary_type(bar,night_club),price_levelvà giờ mở cửa muộn để tìm những khu vực sôi động nhất sau khi trời tối. - "Điểm số về thể dục và sức khoẻ": Đếm số
gyms,parksvàhealth_food_storesở gần, đồng thời lọc các nhà hàng cóserves_vegetarian_foodđể chấm điểm các địa điểm cho người dùng quan tâm đến sức khoẻ. - "Điểm số lý tưởng cho người đi làm": Tìm những địa điểm có mật độ cao về các địa điểm
transit_stationvàparkingở gần để giúp những người dùng coi trọng việc tiếp cận phương tiện giao thông.
Người đóng góp
Henrik Valve | Kỹ sư DevX