2012-08-18 41 views
1

在下面的代码,当我使用位置控制开关位置时,地图的背景变为黑色。我怎样才能得到地图视图的显示?的Android导航地图通过

private class MyLocationListener implements LocationListener 
     { 
      public void onLocationChanged(Location loc) 
      { 
       if(loc!=null) 
       { 

        Geocoder geocoder = new Geocoder(getBaseContext(), Locale.getDefault()); 

        try 
        { 
         List<Address> addresses = geocoder.getFromLocation(loc.getLatitude()/1E6, loc.getLongitude()/1E6, 1); 
         String add = ""; 
         if (addresses.size() > 0) 
         { 
          for (int i =0;i<addresses.get(0).getMaxAddressLineIndex();i++) 
          { 
           add += addresses.get(0).getAddressLine(i) + "\n"; 
          } 
         } 
         Toast.makeText(getBaseContext(), add, Toast.LENGTH_SHORT).show(); 
        } 


        catch(IOException e) 
        { 
         e.printStackTrace(); 
        } 

       } 

        p = new GeoPoint((int)(loc.getLatitude() * 1E6), 
          (int)(loc.getLongitude() * 1E6)); 

        mc.animateTo(p); 
        mc.setZoom(18); 
       } 

      public void onProviderDisabled(String provider) 
      { 

      } 

      public void onProviderEnabled(String provider) 
      { 

      } 

      public void onStatusChanged(String provider, int status, Bundle extras) 
      { 

      } 

     } 
+0

所以,我怎么能得到的diplay地图视图回.... – Chandni 2012-08-18 08:40:47

回答

0

这里有一对夫妇的事情,可能会导致地图走黑色或整个屏幕变黑(即无反应),因为你没有提到的地图是否只变黑或屏幕变得没有反应我要去承担的屏幕变得没有反应:

1)您尚未初始化MapController MC。如果你还没有这样做的话。

2)这行代码看起来不正确:

List<Address> addresses = geocoder.getFromLocation(
          loc.getLatitude()/1E6, loc.getLongitude()/1E6, 1); 

为什么我怀疑这个代码是错误的,因为loc.getLatitude()将返回你的学位形式纬度的原因所以如果你的1E6划分它,你会得到一个非常小的数,我怀疑(类似18.9647不是你脑子里想什么,所以不要被划分1E6。

+0

的屏幕响应很好,但在地图变黑..!:( – Chandni 2012-08-19 10:10:13

+0

对于某些经度和纬度值地图视图工作正常不显示黑屏,那么我应该如何解决这个错误? – Chandni 2012-08-19 11:55:35

+0

这可能是因为在某些情况下,纬度和经度您使用的是无效 – 2012-08-19 14:34:35