Api 获得2个字母的州/省缩写

Api 获得2个字母的州/省缩写,api,geolocation,geonames,Api,Geolocation,Geonames,因此,我使用GeoNames API获取国家和州/省信息,我使用这些信息填充表单中的select下拉列表。此表单将其信息提交给SOAP web服务,SOAP服务器只理解2个字母形式的国家和州/省数据。即加拿大为CA,美国为美国。GeoNames API为不同的国家提供此信息,但不为其子女(州/省)提供此信息 是否有人知道如何从GeoNames获取州/省/地区的两个字母缩写,或者我是否可以尝试其他API?我不熟悉GeoNames API,但您似乎正在获取ISO-3166 alpha-2国家代码:

因此,我使用GeoNames API获取国家和州/省信息,我使用这些信息填充表单中的select下拉列表。此表单将其信息提交给SOAP web服务,SOAP服务器只理解2个字母形式的国家和州/省数据。即加拿大为CA,美国为美国。GeoNames API为不同的国家提供此信息,但不为其子女(州/省)提供此信息


是否有人知道如何从GeoNames获取州/省/地区的两个字母缩写,或者我是否可以尝试其他API?

我不熟悉GeoNames API,但您似乎正在获取ISO-3166 alpha-2国家代码:

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


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

与@user640118一致,州缩写在北美不会经常更改。最好只是有一个代码或缩写的静态列表

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

如果您有地址,可以在Javascript中这样使用:

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

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

Geonames为国家提供了两个字母的缩写,但仅为少数国家的州提供了缩写


我无法理解为什么他们不提供标准(和有用)的东西。

你可能是对的,我不需要为此使用web服务。