【问题标题】:Get location name from lat and long without internet/wifi在没有互联网/wifi的情况下从纬度和经度获取位置名称
【发布时间】:2015-11-19 15:43:30
【问题描述】:

我正在开发一个应用程序,该应用程序需要从获得的 GPS 坐标中获取城市和街道名称,我已经尝试过地理编码器,但它只在互联网上工作。但即使我没有互联网连接,我也想获得位置名称或城市名称。我无法解决问题 下面是我正在使用的代码

if (gps.canGetLocation()) {
                latitude = gps.getLatitude();
                longitude = gps.getLongitude();
                Toast.makeText(
                        getApplicationContext(),
                        "Lat = " + String.valueOf(latitude) + "\nLong : "
                                + String.valueOf(longitude),
                        Toast.LENGTH_LONG).show();

                Geocoder geocoder = new Geocoder(MainActivity.this, Locale
                        .getDefault());
                try {
                    addresses = geocoder.getFromLocation(latitude,
                            longitude, 1);
                } catch (IOException e) { // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                if (addresses.size() > 0) {
                    String cityName = addresses.get(0).getAddressLine(0);
                    String stateName = addresses.get(0).getAddressLine(1);
                    String countryName = addresses.get(0).getAddressLine(2);
                    Toast.makeText(
                            getApplicationContext(),
                            "Area = " + cityName + "\nCity = " + stateName
                                    + "\nCountry Name = " + countryName,
                            Toast.LENGTH_LONG).show();
                }

                //
                if (latitude > 0 && longitude > 0) {
                    String[] a = { load("C1.txt"), load("C2.txt"),
                            load("C2.txt") };

                    for (int j = 0; j < a.length; j++) {
                        if (a[j].length() > 10) {
                            SmsManager sms = SmsManager.getDefault();
                            /*
                             * sms.sendTextMessage(a[j], null, "Area = " +
                             * cityName + "\nCity = " + stateName +
                             * "\nCountry Name = " + countryName, null,
                             * null);
                             */
                            sms.sendTextMessage(
                                    a[j],
                                    null,
                                    "Lat = " + String.valueOf(latitude)
                                            + "\nLong : "
                                            + String.valueOf(longitude),
                                    null, null);
                        }
                    }

                } else {
                    Toast.makeText(getApplicationContext(),
                            "Please enter phone numbers from settings",
                            Toast.LENGTH_LONG).show();
                }

【问题讨论】:

  • 感谢链接,但我需要位置名称。它返回我也可以从 gps 获得的 lat n longs
  • 我需要当前城市街道地址的名称等 .. 比如地理编码器
  • 在没有互联网的情况下,您希望它如何工作。你打算用你的应用程序为全世界提供一个巨大的静态数据库吗?什么样的分辨率是可以接受的?
  • 是的,这就是问题所在......所以它不能离线完成......谢谢:)

标签: android gps geolocation location latitude-longitude


【解决方案1】:

这在没有互联网的情况下无法工作,因为地理编码器(或您想使用的任何东西)必须从某种数据源中检索信息。只要您不想在应用程序中存储整个数据库(由于大多数智能手机上的存储空间很小,这不可能),您就必须从服务器检索数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    相关资源
    最近更新 更多