来自位置/地点的Android locationoint

时间:2012-04-16 01:42:01

标签: android google-maps geolocation geocoding

我已经看过很多从Geocoder获取位置名称然后通过getFromLocation()获取地址的示例,但是如何通过名称获取geoPoint作为位置。用户输入城市名称,然后将其转换为地理位置并在地图上显示。在Android或谷歌API中有没有办法。

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

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:4)

使用以下网址通过反向地理编码::

从地址获取lat和long
http://maps.googleapis.com/maps/api/geocode/json?address=hyderabad&sensor=false

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

答案 2 :(得分:-1)

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