map overlay sits in Map_form which extends mapactivity. I tried to
pass in the sensor value to overlay at the method below:

 private final SensorListener mListener = new SensorListener()
            {
                public void onSensorChanged(int sensor, float[] values)
                {
                    if (Config.LOGD) {
                        Log.d("", "sensorChanged (" + values[0] + ", " +
values[1] + ", " + values[2] + ")");
                    }
                    overlay.setValue(values[0]);
                }
                public void onAccuracyChanged(int sensor, int accuracy){}
            };

 But it crushes.

Below is my code for Map_Form:


import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.hardware.SensorListener;
import android.hardware.SensorManager;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Config;
import android.util.Log;
import android.view.KeyEvent;
import android.widget.Toast;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;


public class Map_Form3 extends MapActivity {
        private MapView map=null;
        private Main_Overlay overlay = null;
        private AEDMapOverlay me=null;
        private double loV = 0, laV = 0, alV =0;
        private Address add = null;
        GeoPoint currentLocation = null;
        LocationManager locationManager;
        private SensorManager mSensorManager;


        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
        mSensorManager =
(SensorManager)this.getSystemService(Context.SENSOR_SERVICE);
                locationManager = (LocationManager)
this.getSystemService(Context.LOCATION_SERVICE);
                LocationListener locationListener = new LocationListener() {
                        @Override
                    public void onLocationChanged(Location location)
                        {
                                Canvas canvas = new Canvas();
                                Log.v("INFO", "onLocationchanged");
                                laV= location.getLatitude();
                                loV= location.getLongitude();
                                alV= location.getAltitude();
                                me.drawMyLocation(canvas,map, location, new 
GeoPoint((int)
(location.getLatitude()*1e6),(int)(location.getLongitude()*1e6))        , 1);

                                //reverse geolocation
                                Geocoder geocoder = new 
Geocoder(getApplicationContext());
                                try {
                                                List<Address> addresses = 
geocoder.getFromLocation(laV, loV, 1);
                                                add = addresses.get(0);
                                        } catch (IOException e) {
                                                // TODO Auto-generated catch 
block
                                                e.printStackTrace();
                                        }
                    }
                                public void onStatusChanged(String provider, 
int status, Bundle
extras) {}
                    public void onProviderEnabled(String provider) {}
                    public void onProviderDisabled(String provider) {}

                  };
        
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,
0, 0, locationListener);

                setContentView(R.layout.map_form3);
                map=(MapView)findViewById(R.id.map);
                map.getController().setZoom(17);
                map.setBuiltInZoomControls(true);
                map.setHapticFeedbackEnabled(true);
                map.setSatellite(false);
//              Drawable marker=getResources().getDrawable(R.drawable.marker);
//              marker.setBounds(0, 0,
marker.getIntrinsicWidth(),marker.getIntrinsicHeight());
//              map.getOverlays().add(new SitesOverlay(marker));
                me=new AEDMapOverlay(this, map);
                overlay = new Main_Overlay();
                map.getOverlays().add(overlay);
                map.getOverlays().add(me);





        }

         private final SensorListener mListener = new SensorListener()
            {
                public void onSensorChanged(int sensor, float[] values)
                {
                    if (Config.LOGD) {
                        Log.d("", "sensorChanged (" + values[0] + ", " +
values[1] + ", " + values[2] + ")");
                    }
                    overlay.setValue(values[0]);
                }
                public void onAccuracyChanged(int sensor, int accuracy){}
            };

        @Override
        public void onResume() {
                super.onResume();
                me.enableCompass();
                me.enableMyLocation();
 
mSensorManager.registerListener(mListener,SensorManager.SENSOR_ORIENTATION,SensorManager.SENSOR_DELAY_GAME);

        }

   @Override
    protected void onStop()
    {
//        if (Config.LOGD) Log.d(TAG, "onStop");
        mSensorManager.unregisterListener(mListener);
        super.onStop();
    }

        @Override
        public void onPause() {
                super.onPause();
                me.disableCompass();
        }

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

        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
                if (keyCode == KeyEvent.KEYCODE_S) {
//                      map.setSatellite(!map.isSatellite());
                        return(true);
                }
                else if (keyCode == KeyEvent.KEYCODE_Z) {
                        map.displayZoomControls(true);
                        return(true);
                }

                return(super.onKeyDown(keyCode, event));
        }

        private GeoPoint getPoint(double lat, double lon) {
                return(new GeoPoint((int)(lat*1000000.0),
                                                                                
                        (int)(lon*1000000.0)));
        }

        private class SitesOverlay extends ItemizedOverlay<OverlayItem> {
                private List<OverlayItem> items=new ArrayList<OverlayItem>();
                private Drawable marker=null;

                public SitesOverlay(Drawable marker) {
                        super(marker);
                        this.marker=marker;

                        items.add(new OverlayItem(getPoint(40.748963847316034,
                                                                                
                                                                                
        -73.96807193756104),
                                                                                
                                                "UN", "United Nations"));
                        items.add(new OverlayItem(getPoint(40.76866299974387,
                                                                                
                                                                                
        -73.98268461227417),
                                                                                
                                                "Lincoln Center",
                                                                                
                                                "Home of Jazz at Lincoln 
Center"));
                        items.add(new OverlayItem(getPoint(40.765136435316755,
                                                                                
                                                                                
        -73.97989511489868),
                                                                                
                                                "Carnegie Hall",
                                                        "Where you go with 
practice, practice, practice"));
                        items.add(new OverlayItem(getPoint(40.70686417491799,
                                                                                
                                                                                
        -74.01572942733765),
                                                                                
                                                "The Downtown Club",
                                                                                
                "Original home of the Heisman Trophy"));

                        populate();
                }

                @Override
                protected OverlayItem createItem(int i) {
                        return(items.get(i));
                }

//              @Override
//              public void draw(Canvas canvas, MapView mapView,
//                                                                              
        boolean shadow) {
//                      super.draw(canvas, mapView, shadow);
//
//                      boundCenterBottom(marker);
//              }

                @Override
                protected boolean onTap(int i) {
                        Toast.makeText(Map_Form3.this,
                                                                                
        items.get(i).getSnippet(),
                                                                                
        Toast.LENGTH_SHORT).show();

                        return(true);
                }

                @Override
                public int size() {
                        return(items.size());
                }
        }
}
On Sep 14, 11:05 pm, TreKing <treking...@gmail.com> wrote:
> On Tue, Sep 14, 2010 at 4:27 AM, dadada <ytbr...@gmail.com> wrote:
> > since map overlay is not activity
>
> What is your map overlay contained in?
>
> --------------------------------------------------------------------------- 
> ----------------------
> TreKing <http://sites.google.com/site/rezmobileapps/treking> - Chicago
> transit tracking app for Android-powered devices

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to