Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Language agnostic 如何通过在线web服务从美国邮政编码获取州和城市信息?_Language Agnostic - Fatal编程技术网

Language agnostic 如何通过在线web服务从美国邮政编码获取州和城市信息?

Language agnostic 如何通过在线web服务从美国邮政编码获取州和城市信息?,language-agnostic,Language Agnostic,我希望能够通过web应用程序对邮政编码所在的城市和州进行最佳猜测。是否有一些web服务可用于解决此问题?美国邮政对此有一个API,但您必须注册: 这些人似乎暴露了一个 我不想这样对你,但是 我相信对于一些疑问,你应该调查一下 但是,以下是来自上述资源的一些: -包括数据库,因此您可以自己托管一个 -商业网站,但他们有一个简单的搜索 -USPS接口,可能有 -SOAP接口 -Adam您可以获得一个将邮政编码映射到经度/纬度的数据库,以及另一个为美国所有城市提供经度/纬度的数据库。然后,您就可以

我希望能够通过web应用程序对邮政编码所在的城市和州进行最佳猜测。是否有一些web服务可用于解决此问题?

美国邮政对此有一个API,但您必须注册:


这些人似乎暴露了一个


我不想这样对你,但是

我相信对于一些疑问,你应该调查一下

但是,以下是来自上述资源的一些:

  • -包括数据库,因此您可以自己托管一个
  • -商业网站,但他们有一个简单的搜索
  • -USPS接口,可能有
  • -SOAP接口

-Adam

您可以获得一个将邮政编码映射到经度/纬度的数据库,以及另一个为美国所有城市提供经度/纬度的数据库。然后,您就可以在自己的位置上执行此操作,而不必发送到web服务


这两个数据库我都看过,但我不记得现在在哪里可以找到它们。我会四处看看,试着记住添加一条评论。

我找到了几种使用基于web的API的方法。我认为这将是最准确的,因为邮政编码是他们的东西,但看起来容易得多

使用美国邮政服务HTTP/xmlapi 根据这一点,特别是第4.0节(第22页),他们有一个URL,您可以在其中发送包含5位邮政编码的XML请求,他们将使用包含相应城市和州的XML文档进行响应

根据他们的文档,以下是您将发送的内容:

http://SERVERNAME/ShippingAPITest.dll?API=CityStateLookup&XML=<CityStateLookupRequest%20USERID="xxxxxxx"><ZipCode ID= "0"><Zip5>90210</Zip5></ZipCode></CityStateLookupRequest>
它们将返回一个JSON对象,如下所示:

{"country": "US", "state": "MI", "city": "OWOSSO"}
事实上,它是有效的。您可以通过执行以下操作从命令行进行测试:

curl http://ziptasticapi.com/48867 

我可能会在24小时内收到来自USPS的API密钥。唯一的问题是一个邮政编码中可能有多个城市/县。总是返回第一个是一种糟糕的用户体验。要真正做到准确和用户友好,您需要某种div来包含结果(如果不止一个)并允许用户选择合适的。DarrelNorton:我想知道您是否有一个包含多个城市的邮政编码示例,这样我们就可以看到ZipTastic在这种情况下的结果。95961有多个条目。有一个首选项,然后有可接受的条目。当然,各县是不同的。例如,邮政编码38583服务于5个县。而且不要求一个县有一个与之相关的城市,所以从技术上讲,城市应该是可选的。不过,大多数邮局都会使用某种城市代号。95961邮政编码似乎包含两个城市:加利福尼亚州奥利弗赫斯特和加利福尼亚州普卢马斯湖。尽管如此,Ziptastic只返回一个结果:奥利弗赫斯特。任何人都要考虑使用ZIPTASTIC。很遗憾,他们不返回一个数组而不是单个对象——对吗?!我已经用MelissaData的数据处理过地址(这样我就可以在本地将地址保存到我的应用程序中,而不必担心服务超时),所以我知道这可能带来的痛苦。
{"country": "US", "state": "MI", "city": "OWOSSO"}
curl http://ziptasticapi.com/48867