LBS 位置服务详解

一、GNSS 卫星定位系统

1.1 全球四大卫星导航系统概述

GNSS(Global Navigation Satellite System)是位置服务的基础设施。当你打开手机地图应用时,设备正在同时接收来自多个卫星星座的信号。截至 2026 年,全球已有四大运行中的卫星导航系统,加上两个区域增强系统(日本 QZSS、印度 NavIC),共同构建了覆盖全球的高精度定位网络。

参数GPS (美国)GLONASS (俄罗斯)Galileo (欧盟)BDS/北斗 (中国)

启用年份1995 全面运行1993 / 2011 恢复2016 初始 / 2024 全面2000 区域 / 2020 全球

星座规模31 颗 (6 轨道面)24 颗 (3 轨道面)30 颗 (3 轨道面)45 颗 (MEO+GEO+IGSO)

轨道高度20,200 km19,100 km23,222 kmMEO 21,528 km

轨道周期11 h 58 min11 h 15 min14 h 07 min12 h 53 min (MEO)

信号频段L1/L2/L5G1/G2/G3E1/E5a/E5b/E6B1I/B1C/B2a/B2b/B3I

民用精度 (单点)~3-5 m~5-10 m~1-3 m~3-5 m (全球) / ~1 m (亚太)

多址方式CDMAFDMA + CDMACDMACDMA

管理机构美国太空军俄罗斯航天局欧盟 GSA/EUSPA中国卫星导航管理办公室

北斗三号系统(BDS-3)是中国自主建设的全球卫星导航系统,采用独特的混合星座架构:3 颗 GEO(地球静止轨道)+ 3 颗 IGSO(倾斜地球同步轨道)+ 24 颗 MEO(中圆地球轨道)。GEO 和 IGSO 卫星为亚太地区提供额外信号增强,使区域定位精度可达 1 米级别。此外,北斗还独有短报文通信功能(RDSS),支持 1000 汉字/次的双向通信,在地震、海上救援等无通信基站场景中发挥关键作用。

1.2 伪距测量原理

卫星定位的核心是伪距(Pseudorange)测量。接收机通过计算卫星信号的传播时间,乘以光速得到距离估计。之所以称为"伪距",是因为接收机时钟与卫星原子钟之间存在钟差,导致测量值并非真实几何距离。

伪距观测方程:

P = ρ + c · (dt_r - dt_s) + I + T + ε

其中:

P = 伪距观测值 (m)

ρ = 卫星与接收机的几何距离

c = 光速 (299,792,458 m/s)

dt_r = 接收机钟差,dt_s = 卫星钟差

I = 电离层延迟 (L1 约 5-15 m,与频率 f 的平方成反比)

T = 对流层延迟 (约 2.3-2.5 m 天顶方向)

ε = 多径效应 + 接收机噪声

定位需要解算 4 个未知数:接收机的三维坐标(X, Y, Z)和钟差 dt_r,因此至少需要同时观测 4 颗卫星。现代多模接收机可同时追踪 GPS + BDS + Galileo + GLONASS 超过 40 颗卫星,通过最小二乘法或卡尔曼滤波实现冗余解算,显著提升定位精度和可靠性。

1.3 高精度定位技术:从米级到厘米级

基础单点定位(SPP)精度约 3-10 米,无法满足自动驾驶、精准农业、测量等需求。以下三种差分/增强技术可将精度提升至厘米级:

技术全称原理精度收敛时间典型应用

DGPSDifferential GPS基准站广播伪距改正数,用户端改正观测值0.5-2 m实时船舶导航、GIS 数据采集

RTKReal-Time Kinematic基准站与流动站载波相位差分,整周模糊度固定1-3 cm (平面)2-5 cm (高程)数秒~1 min测量放样、自动驾驶、无人机

PPPPrecise Point Positioning利用 IGS 精密星历和钟差产品,单站解算2-5 cm (静态)5-10 cm (动态)15-30 min (传统)1-5 min (PPP-RTK)大范围测量、海洋定位

RTK 与 CORS 网络

