我在寻找的建议来自于市/州/邮政编码/国家的多种组合用户解析输入。
一个常见的例子是什么谷歌地图一样。
输入的一些例子是:
- “市,省,国家”
- “城市,国家”
- “城市,邮编,国家”
- “市,州,邮政编码”
- “邮政编码”
什么是解析从用户这个输入一个有效的,正确的方法是什么?
如果您知道任何示例实现的,请分享:)
我在寻找的建议来自于市/州/邮政编码/国家的多种组合用户解析输入。
一个常见的例子是什么谷歌地图一样。
输入的一些例子是:
什么是解析从用户这个输入一个有效的,正确的方法是什么?
如果您知道任何示例实现的,请分享:)
第一步骤是拆散文成使用空格或逗号作为界定字符个人令牌。 对于可扩展性,可以再手中的每个令牌线程或服务器(如果使用地图,减速状结构)可以计算出每个令牌是什么。 例如,
一旦你的个人标记的结果,你可以胶水件返还在一起,以得到完整的地址。 在有问题的情况下,你可以促使他们真正的意思(如谷歌地图)的用户和信息添加到列表中了解到。
最简单的方法到支持添加到应用程序,假设你没有试图建立一个地图系统,是查询谷歌或雅虎,请他们解析日期为您服务。
我自己很着迷与谷歌如何处理。 我不记得看到其他地方类似的事情。
我相信,你尽量分开文字尝试不同的定界符输入字符串 - 空格,逗号,分号等等,那么你有几种组合。 对于每一个组合,你把每个单词和匹配它的国家,城市,城镇,邮政编码数据库。 然后定义如何评估每个组合的组匹配的结果有些度量。 这里也应该是交叉的规则一样,如果邮政编码不匹配良好,但国家,城市,城镇以及匹配和组合,是指一个有效的地址,然后将指标得到高分。
这是肯定很难,而不是一个晚上代码运动。 这还需要强大的计算资源 - 一个共享的主机将在短短10请求可能产生裂纹,但数据中心可以成为很好。
不知道是否有一个示例实现。 许多地理服务都是有偿的基础上。 一些复杂的如谷歌地图可能会花一大笔钱。
如我错了请纠正我。
我发现了一个简单的PHP实现
雅虎似乎有一个Web服务,它提供的功能(在某种程度上)
OpenStreetMap的似乎提供了在其主页上相同的搜索功能
假设你只有这四个领域的交易(市邮编州国家),也有除市各个领域的有限值,甚至说我想如果你有一个大的城市名单也是有限的。 因此,只要用逗号分割每个字段,然后核对每个字段列表。
假设我们正在谈论美国的地址 -
至于效率推移,它可能是有意义首先检查的“标准”格式屈指可数,像丹建议。