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 :
Die dazugehörige ItemizedOverlay Klasse ist hier:
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:
MfG.
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);
}
}
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 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: