从LatLng对象的地址删除国家/地区

时间:2018-05-01 08:02:04

标签: java android

我使用了LatLng对象,我的地址中不需要国家/地区部分。

这是我的函数返回myLatLng:

Expected mock function to have been called with:
  ArrayContaining [501, 556, 599, 606, 622, 1783, 1842] as argument 2, but it was called with [501, 556, 599, 606, 622, 1783, 1842].

而不是我在做:

   public static Address getAdrressFromLatLng(Context context, LatLng latLng){
    Geocoder geocoder;
    List<Address> addresses = null;
    geocoder = new Geocoder(context, Locale.getDefault());
    try{
        addresses = geocoder.getFromLocation(latLng.latitude, latLng.longitude, 1);
        return addresses.get(0);
    }catch (IOException e){
        Log.e("LatLng", "geoLocate: IOException: " + e.getMessage() );
    }catch(java.lang.IndexOutOfBoundsException exception) {
        Log.e("LatLng", "geoLocate: bad Latlang: ");
    }
    return null;
}

并打印:

 Address jobAdress = LatLng.getAdrressFromLatLng(this, myLatLng)

但结果是在国家/地区,我想以优雅的方式删除它。

可能?

1 个答案:

答案 0 :(得分:0)

可能很难以一致的方式删除国家/地区,因为地址字符串的确切形式可能会因地址而异。相反,您可以尝试使用其他getter方法逐个构建地址:

Address jobAddress = LatLng.getAdrressFromLatLng(this, myLatLng);
StringBuilder address = new StringBuilder("");

address.append(jobAddress.getThoroughfare()).append(", ");  // 740 Park Avenue
address.append(jobAddress.getLocality()).append(", ");      // New York
address.append(jobAddress.getPostalCode());                 // 10021

这可能会输出以下内容:

740 Park Avenue, New York, 10021

您可以查看documentation以获取更多信息。