/ChinaMapShift

Python script processing KML file to transform coordinates between WGS-84 and GCJ-02 (China)

Primary LanguageCMIT LicenseMIT

ChinaMapShift

Algorithm for the map offset problem in China. 解决**地图偏移问题的算法。

Include a KML file processor (Python) to transform coordinates between WGS-84 and GCJ-02 (China)./ 提供在通用的 WGS-84 坐标系和**的 GCJ-02 坐标系间,转换 KML 文件中的地理坐标的 Python 脚本。


Enviornment/ 环境要求

Ensure you have china_shift.dll stored in the same folder with china_shift.py./ 首先确定库文件 china_shift.dll 与脚本 china_shift.py 在同一文件夹下。

And you have python 2.7 installed on your system, together with the following libraries./ 并确定你的系统安装了 Python 及其以下库(一般的 Python 安装都自带这些库): ctypes, argparse, xml, csv


Usage/ 使用方法

In terminal/ 在命令行下运行

python china_shift.py -g input.kml

to transform all coordinates in input.kml from WGS-84 to GCJ-02./ 将文件 input.kml 中的坐标由 WGS-84 坐标系转换到 GCJ-02 坐标系。

and/ 而

python china_shift.py -w input.kml

to transform all coordinates in input.kml from GCJ-02 to WGS-84./ 将文件 input.kml 中的坐标由 GCJ-02 坐标系转换到 WGS-84 坐标系。


More/ 其他

The source code of the china_shift.dll library is in /algorithm. It contains the algorithm for transformation./ 动态链接库文件 china_shift.dll 的源代码位于 /algorithm 文件夹下,该代码包含转换算法。

china_shift.c   --> source file / 源文件
china_shift.h   --> header file / 头文件

Most of this source code comes from someone anonymous on the Internet. transformFromGCJToWGS() is added by me (fengzee@fengzee.me)./ 该算法的大多数部分来自网络。GCJ-02 转换到 WGS-84 的算法 transformFromGCJToWGS() 由我(fengzee@fengzee.me)使用迭代法在其逆变换的基础上实现。

Please be aware that it might be illegal or politically risky in China to use or transmit this algorithm./ 请注意,使用和传播此算法可能违反**有关国家秘密的相关法律。

Evil is evil. I take the risk. / 我认为**政府相关部门使用此算法进行的地图偏移政策是不正确的。我自愿承担这一风险传播此算法。