C# Mono for Android / Camera zoomt nicht in die Map

  • 0 Antworten
  • Letztes Antwortdatum
G

GlureM

Neues Mitglied
0
Hei Leute ich habe das Problem dass mirbeim Code kein Error angezeigt wird jedoch sich die Camera nicht zu meiner Position auf der Map hineinzoomt.
Kann wer von euch was entdecken was ich vergessen habe oder falsch gemacht habe?

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.Locations;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Util;
using Android.Views;
using Android.Widget;
using Android.Gms.Maps;
using Android.Gms.Maps.Model;


namespace HKEDV_GPS
{
	public class MapFragment : Fragment, ILocationListener
	{
	 	//Für Location/Map
	    public Location currentLocation;
		public LocationManager locationManager;
	    public GoogleMap map;

		//Strings
		public string locationProvider;
		public string locationText;
		public LatLng locationPoint;

		//Camera 
		public CameraUpdate cameraUpdate;
		public CameraPosition cameraPosition;

		// Fragment wird definiert
		public static Fragment NewInstance(int position)
		{
			Fragment fragment = new MapFragment();
			Bundle args = new Bundle();
			return fragment;
		}
			
			
		// Layout wird angegeben
		public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
		{
			//Besten Provider suchen
			locationManager = (LocationManager)Activity.GetSystemService(Context.LocationService);
			var locationCriteria = new Criteria();
			locationCriteria.Accuracy = Accuracy.Fine;
			locationCriteria.PowerRequirement = Power.NoRequirement;
			IList<string> acceptableLocationProviders = locationManager.GetProviders(locationCriteria, true);


			//Wenn kein Provider vorhanden = string.Empty
			if (acceptableLocationProviders.Any ()) {
				locationProvider = acceptableLocationProviders.First ();
			} else {
				locationProvider = String.Empty;
				Toast.MakeText (Activity, "Keine Provider gefunden", ToastLength.Short).Show ();
			};


			return inflater.Inflate(Resource.Layout.map, container, false);
		}


		public void StartLocationUpdates(Location location)
		{
			var locationCriteria = new Criteria();
			locationCriteria.Accuracy = Accuracy.Fine;
			locationCriteria.PowerRequirement = Power.NoRequirement;

		    locationProvider = locationManager.GetBestProvider(locationCriteria, true);
			locationManager.RequestLocationUpdates(locationProvider,  1000, 10, this);

			currentLocation = location;

			//Position als String und LatLng ausgeben
			locationText = String.Format("{0},{1}", currentLocation.Latitude, currentLocation.Longitude);
			locationPoint = new LatLng(currentLocation.Latitude, currentLocation.Longitude);

			//Camera Builder
			CameraPosition.Builder builder = CameraPosition.InvokeBuilder();
			builder.Target(locationPoint);
			builder.Zoom(18);
			cameraPosition = builder.Build();
			cameraUpdate = CameraUpdateFactory.NewCameraPosition(cameraPosition);

			//Camera soll zur Position zoomen
			map.MoveCamera(cameraUpdate);

		}


		//Wenn das Layout geladen ist
		public void OnResume(Location location)
		{
			base.OnResume();

			var locationCriteria = new Criteria();
			locationCriteria.Accuracy = Accuracy.Fine;
			locationCriteria.PowerRequirement = Power.NoRequirement;

			locationProvider = locationManager.GetBestProvider(locationCriteria, true);
			locationManager.RequestLocationUpdates(locationProvider, 1000, 10, this);

			currentLocation = location;

			//Position als String und LatLng ausgeben
			locationText = String.Format("{0},{1}", currentLocation.Latitude, currentLocation.Longitude);
			locationPoint = new LatLng(currentLocation.Latitude, currentLocation.Longitude);
		
			//Camera Builder
			CameraPosition.Builder builder = CameraPosition.InvokeBuilder();
			builder.Target(locationPoint);
			builder.Zoom(18);
			cameraPosition = builder.Build();
			cameraUpdate = CameraUpdateFactory.NewCameraPosition(cameraPosition);

			//Camera soll zur Position zoomen
			map.MoveCamera(cameraUpdate);
		}

		//Wenn im Hintergrund
		public override void OnPause()
		{
			base.OnPause();
			locationManager.RemoveUpdates(this);
		}


		//Wird aufgerufen wennn Position verändert wurde
		public void OnLocationChanged(Location location)
		{
		    //Position als String und LatLng ausgeben
			locationText = String.Format("{0},{1}", currentLocation.Latitude, currentLocation.Longitude);
		    locationPoint = new LatLng(currentLocation.Latitude, currentLocation.Longitude);

			//Camera Builder
			CameraPosition.Builder builder = CameraPosition.InvokeBuilder();
			builder.Target(locationPoint);
			builder.Zoom(18);
			cameraPosition = builder.Build();
			cameraUpdate = CameraUpdateFactory.NewCameraPosition(cameraPosition);

			//Camera soll zur Position zoomen
			map.MoveCamera(cameraUpdate);
		}


		public void OnProviderDisabled(String provider)
		{
			//Not implemented
		}

		public void OnProviderEnabled(String provider)
		{
			//Not implemented
		}

		public void OnStatusChanged(String provider, Availability status, Bundle extras)
		{
			//Not implemented
		}



	}
}
 

Ähnliche Themen

M
Antworten
21
Aufrufe
1.305
swa00
swa00
Mr-Fisch
Antworten
5
Aufrufe
941
migi01
migi01
Mr-Fisch
Antworten
8
Aufrufe
990
Mr-Fisch
Mr-Fisch
M
Antworten
9
Aufrufe
773
mkuz24
M
A
Antworten
5
Aufrufe
680
swa00
swa00
Zurück
Oben Unten