RTK 定位要求基准站与流动站距离不超过约 30-50 km(受大气误差空间相关性限制)。为覆盖更大范围,各国建设了连续运行参考站网络(CORS)。中国的千寻位置(Qianxun SI)是全球最大的 CORS 网络之一,截至 2025 年已建成超过 2,800+ 基准站,覆盖中国大部分区域,提供"千寻知寸(FindCM)"服务,实现全国范围的网络 RTK 厘米级实时定位。

千寻位置 (Qianxun SI) 关键数据

CORS 站数量:2,800+ 座,平均站间距约 50-60 km

覆盖范围:中国大陆所有省份及部分海域

服务精度:FindCM 厘米级 (1-3 cm)、FindM 亚米级 (< 1 m)

延迟:播发延迟 < 1 秒,首次固定时间 (TTFF) < 10 秒

日均定位请求:超过 10 亿次

应用场景:自动驾驶、精准农业、无人机测绘、形变监测

PPP-RTK 是近年兴起的融合技术,通过播发大气改正信息(电离层/对流层),将 PPP 的收敛时间从 30 分钟缩短至 1-5 分钟,同时保留单站定位的灵活性。北斗三号 B2b 频段已开始播发 PPP-B2b 增强服务,面向亚太地区提供免费的分米级定位。

二、室内定位技术

GNSS 信号在室内严重衰减(通常损失 20-30 dB),导致定位失效。商场导航、仓储物流、机场寻路等场景催生了一系列室内定位技术。根据信号类型、精度需求和部署成本,主流方案包括 UWB、WiFi 和 BLE 三大类。

2.1 UWB 超宽带定位

UWB(Ultra-Wideband)是目前室内定位精度最高的无线技术,工作在 3.1-10.6 GHz 频段,信号带宽超过 500 MHz。极窄的时域脉冲使得 UWB 具有优异的时间分辨率,能有效抑制多径效应。

测距原理

TDoA(Time Difference of Arrival):至少 3 个同步基站接收标签信号,通过到达时间差构建双曲线交会定位。优点是标签无需参与测距交互,可支持海量标签并发;缺点是基站之间必须严格时间同步(误差 < 1 ns)。

TWR(Two-Way Ranging):标签与基站之间进行双向测距,通过往返时间计算距离,避免了时钟同步问题。DS-TWR(双边双向测距)进一步消除了频率偏差。适合基站数量较少的场景。

精度与应用

UWB 定位精度通常在 10-30 cm,在开阔环境可达 5 cm。Apple 自 iPhone 11 起集成 U1 芯片(后续升级为 U2),支持 UWB 空间感知。典型应用包括 AirTag 精确查找(带方向指引)、Car Key 数字车钥匙(距离感知免触解锁)、以及 Nearby Interaction 框架下的 AR 空间交互。工业领域,UWB 被广泛用于工厂人员定位、AGV 调度、隧道施工安全监控。

2.2 WiFi 定位

WiFi 定位利用已有的无线局域网基础设施,部署成本低,覆盖范围广。主要有三种技术路线:

RSSI 指纹定位(Fingerprinting)

分为两个阶段:离线采集阶段在目标区域的参考点记录各 AP 的 RSSI 值,构建指纹数据库(Radio Map);在线定位阶段将实时 RSSI 与数据库匹配,采用 KNN、SVM、或深度学习(CNN/LSTM)算法估计位置。精度约 2-5 米,但指纹库维护成本高(AP 变动/装修后需重新采集)。

三边测量/三角测量(Trilateration)

通过路径损耗模型将 RSSI 转换为距离估计,利用至少 3 个 AP 的距离进行几何定位。受室内复杂传播环境影响(反射、衍射、人体遮挡),基于 RSSI 的测距误差较大,精度通常为 5-10 米。

WiFi RTT (IEEE 802.11mc / WiFi FTM)

