在我的应用中,我必须输入一个用户地址(美国)。用户需要输入一个有效的地址。我该如何实现?有没有可以帮助我了解州,城市和街道名称的图书馆?如果可能,我想使用自动输入。我读过GeoCoding,但我认为这不会对我有帮助,因为用户未从当前位置输入地址。
这是我使用Google API查找位置的方法。也许会对您有帮助:
Geocoder geoCoder = new Geocoder(context, Locale.getDefault());
try {
List<Address> addresses =
geoCoder.getFromLocationName(travel.getAddress() + "," +
travel.getCity() + "," + travel.getState() + "," + travel.getCountry(), 3);
if (addresses.size() > 0) {
point = new GeoPoint(
(int) (addresses.get(0).getLatitude() * 1E6),
(int) (addresses.get(0).getLongitude() * 1E6));
travel.setLatitude(String.valueOf(point.getLatitudeE6()));
travel.setLatitude(String.valueOf(point.getLongitudeE6()));
long res = travel.update(context, null);
if (res < 1){
result = false;
}
}
} catch (IOException e) {
e.printStackTrace();
result = false;
}
为什么不验证区号?这样做可以节省您的时间。
有多种方法可以清除地址输入并将其标准化为所需的格式。但是,验证地址以确保地址真实和正确的唯一真实方法是使用地址验证服务。
标准化地址就是要确保外观美观,例如格式化和标准化电话号码或电子邮件地址。但是仅仅拥有看起来不错的数据是不够的。您需要是良好的数据。例如,如果用户提供可能是良好的信用卡,您会接受订单吗?还是您想要一张is好的信用卡?地址也一样。如果您要收集地址,那一定很高兴知道它是真实的,可交付的并且可以用于您的预期目的。否则,它只是垃圾数据-垃圾进,垃圾出。
对于您而言,幸运的是,由于用户使用的是基于Android的设备,因此他们很可能具有Internet连接,这使您可以查询第三者地址验证服务。有许多提供街道地址验证的服务。我是一个叫做SmartyStreets的创始人。我们的US Street Address API可能正是您想要的。并且,根据您的数量和业务,它也可能完全免费。如果没有,没什么大不了的,您还可以使用其他服务。