中华人民共和国地理数据限制

出于国家安全考虑，中华人民共和国对在中国大陆境内进行地理测绘有专门限制。在使用中华人民共和国境内的数据之前，需要从国务院下属的中华人民共和国国家地理信息部门（现为中华人民共和国自然资源部地理信息管理司、国土测绘司）获得相应的资质许可。未经许可进行测绘者可能须承担行政或刑事责任，而未有依照相关规定的网站如OpenStreetMap等亦会遭到封锁。

为防使用者误触犯法律，部分带有全球定位系统（GPS）功能的相机在中国大陆会自动关闭照片地理标记的功能。除此之外，由于国测局要求电子地图提供商使用一种国测局特制的坐标系，一些未按此规范做相应适配的地图程序的卫星图与街道地图之间将存在一定偏移。

## 法律规定

### 测绘

按照《中华人民共和国测绘法》第7、26、40、42条，未经官方许可的私人测绘制图活动属于违法行为，严重的将构成犯罪。

擅自发布中华人民共和国领域和管辖的其他海域的重要地理信息数据的，给予警告，责令改正，可以并处十万元以下的罚款；对直接负责的主管人员和其他直接责任人员，依法给予处分；构成犯罪的，依法追究刑事责任。

2006到2014年期间，中华人民共和国当局处理了近40多例非法测绘案件。媒体也报道了一些非法测绘案件：

- 2005年：日本人新疆非法测绘事件。
- 2007年3月7日：日韩学者受罚款。威海一合资企业未经许可雇佣外国测绘人员。
- 2008年3月25日：国家测绘地理信息局取缔中国大陆境内共10000多地图网站中的某些地图网站，大多是因为擅自发布地图数据。
- 2009年1月6日：英国学生因“非法制图活动”受罚款。
- 2010年：中国政府取缔其境内42000地图服务商中部分未经注册、非法运营的服务商，其注重点在于消除错误信息、保护国家机密。新发布的地图服务标准要求地图服务商将储存地图数据的服务器置于中国境内。
- 2014年3月14日：可口可乐公司被指非法测绘。

由于这一法规限制，松下、徕卡、富士、尼康、三星等厂商的相机都限制记录中国境内的地理数据。

四川省测绘地理信息局于2016年8月警告称，未经许可使用测绘无人机可构成非法测绘。

### 地图内容

对于出版的地图，中华人民共和国也有各种规定：

- 《公开地图内容表示若干规定》（测绘局，2003）禁止表示机场（在一个《关于公布可在公开地图上表示的机场的通知》上的除外）、军事建筑、水路深度。《若干规定》对争议领土的命名和表示，以及对俄国割占的中国领土的命名也有要求。
- 《公开地图内容表示补充规定》（测绘局，2009）额外禁止了一些做法，以下是选列：
- 位置精度超过50m、高程模型网格小于100m
- 显示重要基础设施（电力设施、水利设施、气象站）和公安设施（监狱、强制戒毒所）的位置
- 显示机场和轮渡码头的内部结构
- 显示公路、桥梁、隧道的限高、限宽、限重；显示路面材料。
- 《地图管理条例》（国务院，2015）额外规定互联网地图必须把数据保存在中国。《条例》对保护国家安全也有一些叙述，并且规定了一些惩罚。

中华人民共和国自然资源部曾表示，中国的“问题地图”主要有两种情况。一是地图存在“危害国家主权统一、领土完整等严重问题”，容易出错的地方则是中华人民共和国声称拥有主权的阿克塞钦地区，藏南地区、南海诸岛、台湾岛以及钓鱼岛、赤尾屿。其中，阿克塞钦地区，藏南地区在问题地图中主要表现为国界绘制错误；台湾岛底色与中国大陆不一致，则违背“一个中国”原则及中华人民共和国立场；南海诸岛和钓鱼岛、赤尾屿也容易出现被漏绘的情况。第二种表现是危害国家安全和发展利益，“违法标注一些涉密或敏感的信息”。

2016年，中国“有关部门”在一次大规模检察中，发现“问题”纸质地图253种，“问题”在线地图1000站。

## 坐标系实现

<image>

中国大陆法规要求地图提供商使用一种称为GCJ-02的坐标系统。百度地图另外使用一种BD-09坐标系，似乎也是基于GCJ-02。

导航电子地图在公开出版、销售、传播、展示和使用前，必须进行空间位置技术处理。

### GCJ-02

GCJ-02（官方称地形图非线性保密处理算法，俗称火星坐标系、国测局坐标）是一种基于WGS-84制定的大地测量系统，由中国大陆国家测绘地理信息局制定，国家科学技术进步奖一等奖得主李成名开发。此坐标系所采用的混淆算法会在经纬度中加入看似随机的偏移。

使用GCJ-02记录下的地点在GCJ-02的地图中会显示在正确位置，然而换成WGS-84的地图或地点记录就可能造成100－700米不等的偏移。据测量，Google.com的地图与真实坐标相差约50－500米，而中国大陆区的Google.cn地图则与卫星图无偏差，雅虎地图显示的街道图也与卫星图偏差不大。MapQuest地图与众包测绘、不受限制的OpenStreetMap重合。

虽然GCJ-02坐标系统本身保密，但是目前已有C#、C、Go、Java、JavaScript、PHP、Python、R、Ruby等多种语言的开源转换实现。这些实现似乎都基于某份泄露出的WGS到GCJ加偏代码实现。根据泄露代码注释，GCJ-02在加偏时使用的是SK-42参考系统的椭球体参数。这些参数用于计算一根经/纬线上一度的弧长，由此将之前算出的偏移从米数转换为度数，与输入值相加。

