2015-10-19 91 views
0

我正在Android的GoogleMap上工作。“如何从LatLong获取实际的文本值(地名)?”

到目前为止,我已经获得了当前位置并在其上显示了标记。

我从当前位置获得LatLong值。

我可以使用下面的代码获取城市名称:

  Geocoder gcd = new Geocoder(MainActivity.this, Locale.getDefault()); 
     List<Address> addresses = null; 
     try { 
      addresses = gcd.getFromLocation(mLocation.getLatitude(), mLocation.getLongitude(), 1); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     if (addresses.size() > 0) 
      System.out.println(addresses.get(0).getLocality()); 
      Toast.makeText(MainActivity.this,""+addresses.get(0).getLocality(),Toast.LENGTH_LONG).show(); 
    } 

但是,不能得到atual区域名称即Bodakdev字符拉斯塔,艾哈迈达巴德。

现在,我的问题是:如何从LatLong获取实际文本值(地点名称)?

回答

1

您可以通过您的谷歌地图中的Geocoder对象获取此内容。方法getFromLocation(double, double, int)做的工作。

Geocoder geocoder; 
List<Address> addresses; 
geocoder = new Geocoder(this, Locale.getDefault()); 

addresses = geocoder.getFromLocation(latitude, longitude, 1); // 1 represent max location result to returned, by documents it recommended 1 to 5 

String address = addresses.get(0).getAddressLine(0); // If any additional  address line present than only, check with max available address lines by getMaxAddressLineIndex() 
String city = addresses.get(0).getLocality(); 
String state = addresses.get(0).getAdminArea(); 
String country = addresses.get(0).getCountryName(); 
String postalCode = addresses.get(0).getPostalCode(); 
String knownName = addresses.get(0).getFeatureName(); 
+0

雅我可以用上面的代码的城市名称,但如果我想要做如上的修改建议是什么? –

+0

请参阅我编辑的答案。这会给你所有的细节。如果信息不适用于该输入集,则为NULL。 @JaiminModi –

0

使用此,

Geocoder geocoder = new Geocoder(this, Locale.getDefault()); 
List<Address> addresses = geocoder.getFromLocation(MyLat, MyLong, 1); 
String cityName = addresses.get(0).getAddressLine(0); 
String stateName = addresses.get(0).getAddressLine(1); 
String countryName = addresses.get(0).getAddressLine(2); 
String address = addresses.get(0).getAddressLine(0); 
+0

感谢它的正常工作 –

相关问题