2

我正在尝试简化地址输入系统,其中城市文本框自动建议最初由用户的地理位置填充。过去,在不知道省/州/国家/地区的情况下自动提示城市名称的成本似乎非常高,但要求用户向后输入地址是没有意义的,因为我们不会以这种方式考虑地址信息. 另一方面,不自动建议城市名称意味着我们最终会得到来自世界各地拼写错误的城市的各种奇怪而精彩的条目。

我想知道是否有一项服务可以让我查询,它不仅会根据用户在文本框中输入的内容,而且会根据用户所在的国家和政治边界自动响应最合适的城市名称?

例如,如果我在加拿大 [as I am] 并且输入“Mi”,那么我将看到加拿大境内所有以“Mi”开头的城市,直到确定我输入的信息不是加拿大的在这一点上,它会根据我们的使用模式使用下一个最有可能配置的国家 - 即接下来会检查美国,然后是墨西哥,然后是其他不太可能的目的地。如果我有数据库,我可以自己编写所有这些,但我不知道在哪里可以找到一个,而且我怀疑它的可扩展性不如在网络上查询预先存在的服务。

4

1 回答 1

1

看起来 MaxMind 提供了一个可以以 CSV 格式下载的免费数据库:

如果您愿意,有一个在线演示可以对其进行一些测试,但无法通过 Web 服务进行查询。

IPInfoDB 也有他们的数据库可供下载——他们有一个 XML API,但它只支持查找特定 IP 的城市/国家。您正在尝试做一些比这更广泛的事情,寻找特定国家/地区的每个城市,并根据 IP 选择国家/地区。我不希望有一个网络服务,这是一个非常具体的要求。

编辑添加:您可以使用 IPInfoDB API 来查找国家,然后从本地国家/城市数据库生成自动完成建议。这样就不需要在本地完成所有 IP 地理定位。您可以在多个地方获取特定国家/地区的城市列表。例如,这里有一些由国家地理空间情报局维护的综合列表

于 2010-03-03T19:20:02.857 回答