除了直接获取加偏算法，也有人通过对谷歌中国大陆地图与卫星间的偏移做回归近似处理。Wu Yongzheng使用傅里叶变换解出了与泄露代码类似的高频结构。除了加偏之外，现在也有一些反向纠偏的实现。

### BD-09

BD-09是百度地图使用的地理坐标系，其在GCJ-02上多增加了一次变换，号称“有助保护用户隐私”。百度提供从 WGS-84、GCJ-02、BD-09、mapbar、51 地图坐标系（经纬度或墨卡托米制）转换到 BD-09 或 GCJ-02 坐标系（经纬度或墨卡托米制）的API，但“根据相关法律规定”，不支持从任何坐标系转换到 WGS-84 坐标系。

和GCJ-02的情况类似，虽然没有转换为WGS-84的官方API，但却存在R等多种语言写成的开源版本。

数学上，BD-09 变换将 GCJ 坐标当作直角坐标转成极坐标后加噪音，在变回直角坐标之后再加入一个度数恒定的偏移量。

### 反向纠偏

由于GCJ-02大量使用正弦函数制造高频噪音，形成了一个超越方程，导致基本不可能获得解析解。不过由于GCJ加偏前后的坐标相差并不太大，且其单调性和局部线性特性也较好，大部分开源实现都通过类似这样的算法实现反向纠偏：

称要求的“好”坐标为 good。令“加偏函数”为 worsen，“坏坐标”为 1=bad = worsen(good)。一个“混淆”坐标系有以下性质：

- 前后相差不大：worsen(a) ≈ a。
- 局部线性：如果 a ≈ b，那么 worsen(a) - worsen(b) ≈ a - b。

粗略法: 由性质 1 和 2, worsen(good) - worsen(bad) ≈ good - bad。解方程可得 good ≈ 2 bad - worsen(bad)。

精确法（不动点迭代）: 取粗略法得到的结果 g。按照性质 2，将 worsen(g) 与输入的 bad 对比，以估计剩余的偏差。用估计出的剩余偏差修正 g。重复迭代，酌情结束。

开源实现者称，“粗略”算法能提供1~2米的来回转换精度，而精确算法则可以在两个迭代内获得“厘米级”精度。由于经纬度加偏坐标大多都具有前述的两个特性，这种纠偏方法适用于多种混淆方式。BD转回GCJ的代码正是在移除了20弧秒左右的固定经纬偏移后使用了类似于粗略算法的反向代入估计。

## 中国大陆地图偏移问题

<image>

中国大陆地图偏移问题指的是由GCJ-02与WGS-84之间的偏差引致的一系列问题。GPS的经纬度坐标使用的是标准WGS-84，画到使用GCJ-02的中国大陆路网图上时会造成距离在500m左右不等的显著偏移。国测局授权提供位置和地图服务的厂商，例如高德地图、NavInfo，都需要特别购买一个“纠偏”算法，将GPS坐标转为和地图一致的坐标系。Google.com和Bing的卫星图不受此影响。开放街图由用户通过GPS采集坐标，所以也不会出现偏移问题。

Here地图和百度地图等地图服务商选择将卫星图一同偏移，以和GCJ-02路网保持一致。

谷歌自2006年以来就从高德公司处获取地图信息。Google.cn（中国区）的地图对于街道和卫星图都使用GCJ-02坐标系。全球版的谷歌地图（Google.com）使用GCJ-02的街道图，但出于不明原因保留了普通的WGS-84卫星图。谷歌地球的卫星图使用的是WGS-84坐标。

在全球版（.com）Google地图上使用API将GPS轨迹和街道图重叠显示会造成一样偏差的问题，这是因为GPS轨迹所使用的路径点使用的都是WGS-84坐标，不同于街道图使用的GCJ-02。自2009年来，这个问题已由用户在Google的产品论坛上屡次报告，现在也有用于修正错误的第三方应用程序。在算法泄出之前，一度有人销售各大城市坐标偏移量的数据集。这个问题最早于2008年发现，但当时原因未知。

### 香港及澳门

由于实施一国两制，香港、澳门这两个特别行政区的地图不受测绘法限制，但偏移问题却导致这两地跟中国大陆接壤的边境附近显示错误，网络地图提供的道路形状会因为偏移而互相断开。这类问题给跨境旅客带来一定麻烦，更让对其不了解的人士感到十分奇怪。

例如，非中国大陆版本的谷歌地图上深圳境内的深圳地铁4号线的福田口岸站延伸进了香港境内；一些跨境口岸和道路如罗湖口岸、落马洲口岸等港方和深方不对接。

而澳门方面，截至2023年2月，珠三角环线高速（加林山隧道至港珠澳大桥珠海口岸段，往加林山隧道方向）的路线穿过澳门境内，另一方向则没有同类问题。此外，也存在港珠澳大桥珠澳口岸人工岛整个偏移，港珠澳大桥桥本体部分偏移。

除了两地边境地区外，香港和澳门其余地区没有偏移问题，使用一般的手机GPS功能可以在谷歌地图、开放街图上准确显示位置。

## 参见

- 日本人新疆非法测绘事件
- 电视剧《亲爱的，热爱的》地图事件