如何使用地图 API 从邮​​政编码获取街道名称?

How to get street name from postcode using maps API?

我正在寻找更改 post 代码的解决方案,例如 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();
        }
    }
}

请注意英国邮政编码 don't always relate to single street, HD7 5UZ covers 7 and as a result google API doesn't return the "route" element - http://maps.googleapis.com/maps/api/geocode/json?address=HD75UZ

我认为没有任何开放数据集提供邮政编码和街道之间的 link,但有些数据集具有 streets or postcodes 的完整列表以及其他地理数据。

英国的另一个解决方案是使用 API 查看皇家邮政 PAF 数据集,这将在邮政编码和它们相关的街道之间有 linkage。这将带来成本,但通常如果您只追求街道名称,而不是前提级别数据,则成本非常低。

一个例子是来自 Allies Computing(我为之工作)的 "street" endpoint,它将 return 一组街道。您可以让用户 select 找到正确的那个,或者如果只有一个,则为他们自动 select 它。

大多数其他 PAF 经销商也提供街头搜索,可以通过 Powered by PAF website.

找到它们