我使用了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)
但结果是在国家/地区,我想以优雅的方式删除它。
可能?
答案 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以获取更多信息。