WiFi Round-Trip Time 是 2016 年 IEEE 802.11mc 标准引入的精确测距协议。通过测量 WiFi 帧在终端与 AP 之间的往返时间来计算距离,类似 UWB 的 TWR 原理。RTT 方式不依赖不稳定的 RSSI,精度可达 1-2 米。Android 9+ 通过 WifiRttManager API 原生支持。Google 在其室内地图中已大规模集成 WiFi RTT,部分商场和机场可实现 1 米级导航。

2.3 BLE 蓝牙低功耗定位

BLE(Bluetooth Low Energy)定位依靠低功耗蓝牙信标(Beacon)周期性广播信号。BLE 5.0+ 的广播范围可达 200 米(开阔环境),功耗极低(纽扣电池可工作 1-3 年)。

技术方案

iBeacon(Apple)/ Eddystone(Google):基于 RSSI 的近场感知,支持"进入/离开/远/近/紧邻"三区判定,精度约 1-3 米。广泛用于零售、博物馆导览、室内导航。

AoA(Angle of Arrival):BLE 5.1 规范引入的方向检测功能。接收端使用天线阵列,通过 IQ 采样分析到达信号的相位差,计算入射角度。结合多个锚点的角度信息,可实现 0.5-1 米的亚米级定位。代表产品如 Quuppa 系统。

2.4 室内定位技术对比

技术精度覆盖范围部署成本终端要求功耗典型场景

UWB10-30 cm50-100 m/基站高(专用基站)需 UWB 芯片 (U1/U2)中工业追踪、精密导航

WiFi RSSI2-5 m复用已有 AP低(软件方案)WiFi 终端中商场导航、资产管理

WiFi RTT1-2 m复用 11mc AP中(AP 升级)Android 9+ / 11mc AP中大型场馆、机场

BLE Beacon1-3 m10-30 m/信标低BLE 4.0+极低零售、博物馆

BLE 5.1 AoA0.5-1 m10-30 m/锚点中-高BLE 5.1 天线阵列低医院资产、仓储

实际部署中,多种技术常融合使用(Hybrid Positioning)。例如 Apple 的室内定位方案整合了 WiFi 指纹 + BLE + 气压计(楼层检测)+ PDR(行人航位推算)+ 视觉惯性里程计(VIO),在 Apple Maps 的室内地图中提供 3 米级定位体验。

三、高精地图与自动驾驶

3.1 什么是高精地图(HD Map)

高精地图(High-Definition Map)是自动驾驶汽车的"先验知识库",精度达厘米级(绝对精度 < 20 cm,相对精度 < 5 cm),远超传统导航地图的 5-10 米精度。高精地图为自动驾驶提供超视距感知能力——车辆在弯道前就能"看到"前方车道的曲率、坡度、限速等信息。

3.2 数据分层结构

高精地图通常采用多层数据架构,每一层承载不同粒度的空间信息:

层级名称核心内容精度要求更新频率

1道路层 (Road Layer)道路中心线、道路边界、交叉口拓扑、匝道连接、道路曲率< 50 cm月/季

2车道层 (Lane Layer)车道线几何(虚线/实线/双黄线)、车道宽度、车道类型(直行/左转/公交)、车道中心线< 20 cm月/季

3交通设施层 (Traffic Layer)交通信号灯位置与朝向、交通标志(限速/禁止/指示)、地面标线(箭头/斑马线/停止线)< 30 cm月/季

4定位特征层 (Localization Layer)路灯杆、护栏端点、建筑物角点、反光标志等几何特征点/线;点云强度图或语义分割地图< 10 cm季/半年

5动态层 (Dynamic Layer)实时交通流、施工区域、临时管制、天气路面状态定性实时/分钟

主流数据格式

OpenDRIVE:ASAM 制定的道路描述标准,基于 XML,用参数化几何(直线/圆弧/螺旋线/三次多项式)描述车道中心线,广泛用于仿真

NDS (Navigation Data Standard):HERE/大众/BMW 等推动的压缩瓦片化标准,支持增量更新

Apollo OpenAPI / HD Map:百度 Apollo 定义的高精地图格式,基于 Protobuf,包含道路、交叉口、信号灯完整描述

