6

因此,我使用 GeoNames API 来获取国家和州/省信息,这些信息用于填充表单中的选择下拉列表。此表单将其信息提交给 SOAP Web 服务,而 SOAP 服务器仅了解 2 个字母形式的国家和州/省数据。IE。CA 代表加拿大,US 代表美国。GeoNames API 为不同国家/地区提供此信息,但不为其子(州/省)提供此信息。

有谁知道如何从 GeoNames 获取州/省/领地的 2 个字母缩写,或者我可以尝试其他 API 吗?

4

3 回答 3

2

与@user640118 一致,在北美,州缩写不会经常改变,如果有的话。最好只列出代码或缩写的静态列表。

不过,为了回答您的问题,我开发了一种名为LiveAddress的 Web 服务,它通过一个简单的 REST 端点提供地理/邮政数据。不过,它更先进一点,因为它接受一个地址,部分或完整,并完整地填写它并验证它并标准化它。您可能会发现这对于删除重复项和对用户数据进行地理编码很有价值。

如果你有一个地址,你可以像这样在 Javascript中使用这个包装函数:

LiveAddress.verify("123 main st 12345", function(results) {
   console.log(results);
});

示例输出可以在 API 文档中找到。

于 2012-07-03T20:36:35.193 回答
1

我不熟悉 GeoNames API,但您似乎正在获取 ISO-3166 alpha-2 国家代码:http ://www.iso.org/iso/country_codes.htm

如果是这样,ISO 3166-2:2007 定义了州和省。上面的页面描述了如何购买数据库和其他格式的信息。

除非需要从 Web 服务获取此信息,否则我认为从某种类型的静态文件中读取下拉列表并创建偶尔更新的机制会更简单。这种类型的数据不应该经常改变(嗯,至少在稳定的国家)。

于 2012-07-03T20:25:41.563 回答
1

Geonames 为国家/地区提供 2 个字母的缩写,但只有少数国家/地区的州使用它们。

为什么他们不提供标准(和有用)的东西,因为这超出了我的范围。

于 2014-03-20T21:48:47.460 回答