开发者工具

使用 Mapcode 开发

如果想快速尝试 mapcode,可以从 REST API 开始:集成简单,几分钟即可见效。当需要本地或离线编码、更低延迟、无网络依赖或无 API 数据传输成本时,可以使用 TypeScript 等库。

推荐顺序

  1. REST API 可实现最快速的首次集成。
  2. TypeScript 适用于需要在 Web 或 Node.js 应用中进行本地编码的场景。
  3. Python 适用于脚本、分析和后端工作流。
  4. Java 适用于现有 JVM 应用程序。

REST API 快速入门

使用公共 REST API 来验证编码和解码流程,然后再选择更深入的集成方式。以下示例使用非洲的标志性地标乞力马扎罗山。

1. 坐标转 mapcode

请求乞力马扎罗山附近坐标的 mapcode,并将本地结果限制在坦桑尼亚。

请求
GET https://api.mapcode.com/mapcode/json/codes/-3.0674,37.3556?territory=TZA
关键响应
{
  "local": {
    "mapcode": "86.W6V5",
    "territory": "TZA"
  }
}

2. Mapcode 转坐标

将本地 mapcode 解码回其代表区域的中心点。

请求
GET https://api.mapcode.com/mapcode/json/coords/TZA%2086.W6V5
关键响应
{
  "latDeg": -3.0673755,
  "lonDeg": 37.3555635
}

解码后出现的小坐标差异是正常的,因为 mapcode 代表的是一个小区域,而非精确的原始输入点。

打开完整 REST API 文档

当你希望在自己的应用中集成 mapcode 编码和解码功能,而不依赖网络调用时,请使用库。

Python

使用 Python 处理脚本、数据工作流和后端服务。

安装
pip install mapcode
编码和解码
import mapcode

print(mapcode.encode(-3.0674, 37.3556, "TZA")[0])
print(mapcode.decode("TZA 86.W6V5"))

Java

当你需要在现有 JVM 应用中集成 mapcode 时,请使用 Java。

Maven 依赖
<dependency>
  <groupId>com.mapcode</groupId>
  <artifactId>mapcode</artifactId>
  <version>2.4.19</version>
</dependency>
编码和解码
import com.mapcode.Mapcode;
import com.mapcode.MapcodeCodec;
import com.mapcode.Point;
import com.mapcode.Territory;

Mapcode code = MapcodeCodec.encodeToShortest(-3.0674, 37.3556, Territory.TZA);
System.out.println(code.getCodeWithTerritory());

Point point = MapcodeCodec.decode("TZA 86.W6V5");
System.out.println(point.getLatDeg() + ", " + point.getLonDeg());

其他工具

这些工具仍可用,但大多数新的技术集成应从 REST、TypeScript 或 Python 开始。

命令行工具

C/C++ 源代码包含一个跨平台的命令行工具,用于编码和解码 mapcode。

MyMapcodes.com

您可能希望使用 MyMapcodes.com 来轻松查找 mapcode,也可以在手机上使用。MyMapcodes 是一个免费的第三方网站。

旧版工具

旧版 Windows 工具仍可用于方便起见,但不建议用于新集成。

编码位置 -33.93, 18.8:
mapcode -e -33.93, 18.8
再次解码:
mapcode -d ZAF WK.QV5
将 mapcode 转换为坐标:
=WEBSERVICE("https://api.mapcode.com/mapcode/xml/coords/Q4.HGY?context=NLD")
将坐标转换回 mapcode:
=WEBSERVICE("https://api.mapcode.com/mapcode/xml/codes/52.460897,5.1074585")