gopostal
Go/cgo 接口连接 libpostal,这是一个用于快速国际街道地址解析和标准化的 C 库。
使用方法
用于将地址字符串扩展为适合地理编码查询的标准化形式:
package main
import (
"fmt"
expand "github.com/openvenues/gopostal/expand"
)
func main() {
expansions := expand.ExpandAddress("Quatre-vingt-douze Ave des Ave des Champs-Élysées")
for i := 0; i < len(expansions); i++ {
fmt.Println(expansions[i])
}
}
用于将地址解析为各个组成部分:
package main
import (
"fmt"
parser "github.com/openvenues/gopostal/parser"
)
func main() {
parsed := parser.ParseAddress("781 Franklin Ave Crown Heights Brooklyn NY 11216 USA")
fmt.Println(parsed)
}
前提条件
在使用 Go 绑定之前,您必须安装 libpostal C 库。请确保您具备以下先决条件:
在 Ubuntu/Debian 上
sudo apt-get install curl autoconf automake libtool pkg-config
在 CentOS/RHEL 上
sudo yum install curl autoconf automake libtool pkgconfig
在 Mac OSX 上
sudo brew install curl autoconf automake libtool pkg-config
安装 libpostal
git clone https://github.com/openvenues/libpostal
cd libpostal
./bootstrap.sh
./configure --datadir=[...一个有几 GB 空间的目录...]
make
sudo make install
# 在 Linux 上最好运行
sudo ldconfig
安装
扩展功能:
go get github.com/openvenues/gopostal/expand
解析功能:
go get github.com/openvenues/gopostal/parser
测试
go test github.com/openvenues/gopostal/...