2012-02-21 3 views
0

Я пытаюсь обновить имя каждого пользователя расположения касаний на экране, т.е. местоположения, когда пользователь поднимает палец вверх код прослеживает широты и длинные позиции по пикселям и увольняет запрос геокодирования Моего код для деятельностиGeo кодирования ошибка

package scheduler.scheduler; 
import java.util.List; 
import com.google.android.maps.MapView.LayoutParams; 
import android.view.View; 
import android.widget.LinearLayout; 
import android.app.Activity; 
import android.os.Bundle; 
import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapView; 
import com.google.android.maps.GeoPoint; 
import com.google.android.maps.MapController; 
import com.google.android.maps.Overlay; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.Canvas; 
import android.graphics.Point; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.LinearLayout; 
import java.io.IOException; 
import android.view.MotionEvent; 
import android.location.Geocoder; 
import java.util.Locale; 
import android.widget.Toast; 
import android.location.Address; 
public class mapz extends MapActivity { 
    /** Called when the activity is first created. */ 
MapView mapView; 
MapController mc; 
GeoPoint p; 
class MapOverlay extends com.google.android.maps.Overlay 
{ 
    @Override 
    public boolean draw(Canvas canvas, MapView mapView, 
    boolean shadow, long when) 
    { 
     //super.draw(canvas, mapView, shadow);     

     //---translate the GeoPoint to screen pixels--- 
     //Point screenPts = new Point(); 
     //mapView.getProjection().toPixels(p, screenPts); 

     //---add the marker--- 
     //Bitmap bmp = BitmapFactory.decodeResource(
      //getResources(), R.drawable.pushpin);    
     //canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);   
     return true; 
    } 
    @Override 
    public boolean onTouchEvent(MotionEvent event, MapView mapView) 
    { 
     //---when user lifts his finger--- 
     if (event.getAction() == 1) {     
      GeoPoint p = mapView.getProjection().fromPixels(
       (int) event.getX(), 
       (int) event.getY()); 
      Geocoder geoCoder = new Geocoder(
        getBaseContext(), Locale.getDefault()); 
       try { 
        List<Address> addresses = geoCoder.getFromLocation(
         p.getLatitudeE6()/1E6, 
         p.getLongitudeE6()/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(), "hii", Toast.LENGTH_SHORT).show(); 
       } 
       catch (IOException e) {     
        e.printStackTrace(); 
       } 

       return true; 
     } 
      else     
       return false; 
    } 
} 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.maplayout); 
     mapView = (MapView) findViewById(R.id.mapView); 
     LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom); 
     View zoomView = mapView.getZoomControls(); 

     zoomLayout.addView(zoomView, 
      new LinearLayout.LayoutParams(
       LayoutParams.WRAP_CONTENT, 
       LayoutParams.WRAP_CONTENT)); 
     mapView.displayZoomControls(true); 
     mc = mapView.getController(); 
     String coordinates[] = {"18.116667", "83.416667"}; 
     double lat = Double.parseDouble(coordinates[0]); 
     double lng = Double.parseDouble(coordinates[1]); 

     p = new GeoPoint(
      (int) (lat * 1E6), 
      (int) (lng * 1E6)); 

     mc.animateTo(p); 

     //---Add a location marker--- 
     MapOverlay mapOverlay = new MapOverlay(); 
     List<Overlay> listOfOverlays = mapView.getOverlays(); 
     listOfOverlays.clear(); 
     listOfOverlays.add(mapOverlay); 
     mapView.invalidate(); 

    } 


    @Override 
    protected boolean isRouteDisplayed() { 
     return false; 
    } 
} 

активность загружается и карта загружается, но когда я нажимаю и отпустить мышь Планируемое действие, т.е. «адрес места должно отображаться» не работает, когда я проверить LogCat он показывает

enter image description here

Любой эксперт, пожалуйста, тр y, чтобы помочь мне, я должен быстро исправить свою работу над проектом!

+0

убедитесь манифестом разрешения собственно <использует-разрешение андроида: Name = "андроид .permission.ACCESS_FINE_LOCATION»/> \t <использование-разрешения андроид: имя = "android.permission.ACCESS_COARSE_LOCATION"/> \t <использует-разрешение андроид: имя = "android.permission.INTERNET"/> –

+0

также улучшить свой проект уровня к google api 2.2 или новее, чем этот проект –

+0

уже в google API 2.2 и я изменил манифест с помощью еще одна ошибка! –

ответ