从Android中的地理编码器中提取城市和州

时间:2014-11-10 21:38:55

标签: android geocoding reverse-geocoding

我试图仅从Android中的地理编码器中提取城市和州。我已经到了很远的地方,它提取了城市的美好,但我所遇到的问题是它沿着它打印拉链。

我正在寻找"城市,州和#34;而现在的最终输出是" City,State Zip"

有什么想法吗?

Geocoder geoCoder = new Geocoder(getActivity(), Locale.getDefault());
                List<Address> addresses;
                try {
                    addresses = geoCoder.getFromLocation(mLatitude, mLongitude, 10);
                     int i=1;
                     for(Address addObj:addresses)
                     {
                         // Looping once
                         if(i==1)
                         {

                             String add_line1_extract;

                             add_line1_extract=addObj.getAddressLine(1);

                             String string = add_line1_extract;
                             String[] parts = string.split(",");

                             //Setting city
                             mCity = parts[0]; 

                             //setting state
                             mState = parts[1]; 

                             // Final Output
                             String cityAndState = mCity + ", " + mState;
                             i++;

                         }
                     }
                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }

1 个答案:

答案 0 :(得分:0)

您可以通过从Address类调用getAdminArea()方法来获取州名。但是,它可能不适用于所有国家。此外,您可以致电getLocality()来检索城市名称。

因此,对于您的代码,您可以执行以下操作:

String cityName = addObject.getLocality();    
String stateName = addObject.getAdminArea();
String cityAndState = cityName + ", " + stateName;    

如果您想要州名的缩写,可以在String[] parts中进一步拆分。您可以执行以下操作:

String[] moreSplit = parts[1].split(" ");
String mStateAbbr = moreSplit[0];
String mCityAndStateAbbr = mCity + mStateAbbr;