【问题标题】:simple geocoding example简单的地理编码示例
【发布时间】:2011-02-28 15:09:23
【问题描述】:

我正在实现一个简单的地理编码示例,其中用户输入地址并获取其纬度和经度。

                addr = Area_edtxt.getText().toString();
                try {
                    list_addr = gc.getFromLocationName(addr, 1);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    Log.d("Location lookup failed", e.getMessage());
                }
                if (list_addr != null && list_addr.size() > 0 ){
                     latitude = list_addr.get(0).getLatitude();
                     longitude = list_addr.get(0).getLongitude();
                     latitude_edtxt.setText(latitude.toString());
                     longitude_edtxt.setText(longitude.toString());
                }else {
                    latitude_edtxt.setText("Address not found");
                }

但显示错误:无法打开堆栈跟踪文件“/data/anr/traces.txt”:权限被拒绝。

【问题讨论】:

  • 这是一个崩溃。我认为您的日志中某处存在异常。
  • 显示未捕获异常警告和空指针异常错误
  • 您是否在模拟器中运行您的应用程序?还是您安装了自定义 ROM?
  • 好的,您指定了 sdcard 吗?因为如果 gui 线程上的某些操作需要很长时间,/data/anr/Traces.txt 会被写入 sdcard。 ANR 代表应用程序无响应。 developer.android.com/guide/practices/design/…
  • 还没有......但是让我告诉你 1 反向地理编码在同一个模拟器中效果很好。

标签: android geocoding


【解决方案1】:

为了快速尝试,您可以使用 AsyncTask http://developer.android.com/reference/android/os/AsyncTask.html

private class GeocodeTask extends AsyncTask<String, Integer, List> {
 protected Long doInBackground(String... address) {
  try {
         return gc.getFromLocationName(address[0], 1)
      } catch (IOException e) {
                // TODO Auto-generated catch block
                Log.d("Location lookup failed", e.getMessage());
    }
 }

 protected void onPostExecute(List result) {
     if (list_addr != null && list_addr.size() > 0 ){
         latitude = list_addr.get(0).getLatitude();
         longitude = list_addr.get(0).getLongitude();
         latitude_edtxt.setText(latitude.toString());
         longitude_edtxt.setText(longitude.toString());
     }else {
         latitude_edtxt.setText("Address not found");
     }
 }

}

new GeocodeTask().execute(addr);

【讨论】:

  • 我有错误:转发地理编码:Glocation 中没有功能。无论我输入什么地址,都会出现同样的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多