【问题标题】:Difficulty in plotting current location(longitude and latitude) of user on google maps在谷歌地图上绘制用户当前位置(经度和纬度)的困难
【发布时间】:2011-10-26 10:15:03
【问题描述】:

我使用本教程 http://marakana.com/forums/android/examples/311.html 编写了一个代码,除了绘图部分外它工作正常。它显示经度和纬度,但没有在谷歌地图上显示它们。谁能告诉我这段代码中的错误不允许绘图地图上的坐标。这是我的代码:

http://pastebin.com/QbvfQzvG

【问题讨论】:

  • 你的意思是你想要一个记号笔什么的?当前代码只会悬停到该点
  • 否,代码未显示地址,因此未在谷歌地图上显示该地址。
  • 显示的纬度、经度是多少?另外,这是否显示在日志中:LocateMe", "Could not get Geocoder data"
  • lat 和 lon 是我使用 geo fix 给出的测试坐标。它们显示正确,但对应的地址没有显示。
  • 也许那个位置没有地址?您是否看到:““无法获取地理编码器数据”?您可以尝试使用其他位置吗?

标签: android android-widget android-manifest


【解决方案1】:

尝试使用 MapController.setCenter() 而不是 animateTo()

pointToShow= new GeoPoint(iLat,iLong);
MapController control=mapView.getController();
control.setCenter(pointToShow);

这对我来说很好......

【讨论】:

  • 您有有效的互联网连接吗?你的地图上显示了什么 - 你能看到地图本身,还是只是空白?
  • 我通过在 API 7 上运行应用程序解决了该地址问题,但没有显示地图。您能帮我解决这个问题吗?是的,我有很好的互联网连接。
  • hmmm...您是在手机上还是在模拟器中启动您的应用程序&
  • 我正在模拟器中启动我的应用程序 (Google api 7)。
  • 您的清单中是否有互联网权限?我刚刚在模拟器中测试了mapView,一切都很好。
【解决方案2】:
    try 
    {
     List<Address> addresses = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 10); //<10>
     for (Address address : addresses) {
          this.locationText.append("\n" + address.getAddressLine(0));
    }

   .... 

  } catch (IOException e) {
    Log.e("LocateMe", "Could not get Geocoder data", e);
  }

由于抛出异常,因此调用了“无法获取地理编码器数据”,

  • 这可能是由于缺少 INTERNET 权限
  • Emulator 2.2 API 8 中的错误:http://code.google.com/p/android/issues/detail?id=8816

    java.io.IOException: 服务不可用 在 android.location.Geocoder.getFromLocation(Geocoder.java:117)

  • addresses 可能是 null 所以抛出一个 NPE

【讨论】:

  • API 8 中存在错误,但是当我在 API 7 上运行它时,显示了地址但没有显示谷歌地图。只有谷歌写在白色背景上,为什么会这样?
  • 最好用真机,模拟器有这样的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-02
  • 2013-10-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-31
  • 1970-01-01
  • 2016-01-08
相关资源
最近更新 更多