You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从多组经纬度(lat,lng)数据中获取唯一城市列表?

批量经纬度逆地理编码提取唯一城市方案

核心优化思路

针对700用户、单用户约1000条经纬度的海量数据,先减少需要处理的经纬度数量,再高效调用API提取城市,避免逐个请求的低效问题。

分步实现

  1. 数据库层去重经纬度
    直接在存储用户位置的数据库中执行去重查询,过滤掉重复的经纬度组合:

    SELECT DISTINCT lat, lng FROM user_location_records;
    

    同一城市内的经纬度会高度重复,这一步能将待处理数据量压缩到原有的几十分之一甚至更少。

  2. 批量调用逆地理编码API

    • 优先使用API的批量请求能力(Google Maps Geocoding API支持批量提交多个经纬度点,需遵循官方请求格式限制),减少HTTP请求次数。
    • 解析API返回的address_components字段,筛选类型为locality(城市)或administrative_area_level_2(部分地区对应城市级)的组件,提取其中的long_name或short_name作为城市名称。
  3. 最终城市去重
    将所有提取到的城市名称存入集合(如Python的set、Java的HashSet),利用集合自动去重的特性,直接得到唯一城市列表。

关键注意点

  • API配额与成本:Google Maps API有调用配额和计费规则,批量处理前确认配额充足;若成本敏感,可考虑免费替代服务。
  • 经纬度精度优化:对经纬度做精度截断(如保留4位小数),进一步合并地理位置极近的点,减少不必要的API调用。
  • 异常处理:部分偏远区域的经纬度可能无法解析出城市,需添加逻辑跳过这些点或设置默认标识。

内容的提问来源于stack exchange,提问作者Rohit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 03:50:40