【问题标题】:There is any way to get Location address using latitude and longitude offline(Without Internet) mode?有什么方法可以使用经纬度离线(无互联网)模式获取位置地址?
【发布时间】:2014-10-21 07:45:14
【问题描述】:
private String getCompleteAddressString(double LATITUDE, double LONGITUDE) 
    {
         String strAdd = "";
         Geocoder geocoder = new Geocoder(this, Locale.getDefault());
     try {
             List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 1);
             if (addresses != null) 
             {
                 Address returnedAddress = addresses.get(0);
                 StringBuilder strReturnedAddress = new StringBuilder("");

                 for (int i = 0; i < returnedAddress.getMaxAddressLineIndex(); i++) 
                 {
                     strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("\n");
                 }
                 strAdd = strReturnedAddress.toString();
                 Log.w("My Current loction address", "" + strReturnedAddress.toString());
                 Toast.makeText(getApplicationContext(), "Address :" +strAdd, Toast.LENGTH_LONG).show();
             } 
             else 
             {
                 Log.w("My Current loction address", "No Address returned!");
             }
         } catch (Exception e) {
             e.printStackTrace();
             Log.w("My Current loction address", "Canont get Address!");
         }
         return strAdd;
     }

这是我的代码,但它需要 Internet 连接。当我在没有 Internet 连接的情况下运行它时,它会引发异常服务器超时。

【问题讨论】:

    标签: android geolocation


    【解决方案1】:

    没有互联网,您无法离线获取纬度和经度。您可以通过网络、gps 或location.getLastKnownLocation(LocationManager.NETWORK_PROVIDER)(无需互联网)获取。

    看到这个https://stackoverflow.com/a/22085632/3864698。也许它可以帮助你。

    【讨论】:

    • 我已经使用网络提供商获得了纬度和经度,但我需要该纬度和经度位置地址..??
    • 使用地理编码器。您可以在那里获得街道地址、城市、地址所在的国家/地区等。 List
      addr = geocoder.getFromLocation(mLatitude, mLongitude, 1) 然后从 List 中的第一项获取 getMaxAddressLineIndex(), getLocality(), getCountryName()。
    【解决方案2】:

    由于我不能评论我的声誉,很抱歉没有提供真实的答案,我猜: 根据 Geocoder 的文档,您所描述的正是预期的行为: http://developer.android.com/reference/android/location/Geocoder.html#getFromLocation%28double,%20double,%20int%29

    如果你想以不同的方式处理这种情况,你不能明确地捕获那个 IO 异常吗?

    如果你真的想获得一个有效的地址,你只能在离线数据库中镜像相关的经纬度——我不推荐这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多