因此,我使用GeoNames API来获取国家和州/省信息,并使用这些信息在表单中填充选择下拉列表。此表单将其信息提交给SOAP web服务,并且SOAP服务器只理解2个字母形式的国家和州/省数据。即。CA代表加拿大,US代表美国。GeoNames应用编程接口为不同的国家/地区提供此信息,但不为其孩子(州/省)提供此信息。
有人知道如何从GeoNames获取州/省/地区的2个字母的缩写吗?或者有其他API可以尝试一下吗?
发布于 2012-07-04 04:25:42
我不熟悉ISO,但是看起来您得到的是GeoNames -3166Alpha-2国家代码:http://www.iso.org/iso/country_codes.htm
如果是这样,ISO 3166-2:2007定义了州和省。上面的页面介绍了如何购买数据库和其他格式的信息。
除非需要从web服务中获取此信息,否则我认为从某种类型的静态文件中读取下拉列表,并创建一种偶尔更新的机制会更简单。这种类型的数据不应该经常变化(至少在稳定的国家是这样)。
发布于 2012-07-04 04:36:35
与@user640118一致,州缩写在北美不会经常更改。最好只有一个代码或缩写的静态列表。
不过,为了回答您的问题,我开发了一个名为LiveAddress的web服务,它通过一个简单的REST端点提供地理/邮政数据。不过,从某种意义上说,它更先进一些,它接受一个地址,部分或完整,并完整地填写地址,然后对其进行验证和标准化。您可能会发现这在删除重复项和对用户数据进行地理编码方面很有价值。
如果你有一个地址,你可以在Javascript中像这样使用this wrapper function:
LiveAddress.verify("123 main st 12345", function(results) {
console.log(results);
});示例输出可以在API文档中找到。
发布于 2014-03-21 05:48:47
Geonames为国家提供了2个字母的缩写,但只有几个国家的州有缩写。
为什么他们不提供一些标准的(和有用的)东西,因为这超出了我的能力范围。
https://stackoverflow.com/questions/11318203
复制相似问题