2012-04-16 87 views
4

我已经看到了很多从地理编码器获取位置名称的示例,然后通过getFromLocation()获取地址,但是如何通过名称获取位置的geoPoint。用户输入一个城市名称,然后将它们转换为地理点并在地图上显示。在Android或Google API中有没有办法。来自位置/地点的Android地点

我不是指当前的位置,但任何位置通过给它的名字。基本上我希望它允许用户获得远程城市的天气更新。我可以通过获取当前位置来获取当前位置。

回答

8

试试这个,你最好在运行它单独线程而不是UI线程。你可以通过这种方法得到AddressGeoPoint

public static Address searchLocationByName(Context context, String locationName){ 
    Geocoder geoCoder = new Geocoder(context, Locale.getDefault()); 
    GeoPoint gp = null; 
    Address ad = null; 
    try { 
     List<Address> addresses = geoCoder.getFromLocationName(locationName, 1); 
     for(Address address : addresses){ 
      gp = new GeoPoint((int)(address.getLatitude() * 1E6), (int)(address.getLongitude() * 1E6)); 
      address.getAddressLine(1); 
      ad = address; 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return ad; 
} 
4

使用以下网址获得lat和长从地址,通过反向地理编码::

http://maps.googleapis.com/maps/api/geocode/json?address=hyderabad&sensor=false 

http://maps.googleapis.com/maps/api/geocode/xml?address=hyderabad&sensor=true 
-1

从地址获得Lat和Long坐标是地理编码而不是反向地理编码。 简单的获取地址使用地理编码进行转换,一旦你在地图上获得坐标显示位置。