3.3 高精地图 vs "轻地图"争论

围绕自动驾驶是否需要高精地图,行业存在两大路线之争:

"重地图"派 (HD Map Essential)

代表:Waymo、百度 Apollo、Mobileye REM

核心论点:高精地图提供确定性先验信息,弥补传感器实时感知的局限(遮挡、恶劣天气)。地图冗余是安全冗余。

挑战:采集成本高(配备激光雷达的采集车约 ¥200-500 万/辆),更新维护困难,需要测绘资质(中国甲级导航电子地图资质仅约 20 家企业持有)。

"轻地图"派 (Mapless / Light Map)

代表:Tesla FSD、华为 ADS 2.0+ GOD 网络

核心论点:端到端神经网络可从摄像头/传感器实时重建 3D 场景,无需预制高精地图。Tesla 的 Occupancy Network 直接输出体素化占用网格。

优势:不依赖地图覆盖区域,可快速拓展到新城市;不受地图时效性限制;降低 OEM 成本。

妥协:实际中仍需导航级地图(SD Map)提供路由拓扑。

2024-2025 年的趋势表明,两种路线正在融合:Waymo 开始减少对预制高精地图的依赖,采用实时感知+轻量地图;华为 ADS 3.0 的"全国都能开"策略本质上也融入了云端下发的道路骨架信息。行业共识逐渐转向:高精地图作为"安全层"而非"必需层",在 ODD 范围内按需使用。

四、地理围栏(Geofencing)

4.1 概念与原理

地理围栏(Geofencing)是指在真实地理空间中定义虚拟边界,当设备/车辆/人员进入或离开该区域时触发预设事件。围栏几何可以是圆形(中心点+半径)、多边形、或走廊形(路径+缓冲区)。技术实现通常基于 GPS 定位 + 点在多边形判定算法(Ray Casting / Winding Number)。

4.2 典型应用场景

自动驾驶 ODD

Operational Design Domain(运行设计域)用地理围栏定义自动驾驶系统的合法运行区域。例如 Waymo 在旧金山的 Robotaxi 服务区域、百度 Apollo 在武汉 170 km² 的无人驾驶运营范围,都通过精确的多边形围栏划定。车辆接近 ODD 边界时需提前请求人工接管。

共享单车/电动车

共享出行企业通过地理围栏定义运营区域(区域外无法骑行或自动断电)、禁停区(景区、地铁出口)、推荐停车点(围栏内还车免调度费)。美团单车、哈啰出行均通过百万级围栏精细化管理城市内的车辆调度。

LBS 营销

零售和餐饮企业在门店周围设置围栏(通常半径 100-500 米),当安装了对应 APP 或小程序的用户进入围栏时,推送优惠券或促销通知。星巴克、麦当劳等品牌的 Geofencing 营销转化率可比普通推送高 2-3 倍。

安全与合规

无人机禁飞区(机场、军事区域周围的 NFZ)、危化品运输车辆电子围栏监控、儿童/老人安全监护(离开指定区域报警)、企业资产车辆管理等。大疆无人机内置全球禁飞区围栏数据库,飞行前自动检查。

五、空间索引技术

位置服务的核心计算问题之一是空间查询:给定一个位置,如何快速找到"附近的"目标?传统 B-Tree 索引只能处理一维有序数据,无法直接支持二维空间的范围查询和最近邻查询。空间索引(Spatial Index)通过对二维/三维空间进行层次化划分,将空间邻近性转化为存储邻近性。

5.1 R-tree 及其变种

R-tree 由 Antonin Guttman 于 1984 年提出,是最经典的空间索引结构。其核心思想是用最小外接矩形(MBR, Minimum Bounding Rectangle)层层包裹空间对象,构建一棵平衡多叉树。

结构与操作

叶节点存储空间对象的 MBR 及指向实际数据的指针

非叶节点存储子节点 MBR 的外接矩形

搜索:从根节点开始,检查查询窗口是否与各子节点 MBR 相交,递归进入所有相交子树

