所以我使用GeoNames API获取国家和州/省信息,我用它来填充表单中的选择下拉列表。此表单将其信息提交给SOAP Web服务,SOAP服务器仅以2字母形式了解国家/地区/州/省数据。即。 CA为加拿大,美国为美国。 GeoNames API为不同国家/地区提供此信息,但不为其子级(州/省)提供此信息。
有没有人知道如何从GeoNames获取州/省/地区的2字母缩写,还是有其他我可以尝试的API?
答案 0 :(得分:2)
与@ user640118达成一致,在北美,州名缩写不会经常发生变化(如果有的话)。最好只有一个静态的代码或缩写列表。
为了回答你的问题,我已经开发了一个名为LiveAddress的网络服务,它通过一个简单的REST端点提供地理/邮政数据。然而,它更先进一点,它接受一个地址,部分或完整,并完全填写并验证它并使其标准化。您可能会发现在删除重复项和对用户数据进行地理编码方面很有价值。
如果您有地址,可以在Javascript:
中使用this wrapper functionLiveAddress.verify("123 main st 12345", function(results) {
console.log(results);
});
示例输出可以在API文档中找到。
答案 1 :(得分:1)
我不熟悉GeoNames API,但您似乎获得了ISO-3166 alpha-2国家/地区代码:http://www.iso.org/iso/country_codes.htm
如果是这样,ISO 3166-2:2007定义了州和省。上面的页面描述了如何以数据库和其他格式购买信息。
除非要求从Web服务获取此信息,否则我认为从某种类型的静态文件中读取下拉列表更简单,并创建偶尔更新的机制。这种类型的数据不应经常改变(至少在稳定的国家)。
答案 2 :(得分:1)
Geonames为国家/地区提供2个字母的缩写,但只有少数几个国家的州。
为什么他们不提供标准(和有用)的东西,因为这超出了我的范围。