我正在寻找改变邮政编码的解决方案,例如DD3 7BN,但不使用地理位置。我找到了一个使用url http://maps.googleapis.com/maps/api/geocode/json?address=DD37bn的解决方案。 一个人提供了另一个解决方案,但它不适合我。
但它显示错误GRPS失败。什么是我的问题的最佳解决方案?
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getAddressByPostalCode("");
}
public void getAddressByPostalCode(String val_pcode) {
Geocoder geocoder = new Geocoder(this.getApplicationContext(), Locale.getDefault());
try {
List<Address> addresses1 = geocoder.getFromLocationName (val_pcode, 1);
Address obj1 = addresses1.get(0);
List<Address> addresses = geocoder.getFromLocation(obj1.getLatitude(), obj1.getLongitude(), 1);
Address obj = addresses.get(0);
/*TextView street = (TextView)findViewById(R.id.editText1);
TextView pcode = (TextView)findViewById(R.id.editText2);
TextView blk = (TextView)findViewById(R.id.editText3);
TextView build = (TextView)findViewById(R.id.editText4);
street.setText(obj.getThoroughfare());
pcode.setText(obj.getPostalCode());
blk.setText(obj.getSubThoroughfare());
build.setText(obj.getPremises());*/
} catch (IOException e) {
Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
}
}
}
答案 0 :(得分:0)
请注意,英国邮政编码don't always relate to single street, HD7 5UZ涵盖7,因此谷歌API不会返回&#34;路线&#34;元素 - http://maps.googleapis.com/maps/api/geocode/json?address=HD75UZ
我不认为有任何开放数据集可以提供邮政编码和街道之间的链接,但有一些数据集包含streets或postcodes的完整列表以及其他地理数据
英国的另一个解决方案是使用查看皇家邮政PAF数据集的API,这将在邮政编码与其相关的街道之间建立联系。这将带来成本,但通常如果您只使用街道名称,而不是前提级别数据,则成本非常低。
一个例子是来自Allies Computing(我工作的人)的"street" endpoint,它将返回一系列街道。您可以让用户选择正确的一个,或者如果只有一个,则自动选择它们。
大多数其他PAF经销商也提供街道级搜索,可以通过Powered by PAF website找到它们。