Eigenen Standort mit GoogleMaps anzeigen

  • 6 Antworten
  • Neuester Beitrag
Diskutiere Eigenen Standort mit GoogleMaps anzeigen im Android App Entwicklung im Bereich Betriebssysteme & Apps.
Z

zblack

Gast
Eine kleine Änderung.

Hallo Users,
seit Tagen kämpfe ich damit , dass mein eigener Standort auf der GoogleMap Karte nicht angezeigt wird (z.b als ein Pfeil, ein farbiges Punkt, wie auch immer).
Dafür habe ich ne Klasse erstellt :
Code:
public class HelloGoogleMaps extends MapActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        MapView mapView = (MapView) findViewById(R.id.mapView);
        mapView.setBuiltInZoomControls(true);
      
        final List<Overlay> mapOverlays = mapView.getOverlays();
        Drawable drawable = this.getResources().getDrawable(R.drawable.ic_launcher);
        final ITO itemizedoverlay = new ITO(drawable);

        final MapController controller = mapView.getController();
        
        LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
        
        LocationListener listener = new LocationListener() {
            
            
            @Override
            public void onLocationChanged(Location location) {
                // TODO Auto-generated method stub
                 
                 GeoPoint point = new GeoPoint((int) location.getLatitude() * (int)1E6, (int) location.getLongitude()* (int)1E6);
                 controller.setCenter(point);
                 OverlayItem overlayitem = new OverlayItem(point, "Hola, Mundo!", "I'm in Mexico City!");
                 itemizedoverlay.addOverlay(overlayitem);
                 mapOverlays.add(itemizedoverlay);
                    
            }
        };
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 6000, 10, listener);
    }
}
Die dazugehörige ItemizedOverlay Klasse ist hier:

Code:
public class ITO extends ItemizedOverlay {

    private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
    Context mContext;
    public ITO(Drawable defaultMarker) {
        super(boundCenter(defaultMarker));
        // TODO Auto-generated constructor stub
    }
    
    public ITO(Drawable defaultMarker, Context context) {
          super(defaultMarker);
          mContext = context;
        }
    /* (non-Javadoc)
     * @see com.google.android.maps.ItemizedOverlay#createItem(int)
     */
    @Override
    protected OverlayItem createItem(int arg0) {
        // TODO Auto-generated method stub
        return mOverlays.get(arg0);
    }

    public void addOverlay(OverlayItem overlay) {
        mOverlays.add(overlay);
        populate();
    }
    
    /* (non-Javadoc)
     * @see com.google.android.maps.ItemizedOverlay#size()
     */
    @Override
    public int size() {
        // TODO Auto-generated method stub
        return mOverlays.size();
    }
    
    @Override
    protected boolean onTap(int index) {
      OverlayItem item = mOverlays.get(index);
      AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
      dialog.setTitle(item.getTitle());
      dialog.setMessage(item.getSnippet());
      dialog.show();
      return true;
    }

}
Die MapKey von Google ist in der xml datei drin.
Die Sachen :
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-library android:name="com.google.android.maps"/>
sind auch in der AndroidManifest drin.

Bei der Ausführung am Handy, geht GPS an. Die Position wird gezeigt, nur die Stadt wo ich bin ist leider die falsche. Beim klicken auf das Icon wo ich mich befinde , stürzt die App ab. die Logcat ausgaben sind folgende:
Code:
11-20 21:09:09.934: I/MapActivity(23074): Handling network change notification:CONNECTED
11-20 21:09:09.944: E/MapActivity(23074): Couldn't get connection factory client
11-20 21:09:09.944: I/ActivityThread(23074): queueIdle
11-20 21:09:09.944: V/ActivityThread(23074): Reporting idle of ActivityRecord{4a4054d0 token=android.os.BinderProxy@4a405038 {t.m/t.m.HelloGoogleMaps}} finished=false
11-20 21:09:09.944: W/ActivityNative(23074): send ACTIVITY_IDLE_TRANSACTION
11-20 21:09:13.074: W/dalvikvm(23074): threadid=1: thread exiting with uncaught exception (group=0x400207d8)
11-20 21:09:13.084: E/AndroidRuntime(23074): FATAL EXCEPTION: main
11-20 21:09:13.084: E/AndroidRuntime(23074): java.lang.NullPointerException
11-20 21:09:13.084: E/AndroidRuntime(23074):     at com.android.internal.app.AlertController$AlertParams.<init>(AlertController.java:743)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at android.app.AlertDialog$Builder.<init>(AlertDialog.java:273)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at t.m.ITO.onTap(ITO.java:58)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at com.google.android.maps.ItemizedOverlay.onTap(ItemizedOverlay.java:453)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at com.google.android.maps.OverlayBundle.onTap(OverlayBundle.java:83)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at com.google.android.maps.MapView$1.onSingleTapUp(MapView.java:347)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at com.google.android.maps.GestureDetector.onTouchEvent(GestureDetector.java:533)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at com.google.android.maps.MapView.onTouchEvent(MapView.java:647)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at android.view.View.dispatchTouchEvent(View.java:3766)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:897)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1731)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1120)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at android.app.Activity.dispatchTouchEvent(Activity.java:2086)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1715)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1787)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at android.os.Looper.loop(Looper.java:123)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at android.app.ActivityThread.main(ActivityThread.java:4633)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at java.lang.reflect.Method.invokeNative(Native Method)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at java.lang.reflect.Method.invoke(Method.java:521)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
11-20 21:09:13.084: E/AndroidRuntime(23074):     at dalvik.system.NativeStart.main(Native Method)
MfG.
 
Zuletzt bearbeitet von einem Moderator:
Z

zblack

Gast
keine ideen ?
hmm. schade
 
N

Neeldarax

Fortgeschrittenes Mitglied
Hallo zblack,

nicht das wir keine Idee hätten, aber im Logcat steht doch alles was du brauchst.
Wo hast du Probleme das zu beheben? Was verstehst du hier nicht?

regards
 
Z

zblack

Gast
ok. NullPointer wurde beseitigt, aber warum zeigt er mir mein Standort ungenau an ?
Ich befinde mich laut der Karte im Nachbarhaus. :D
 
kleinerkathe

kleinerkathe

Experte
Wie weit ist das Nachbarhaus weg? GPS ist jetzt auch nicht soooo genau ;)
 
Z

zblack

Gast
ja so ca 50 meter vlt weniger bin ich von meinem tatsächlichem Standort entfernt
 
Zuletzt bearbeitet von einem Moderator:
N

Neeldarax

Fortgeschrittenes Mitglied
Ähnliche Themen - Eigenen Standort mit GoogleMaps anzeigen Antworten Datum
7
Ähnliche Themen
Standort bezogene Daten