插入:选择面积增量最小的子节点插入,节点满时分裂

节点容量通常为 M = 40-100 个条目(取决于磁盘页大小)

Guttman, A. (1984). "R-trees: A Dynamic Index Structure for Spatial Searching." ACM SIGMOD, 47-57.

R-tree 的性能瓶颈在于 MBR 之间的重叠 —— 重叠越多,搜索时需要遍历的分支越多。

R*-tree(Beckmann et al., 1990)通过强制重插入(Forced Reinsertion)策略减少 MBR 重叠,并在分裂时同时优化面积、边长和重叠三个指标,显著提升查询性能。R*-tree 是 PostGIS(通过 GIST 索引)和 SQLite 的 SpatialLite 中默认的空间索引实现。

5.2 Quadtree 四叉树

四叉树将二维空间递归地四等分为 NW/NE/SW/SE 四个象限。当某个象限内的对象数量超过阈值时继续细分,直到达到最大深度。四叉树适合处理点数据(Point Quadtree)和区域数据(Region Quadtree)。

优势:实现简单,空间分割均匀,编码直观(用 2-bit 序列表示路径)

劣势:不是平衡结构,数据分布不均匀时可能极度倾斜

应用:图像压缩、碰撞检测、早期 Web 地图瓦片分割(z/x/y 瓦片就是四叉树的直观体现)

5.3 GeoHash:空间填充曲线编码

GeoHash 由 Gustavo Niemeyer 于 2008 年发明,将二维经纬度坐标编码为一维字符串。其本质是 Z-order 空间填充曲线的离散化应用。

编码原理

将经度区间 [-180, 180] 和纬度区间 [-90, 90] 交替进行二分

每次二分:坐标落在右/上半区记 1,左/下半区记 0

交替编码经度和纬度的二进制位(经度在奇数位,纬度在偶数位)

将得到的二进制串每 5 位一组,用 Base32 编码(0-9, b-z 去掉 a/i/l/o)转为字符

示例:天安门广场 (39.9087°N, 116.3975°E)

GeoHash = "wx4g0" (5 字符,精度约 ±2.4 km)

GeoHash = "wx4g0ec" (7 字符,精度约 ±76 m)

GeoHash = "wx4g0ec1x" (9 字符,精度约 ±2.4 m)

GeoHash 长度与精度对应关系:

1 字符 ≈ ±2500 km | 5 字符 ≈ ±2.4 km | 7 字符 ≈ ±76 m

8 字符 ≈ ±19 m | 9 字符 ≈ ±2.4 m | 12 字符 ≈ ±0.019 m

GeoHash 的关键特性是前缀匹配:共享更长前缀的两个 GeoHash 在空间上更接近。这使得空间邻近查询可以转化为字符串前缀匹配,直接利用 B-Tree 索引加速。

Redis 中的 GeoHash

Redis 3.2+ 内置了 Geo 数据结构,底层就是 GeoHash + Sorted Set。核心命令:

GEOADD restaurants 116.3975 39.9087 "quanjude"

GEOADD restaurants 116.4074 39.9042 "bianyifang"

# 查询天安门 3km 内的餐厅

GEOSEARCH restaurants FROMLONLAT 116.3975 39.9087 BYRADIUS 3 km ASC COUNT 10

# 计算两点距离

GEODIST restaurants "quanjude" "bianyifang" m

Redis 内部将经纬度编码为 52-bit 的 GeoHash 整数,作为 Sorted Set 的 score 存储。范围查询时,计算覆盖目标圆形的 9 个 GeoHash 网格(目标格 + 8 个邻居),对每个网格的 score 范围执行 ZRANGEBYSCORE,最后精确过滤。

5.4 H3:Uber 六边形层级网格

H3 是 Uber 于 2018 年开源的全球离散网格系统(DGGS),将地球表面划分为多分辨率的正六边形网格。

为什么选择六边形?

均匀邻近性:正六边形的 6 个邻居与中心格的距离完全相等(正方形有 4 个边邻居和 4 个角邻居,距离不同)

