23 个版本 (稳定)
1.4.0 | 2024 年 3 月 26 日 |
---|---|
1.3.12 | 2023 年 8 月 26 日 |
1.3.7 | 2023 年 5 月 22 日 |
1.3.0 | 2022 年 6 月 29 日 |
0.2.0 | 2019 年 11 月 19 日 |
#23 in 地理空间
每月 68 次下载
160KB
3.5K SLoC
geocode-csv
: 使用 libpostal 或 Smarty API 地理编码 CSV 文件
(本项目与 Smarty 无关。)
警告:此项目每秒可以地理编码数千行的 CSV 文件,这可能会迅速消耗您的 Smarty 配额。 这可能需要您支付费用。
如果您有一个如下所示的 CSV 文件
name,street1,street2,city,state,zip
Resident,1600 Pennsylvania Avenue NW,,Washington DC,20500
一个 address_spec.json
文件,其内容如下
{
"geocoded": {
"street": ["street1", "street2"],
"city": "city",
"state": "state",
"zipcode": "zip"
}
}
...则可以使用以下命令进行地理编码
# Set up credentials.
export SMARTY_AUTH_ID=...
export SMARTY_AUTH_TOKEN=...
# Geocode the CSV.
geocode-csv --spec address_spec.json < in.csv > out.csv
这将添加一系列以 geocoded_
开头的列,这些列将包含各种邮政投递信息,以及估计的经纬度。如果地理编码成功,geocode-csv
将返回 0。如果失败,它将返回一个非零错误代码并将可读的错误信息打印到标准错误。
您可以在每行中地理编码多个地址,如下所示
{
"geocoded_shipping": {
/* ... */
},
"geocoded_billing": {
/* ... */
}
}
这将插入两套列,一套以 geocoded_shipping_
开头,另一套以 geocoded_billing_
开头。
构建
您需要运行
git submodule update --init
...以拉取 libpostal
的 C++ 源代码。
您还需要安装 protoc
# Linux.
sudo apt install protobuf-compiler
# Mac.
brew install protobuf
关于 Mac 的说明
我们为基于 Intel 和 M1 的 Mac 提供预构建的二进制文件。这些二进制文件使用 "ad-hoc" 签名,因此您可能需要设置适当的安全设置或运行
xattr -d com.apple.quarantine geocode-csv
依赖关系
~92MB
~1.5M SLoC