我们的应用程序的邮政地址条目UI是这样的两行Address1 / Address2字段(从Amazon.com借用屏幕截图)。
但真正的用户'数据输入总是很乱。有些用户会忽略我们的指示,有时会将街道地址放在Address1中,有时会将其放在Address2中。其他用户将从外部源(如现有邮件列表)导入地址列表,这也可能导致某些情况下街道地址在Address1或Address2中无法预测。
当需要对地址进行地理编码时,如果我们不确定街道地址是在Address1还是Address2中,那么哪种算法可以最大限度地提高成功地理编码的机会?一种天真的方法可能是尝试Address1,如果失败则尝试Address2。但我确定我不是第一个尝试对现实世界进行杂乱数据录入进行地理编码的人......这个问题通常是如何解决的?
我们正在使用Google Maps Geocoding API,如果重要的话。
答案 0 :(得分:0)
我相信Google建议使用自动完成小部件。
查看最佳实践文档:
https://developers.google.com/maps/documentation/geocoding/best-practices
它说
实时响应用户输入(包括用户输入的含糊不清,不完整,格式错误或拼写错误的地址)
使用Places API地方自动填充服务获取地点ID,然后使用地理编码API将地点ID地理编码为latlng。
Google数据库中通常没有公寓,套房,单位等。因此,您可以将自动完成功能绑定到用户选择地址的第一个输入,您可以获得相应的地点ID,用户可以在第二个字段中输入与Google地理编码API无关的其他信息。
官方文档中有几个地方自动填充的例子。
https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete
https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform
https://developers.google.com/maps/documentation/javascript/examples/places-placeid-geocoder
我希望这有帮助!