最小边界效应:六边形的周长/面积比是正多边形中最优的(接近圆形)

无方向偏差:扩散分析、等时圈计算时不会出现正方形网格的"45度锯齿"问题

分辨率体系

H3 定义了 16 个分辨率层级(0-15),每级面积约为上一级的 1/7:

分辨率平均边长平均面积网格总数典型用途

01,107 km4,357,449 km²122全球概览

359.8 km12,392 km²41,162区域分析

58.5 km253 km²2,016,842城市级分析

71.22 km5.16 km²98,825,162社区/商圈

9174 m0.105 km²4,842,432,842出行需求热力图

1124.9 m2,149 m²~2.4 × 10¹¹POI 聚合

133.56 m43.87 m²~1.17 × 10¹³建筑级

150.51 m0.90 m²~5.7 × 10¹&sup4;亚米级精度

H3 在 Uber 的实战应用

动态定价(Surge Pricing):以 Resolution 7-9 的六边形为单位,实时统计供需比,计算溢价倍率

ETA 预测:将城市划分为 H3 网格,每个网格维护历史通行时间分布

司机热力图:以 Resolution 9 聚合显示实时叫车需求密度

市场分析:以 Resolution 7 为单位分析各区域的市场渗透率和增长趋势

H3 的索引编码为 64-bit 整数,包含分辨率、基面编号和层级路径。通过 h3.latlng_to_cell(lat, lng, resolution) 可快速将任意经纬度映射到 H3 索引。H3 已被 Snowflake、DuckDB、ClickHouse、Databricks 等主流数据平台原生支持。

六、位置隐私保护

位置数据是最敏感的个人信息之一 —— 通过分析一个人的移动轨迹,可以推断其住址、工作地点、就医记录、宗教信仰、社交关系等高度隐私信息。研究表明,仅需 4 个时空点就能以 95% 的准确率唯一识别一个人(de Montjoye et al., Science 2013)。位置隐私保护已成为 LBS 领域最重要的伦理与法律议题。

6.1 K-匿名(K-Anonymity)

位置 K-匿名的核心思想是:将用户的精确位置模糊化为一个包含至少 K-1 个其他用户的空间区域(Cloaking Region),使得攻击者无法以高于 1/K 的概率将查询与特定用户关联。

空间模糊化:使用可信第三方(Anonymizer)收集 K 个用户的位置,计算它们的最小外接矩形作为匿名区域

优点:概念直观,易于实现

局限:可信第三方成为单点故障和隐私瓶颈;在用户稀疏区域,匿名区域可能非常大,导致服务质量下降;无法抵御背景知识攻击(攻击者知道某区域只有一栋居民楼)

6.2 差分隐私(Differential Privacy)

差分隐私(DP)由 Cynthia Dwork 于 2006 年提出,提供了数学上可证明的隐私保障。核心定义:

ε-差分隐私:

对任意两个仅差一条记录的相邻数据集 D 和 D',以及任意输出集合 S:

