【问题标题】:Android geopoint from location/locality来自位置/位置的 Android 地理点
【发布时间】:2012-04-27 09:51:25
【问题描述】:

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

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

【问题讨论】:

    标签: android google-maps geolocation geocoding


    【解决方案1】:

    试试这个,你最好在单独的线程而不是 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;
    }
    

    【讨论】:

      【解决方案2】:

      使用以下网址通过反向地理编码从地址获取经纬度::

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2016-06-29
          • 1970-01-01
          • 1970-01-01
          • 2011-08-27
          • 1970-01-01
          • 1970-01-01
          • 2015-01-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多