获得2个字母的州省缩写。

问题描述 投票:5回答:3

因此,我使用GeoNames API来获取国家和省的信息,并用来填充表单中的选择下拉菜单,这个表单将信息提交给SOAP网络服务,而SOAP服务器只能理解两个字母形式的国家和省的数据。这个表单将信息提交给一个SOAP网络服务,而SOAP服务器只能理解2个字母形式的国家和省份数据,即CA代表加拿大,US代表美国。GeoNames API提供了不同国家的信息,但没有提供它们的子国家(stateprovinces)的信息。

有谁知道如何从GeoNames中获取一个stateeprovinceterritory的2个字母缩写,或者有其他API我可以尝试吗?

api geolocation geonames
3个回答
1
投票

我不熟悉GeoNames API,但似乎你得到的是ISO-3166 alpha-2国家代码。http:/www.iso.orgisocountry_codes.htm

如果是,ISO 3166-2:2007对州和省进行了定义。 上面的网页介绍了如何购买数据库和其他格式的信息。

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


3
投票

同意@user640118的观点,在北美,州的缩写不会经常变化,如果有的话。最好是有一个静态的代码或缩写列表。

为了回答你的问题,我曾经开发过一个这样的网络服务,叫做 美国街道地址APISmartyStreets 它通过一个简单的REST端点提供地理坐标数据。但它更先进一些,因为它接受一个地址,部分或完整的地址,并完整地填写它,验证它并使之标准化。你可能会发现,这在删除重复和对用户数据进行地理编码方面很有价值。

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

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

样本输出可以在API文档中找到。


1
投票

Geonames为国家提供了2个字母的缩写,但只有少数国家的州才有。

为什么他们不提供像这样的标准(和有用)的东西,我不明白。

© www.soinside.com 2019 - 2024. All rights reserved.