Pr[M(D) ∈ S] ≤ e¹ · Pr[M(D') ∈ S]

其中 ε(epsilon)为隐私预算参数,ε 越小隐私保护越强。

典型取值:ε ∈ [0.1, 10],实际应用中 ε = 1-3 较为常见。

Laplace 机制

对数值查询结果添加服从 Laplace 分布的噪声:噪声 ~ Lap(Δf / ε),其中 Δf 是查询的全局敏感度(加入/删除一条记录对查询结果的最大影响)。例如计数查询的敏感度 Δf = 1,则添加 Lap(1/ε) 噪声即可满足 ε-DP。

Geo-Indistinguishability(地理不可区分性)

传统差分隐私应用于位置数据时,忽略了位置的度量空间特性 —— 两个相距 1 米的位置和相距 100 km 的位置应获得不同程度的保护。Geo-Indistinguishability(Andrés et al., CCS 2013)扩展了差分隐私到度量空间:

d⊂ε-隐私(Geo-Indistinguishability):

对任意两个位置 x, x':

Pr[M(x) ∈ S] ≤ e^(ε · d(x, x')) · Pr[M(x') ∈ S]

其中 d(x, x') 是两个位置之间的欧氏距离。

效果:距离越近的位置越难被区分,距离越远的位置区分度自然增大。

实现:在用户真实位置上添加服从平面 Laplace 分布的噪声

噪声极坐标表示:r ~ Gamma(2, 1/ε), θ ~ Uniform(0, 2π)

6.3 联邦学习与本地化隐私

联邦学习(Federated Learning)让模型训练在用户设备本地进行,仅上传梯度更新而非原始位置数据。Google 在 Gboard 输入法和 Android 位置服务中大规模应用联邦学习。结合安全聚合(Secure Aggregation)和本地差分隐私(LDP),服务器甚至无法获知单个用户的梯度更新。Apple 的 "差分隐私" 方案也用于收集 Emoji 使用统计、Safari 浏览统计等,声称 ε = 2-8。

6.4 空间混淆(Spatial Obfuscation)

除上述数学方法外,还有一系列实用化的空间混淆策略:

位置泛化(Generalization):将精确坐标替换为模糊区域名(如"朝阳区"而非精确经纬度)

假位置注入(Dummy Location):向 LBS 服务器发送 K-1 个假位置和 1 个真实位置,服务器无法区分真假

轨迹断裂(Trajectory Perturbation):在轨迹中插入随机偏移或删除部分轨迹点,破坏时空连续性

Mix-zone:在特定区域(如十字路口)内,多个用户交换假名,使攻击者无法跨区域跟踪

6.5 中国法律框架:PIPL 与 GCJ-02

中国在位置隐私保护方面有特殊的法律和技术要求:

《个人信息保护法》(PIPL) 关于位置数据的规定

2021 年 11 月 1 日起实施的《个人信息保护法》(PIPL) 将行踪轨迹明确列为敏感个人信息(第 28 条)。收集精确位置信息需要:

取得用户的单独同意(非默认勾选,且与其他权限分开授权)

告知收集目的、方式和范围

遵循最小必要原则(导航 APP 可收集精确位置,天气 APP 仅需城市级位置)

数据本地化:位置数据原则上存储在中国境内,出境需通过安全评估

违规处罚:最高年营收 5% 或 5000 万元罚款

GCJ-02 坐标偏移(火星坐标系)

中国法律要求所有面向公众的地图服务必须使用 GCJ-02 坐标系(国测局02坐标系,俗称"火星坐标系"),而非国际通用的 WGS-84。GCJ-02 通过一个非线性、不公开的偏移算法,对 WGS-84 坐标进行加密偏移(偏移量约 100-700 米),使得原始 GPS 坐标无法直接在国内地图上正确显示。

坐标系使用范围代表应用

WGS-84国际标准,GPS/GNSS 原始输出Google Earth(海外版)、国际导航

GCJ-02中国法定地图坐标系高德地图、腾讯地图、Google Maps 中国

BD-09百度在 GCJ-02 基础上的二次偏移百度地图

开发者在处理中国地图数据时,必须注意坐标系转换。常用开源工具如 coordtransform(JavaScript)、gcoord(Python)可实现 WGS-84 / GCJ-02 / BD-09 之间的互转。值得注意的是,GCJ-02 的偏移算法虽未官方公开,但已被逆向工程得到足够精度的近似实现。

de Montjoye, Y. A. et al. (2013). "Unique in the Crowd: The privacy bounds of human mobility." Scientific Reports, 3(1376).

Andrés, M. E. et al. (2013). "Geo-Indistinguishability: Differential Privacy for Location-Based Systems." CCS'13, 901-914.

Dwork, C. (2006). "Differential Privacy." ICALP, 1-12.

Guttman, A. (1984). "R-trees: A Dynamic Index Structure for Spatial Searching." ACM SIGMOD, 47-57.

Beckmann, N. et al. (1990). "The R*-tree: An Efficient and Robust Access Method for Points and Rectangles." ACM SIGMOD, 322-331.