未在Google地图上显示位置

时间:2012-06-01 06:27:38

标签: android google-maps gps

我有一个地址,想在Google地图上显示该地址。地图显示但未指向该特定地址。这是我的代码。我收到此错误:couldn't get connection factory client

private MapController mc;
private MapView mapView;
GeoPoint p;
private MyOverlays mapOverlay;
mapView = (MapView) findViewById(R.id.myMapView);
mapView.setBuiltInZoomControls(true);
Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault());
  try {
    List<Address> addresses = geoCoder.getFromLocationName(loc, 5);
    if (addresses.size() > 0) {
      p = new GeoPoint(
        (int) (addresses.get(0).getLatitude() * 1E6),
        (int) (addresses.get(0).getLongitude() * 1E6));
      mc.animateTo(p);
      mapView.invalidate();
    }
  } catch (IOException e) {
    e.printStackTrace();
  }
  if (p != null) {
    Drawable drawable = this.getResources().getDrawable(R.drawable.ic_launcher);
    mapOverlay = new MyOverlays(drawable, this);
    OverlayItem overlayitem = new OverlayItem(p, "", "");
    mapOverlay.addOverlay(overlayitem);
    mapView.getOverlays().add(mapOverlay);
    this.mc = this.mapView.getController();
    this.mc.setCenter(this.p);
    this.mc.setZoom(16);
  }
  // LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
  // lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, 500.0f, (LocationListener) this);

2 个答案:

答案 0 :(得分:1)

我假设您在android Manifest 中提供了以下权限     <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

您需要在测试设备上激活GPS。如果您在模拟器上进行测试并且未激活,则在尝试使用 LocationManager 时会获得“null”。

Google地图活动应自动激活模拟器中的GPS设备,但如果您想直接使用位置管理器,则需要自行执行此操作。 Using GPS and setting location会帮助你。

答案 1 :(得分:0)

您应该在设备上测试您的代码而不是在模拟器上。

不知道为什么但是模拟器中存在一些问题。

在我的情况下,它在设备上正常工作但在模拟器上出现相同的错误。