反向地理编码和附加地址详细信息

时间:2012-11-02 12:07:55

标签: android latitude-longitude geocode street-address

我有一个应用程序反向地理编码纬度和经度为可读地址。以下是代码示例:

    protected List<Address> doInBackground(Double... params) {
            try {

                List<Address> addresses = geoCoder.getFromLocation(mylat,
                        mylong, 1);
                StringBuilder sBuilder = new StringBuilder();
                if (addresses.size() > 0) {
                    Address address = addresses.get(0);

                    for (int i = 0; i < address.getMaxAddressLineIndex(); i++) {
                        /**
                         * Returns a line of the address numbered by the
                         * given index (starting at 0), or null if no such
                         * line is present.
                         */
                        sBuilder.append(address.getAddressLine(i)).append(
                                "\n");
                        ////////////
                        ////////////
                        // sBuilder.append(address.getLocality()).append("\n");
                        //sBuilder.append(address.getPostalCode()).append("\n");        
                    }// end for
                    addressString = sBuilder.toString();

                }// end if
                return geoCoder.getFromLocation(params[0], params[1], 1);
            } catch (IOException e) {
                e.printStackTrace();
                return null;
            }// end catch
        }// end doInBackground method

我想修改它,所以如果PostalCode为null,则不打印,如果收到值,则显示其余的其他细节。问题是我住在一个不使用邮政编码的国家,这就是为什么这部分代码目前被注释掉了。我希望该应用程序显示邮政编码,如果您所在的国家/地区使用它们(大部分都可以!),如果您在我的国家/地区或不使用邮政编码的类似邮件,请忽略不存在邮政编码。< / p>

任何人都可以推荐我需要进行哪些更改才能允许此操作?我相信我需要添加逻辑来处理字符串的追加:

sBuilder.append(address.getPostalCode()).append("\n");

感谢。 :)

1 个答案:

答案 0 :(得分:1)

我认为你应该在那里添加一个条件。

if (address.getPostalCode() != null)
{
    sBuilder.append(address.getPostalCode()).append("\n");
}
else
{
    // do nothing.
}

或者这不是你想要的东西?