Пример #1
0
        // Function to add data fields passed on from Main Activity (Latitude, Longitude, Address - then adds a tag to marker utilising the address field if there's any)
        public void adddatatomap()
        {
            MarkerOptions opt = new MarkerOptions();
            double lat = Convert.ToDouble(Intent.GetStringExtra("Latitude"));
            double lng = Convert.ToDouble(Intent.GetStringExtra("Longitude"));
            string address = Intent.GetStringExtra("Address");

            LatLng location = new LatLng(lat, lng);

            opt.SetPosition(location);
            opt.SetTitle(address);

            map.AddMarker(opt); // Adds a marker to map based on the address that was past on from our Main Activity

            // Positioning the camera to show the marker based on fields parameter as set below
            CameraPosition.Builder builder = CameraPosition.InvokeBuilder();
            builder.Target(location);
            builder.Zoom(15);
            builder.Bearing(90);
            builder.Tilt(65);
            CameraPosition cameraPosition = builder.Build();
            CameraUpdate cameraUpdate = CameraUpdateFactory.NewCameraPosition(cameraPosition);

            map.MoveCamera(cameraUpdate);
            // Marker window clicked event
            map.InfoWindowClick += map_InfoWindowClick;
            // Marker dragged event
            map.MarkerDragEnd += map_MarkerDragEnd;
        }
Пример #2
0
        public MapRoute(GoogleMap map, List<Station> stations)
        {
            _map = map;
            _mapRoutes = new List<Polyline>();
            _mapStations = new List<Marker>();

            // Choose color;
            Color color = Color.DodgerBlue;

            // Create polyline.
            var polyline = new PolylineOptions();
            polyline.InvokeWidth(4f);
            polyline.InvokeColor(color);

            for (var i = 0; i < stations.Count; i++)
            {
                // Add points to polyline.
                var station = stations[i];
                if (station != null && station.latitude != 0f && station.longitude != 0f)
                {
                    var latlng = new Android.Gms.Maps.Model.LatLng(station.latitude, station.longitude);
                    polyline.Add(latlng);
                    // Create marker.
                    var marker = new MarkerOptions();
                    marker.SetPosition(latlng);
                    marker.SetTitle((i + 1) + ". " + station.postName);
                    marker.Draggable(false);
                    marker.SetSnippet("ul. " + station.street);
                    _mapStations.Add(_map.AddMarker(marker));
                }
            }

            // Add polyline to map.
            _mapRoutes.Add(_map.AddPolyline(polyline));
        }
        public static LatLngBounds ToBounds(this MapRegion region)
        {
            var southwest = new LatLng(region.MinY, region.MinX);
            var northeast = new LatLng(region.MaxY, region.MaxX);

            return new LatLngBounds(southwest, northeast);
        }
Пример #4
0
        public static IList<LatLng> DecodePolyline(string encoded)
        {
            List<LatLng> poly = new List<LatLng>();
            int index = 0, len = encoded.Length;
            int lat = 0, lng = 0;

            while (index < len)
            {
                int b, shift = 0, result = 0;
                do
                {
                    b = encoded[index++] - 63;
                    result |= (b & 0x1f) << shift;
                    shift += 5;
                } while (b >= 0x20);
                int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));
                lat += dlat;

                shift = 0;
                result = 0;
                do
                {
                    b = encoded[index++] - 63;
                    result |= (b & 0x1f) << shift;
                    shift += 5;
                } while (b >= 0x20);
                int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));
                lng += dlng;

                LatLng p = new LatLng((((double)lat / 1E5)), (((double)lng / 1E5)));
                poly.Add(p);
            }
            return poly;
        }
Пример #5
0
		public Ciudad_Marca(string nombre,string descripcion, LatLng ubicacion,string imagen)
		{
			this.Nombre = nombre;
			this.Descripcion = descripcion;
			this.Ubicacion = ubicacion;
			this.Imagen = imagen;
		}
        protected override void OnCreate (Bundle savedInstanceState) 
        {
            base.OnCreate (savedInstanceState);

            SetContentView (Resource.Layout.split_street_view_panorama_and_map_demo);

            if (savedInstanceState == null)
                markerPosition = SYDNEY;
            else
                markerPosition = savedInstanceState.GetParcelable (MARKER_POSITION_KEY).JavaCast<LatLng> ();
            
            var streetViewPanoramaFragment =
                (SupportStreetViewPanoramaFragment)
                SupportFragmentManager.FindFragmentById (Resource.Id.streetviewpanorama);
            
            streetViewPanoramaFragment.GetStreetViewPanoramaAsync (this);

            SupportMapFragment mapFragment =
                (SupportMapFragment) SupportFragmentManager.FindFragmentById (Resource.Id.map);
            mapFragment.GetMapAsync (this);
//                @Override
//                public void onMapReady(GoogleMap map) {
//                    map.setOnMarkerDragListener(SplitStreetViewPanoramaAndMapDemoActivity.this);
//                    // Creates a draggable marker. Long press to drag.
//                    mMarker = map.addMarker(new MarkerOptions()
//                        .position(markerPosition)
//                        .icon(BitmapDescriptorFactory.fromResource(R.drawable.pegman))
//                        .draggable(true));
//                }
//            });
        }
Пример #7
0
 public void UpdateEvents()
 {
     AddEventMarkers ();
     foreach (Event eve in TowManager.Get(1)) {
         LatLng latln = new LatLng (eve.Location.Lat, eve.Location.Lng);
         map.MoveCamera (CameraUpdateFactory.NewLatLngZoom (latln, 15));
     }
 }
Пример #8
0
        public void OnMapReady(GoogleMap googleMap)
        {
            this.googleMap = googleMap;

            LatLng denmarkLatLng = new LatLng(56, 10.5);
            googleMap.MoveCamera(CameraUpdateFactory.NewLatLng(denmarkLatLng));
            googleMap.AnimateCamera(CameraUpdateFactory.ZoomTo(6));
        }
        private void CreateMarker()
        {
            var latLng = new LatLng(55.816887, 12.532878);

            var markerOptions = new MarkerOptions()
                .SetPosition(latLng)
                .Draggable(true);
            _meMarker = _map.AddMarker(markerOptions);
            _map.AnimateCamera(CameraUpdateFactory.NewLatLngZoom(latLng, 13));
        }
Пример #10
0
 public void ChangeRegionInMap(pcl.Marker marker)
 {
     if (marker != null) {
         LatLng location = new LatLng(marker.Coordinate.Latitude, marker.Coordinate.Longitude);
         CameraPosition.Builder builder = CameraPosition.InvokeBuilder();
         builder.Target(location);
         builder.Zoom(MAP_VIEW_ZOOM_INIT);
         CameraPosition cameraPosition = builder.Build();
         this.cameraUpdate = CameraUpdateFactory.NewCameraPosition(cameraPosition);
         this.map.MoveCamera (this.cameraUpdate);
     }
 }
Пример #11
0
		public void SetupMap ()
		{
			GoogleMap map = (FragmentManager.FindFragmentById<MapFragment> (Resource.Id.map)).Map;

			double lat = Intent.GetDoubleExtra ("lat", 37.6329946);
			double lng = Intent.GetDoubleExtra ("lng", -122.4938344);
			float zoom = Intent.GetFloatExtra ("zoom", 15.0f);

			var position = new LatLng (lat, lng);
			map.MoveCamera (CameraUpdateFactory.NewLatLngZoom (position, zoom));
			map.AddMarker (new MarkerOptions ().SetPosition (position));
		}
Пример #12
0
		public void OnMapLongClick (LatLng mkr)
		{
			if (mMap != null) 
			{
				mMap.AddMarker (new MarkerOptions ()
				                .SetPosition (mkr)
				                .SetTitle (NumMarker.ToString ())
				                .SetSnippet ("Marcador " + NumMarker.ToString ())
				                .Draggable (true));
				NumMarker++;
			}

		}
Пример #13
0
        public void SetViewPoint(LatLng latlng, bool animated)
        {
            CameraPosition.Builder builder = CameraPosition.InvokeBuilder();
            builder.Target(latlng);
            builder.Zoom(14.5F);
            CameraPosition cameraPosition = builder.Build();

            if (animated) {
                _map.AnimateCamera (CameraUpdateFactory.NewCameraPosition (cameraPosition));
            } else {
                _map.MoveCamera (CameraUpdateFactory.NewCameraPosition (cameraPosition));
            }
        }
Пример #14
0
        public void OnMapReady(GoogleMap googleMap)
        {
            mMap = googleMap;
              LatLng latlng = new LatLng(loc.Latitude, loc.Longitude); //Wijnhaven
              CameraUpdate camera = CameraUpdateFactory.NewLatLngZoom(latlng, 15);
              mMap.MoveCamera(camera);
              MarkerOptions start = new MarkerOptions()
               .SetPosition(latlng)
               .SetTitle("Uw huidige locatie")
               .SetSnippet("U bevind zich hier")
               .SetIcon(BitmapDescriptorFactory.DefaultMarker(BitmapDescriptorFactory.HueBlue));

              mMap.AddMarker(start);
              MarkerFactory mFactory = new MarkerFactory(preLoad.csvFT.getMarkers());
              float lowest = 99999;
              for (Iterator iter = mFactory.getIterator(); iter.hasNext();)
              {
            FietsTrommel ft = iter.next();
            if (ft.xcoord.Length > 0 && ft.ycoord.Length > 0)
            {
              double lat = Convert.ToDouble(ft.xcoord.Replace('.', ','));
              double lon = Convert.ToDouble(ft.ycoord.Replace('.', ','));
              Location fietsT = new Location("");
              fietsT.Latitude = lat;
              fietsT.Longitude = lon;

              if (fietsT.DistanceTo(loc) < 500)
              {
            LatLng coords = new LatLng(lat, lon);
            MarkerOptions newMarker = new MarkerOptions()
             .SetPosition(coords)
             .SetTitle(ft.Straat)
             .SetSnippet("Sinds: " + ft.Mutdatum)
             .Draggable(true);

            mMap.AddMarker(newMarker);
              }
              if (fietsT.DistanceTo(loc) < lowest)
              {
            lowest = fietsT.DistanceTo(loc);
            closest = ft;
              }
            }
              }
              Location closestF = new Location("");
              double closLat = Convert.ToDouble(closest.xcoord.Replace('.', ','));
              double closLon = Convert.ToDouble(closest.ycoord.Replace('.', ','));
              closestF.Latitude = closLat;
              closestF.Longitude = closLon;
        }
Пример #15
0
        protected override void OnElementChanged(Xamarin.Forms.Platform.Android.ElementChangedEventArgs<Xamarin.Forms.View> e)
        {
            base.OnElementChanged(e);

            extendedMap = (ExtendedMap)Element;
            mapView = Control as MapView;
            map = mapView.Map;

            map.MarkerClick+= HandleMarkerClick;

            // Pin tıklanınca sağalta açılan menüyü engellemek için
            map.UiSettings.MapToolbarEnabled = true;
            map.UiSettings.MyLocationButtonEnabled = true;

            if (extendedMap.isOverlayNeeded) {
                LatLng southwest = new LatLng (extendedMap.sw.Latitude, extendedMap.sw.Longitude);
                LatLng northeast = new LatLng (extendedMap.ne.Latitude, extendedMap.ne.Longitude);

                LatLngBounds bounds = new LatLngBounds (southwest, northeast);

                string url = extendedMap.overlayURL;//"http://www.mgm.gov.tr/mobile/mblhrt/data/radar/MAX--_6100_P00.png";

                Bitmap objBitmap = GetImageBitmapFromUrl (url);

                BitmapDescriptor objBitmapDescriptor = BitmapDescriptorFactory.FromBitmap (objBitmap);
                GroundOverlayOptions objGroundOverlayOptions = new GroundOverlayOptions ().PositionFromBounds (bounds)/*.Position (objMapPosition, 100000)*/.InvokeImage (objBitmapDescriptor);

                map.AddGroundOverlay (objGroundOverlayOptions);

                //For freeing memory
                objBitmap.Recycle ();
            }

            for (int i = 0; i < extendedMap.pinDatas.Count; i++) {
                var markerWithIcon = new MarkerOptions ();
                markerWithIcon.SetPosition (new LatLng (extendedMap.pinDatas[i].lat, extendedMap.pinDatas[i].lng));
                markerWithIcon.SetTitle (i.ToString());
                /*markerWithIcon.SetTitle ("aa");
                markerWithIcon.SetSnippet ("bb");*/
                int resID = Resources.GetIdentifier (extendedMap.pinDatas [i].icon, "drawable" , "com.app1001.bluemart");
                //System.Diagnostics.Debug.WriteLine (resID);
                markerWithIcon.SetIcon(BitmapDescriptorFactory.FromResource(resID));
                map.AddMarker (markerWithIcon);
            }

            //Add Pins

            //map.SetInfoWindowAdapter(this);
            map.UiSettings.RotateGesturesEnabled = false;
        }
Пример #16
0
                public void OnMapReady(GoogleMap map)
                {
                    // sanity checks in case loading the map fails (Google Play can error)
                    if (map != null)
                    {
                        Map = map;

                        // because google can actually give me a valid map that isn't actually ready.
                        try
                        {
                            // For privacy, turn off the map toolbar, which prevents people from getting specific driving directions
                            // to neighborhood group houses.
                            Map.UiSettings.MapToolbarEnabled = false;
                            Map.SetOnMarkerClickListener(this);

                            // set the map to a default position
                            // additionally, set the default position for the map to whatever specified area.
                            Android.Gms.Maps.Model.LatLng defaultPos = new Android.Gms.Maps.Model.LatLng(ConnectConfig.GroupFinder_DefaultLatitude, ConnectConfig.GroupFinder_DefaultLongitude);

                            CameraUpdate camPos = CameraUpdateFactory.NewLatLngZoom(defaultPos, ConnectConfig.GroupFinder_DefaultScale_Android);
                            map.MoveCamera(camPos);

                            // see if there's an address for this person that we can automatically use.
                            if (RockMobileUser.Instance.HasFullAddress( ) == true)
                            {
                                // if they don't already have any value, use their address
                                if (string.IsNullOrEmpty(StreetValue) == true &&
                                    string.IsNullOrEmpty(CityValue) == true &&
                                    string.IsNullOrEmpty(StateValue) == true &&
                                    string.IsNullOrEmpty(ZipValue) == true)
                                {
                                    SearchPage.SetAddress(RockMobileUser.Instance.Street1( ), RockMobileUser.Instance.City( ), RockMobileUser.Instance.State( ), RockMobileUser.Instance.Zip( ));
                                }
                                else
                                {
                                    // otherwise use what they last had.
                                    SearchPage.SetAddress(StreetValue, CityValue, StateValue, ZipValue);
                                }
                            }
                            else
                            {
                                // otherwise, if there are values from a previous session, use those.
                                SearchPage.SetAddress(StreetValue, CityValue, string.IsNullOrEmpty(StateValue) ? ConnectStrings.GroupFinder_DefaultState : StateValue, ZipValue);
                            }
                        }
                        catch
                        {
                        }
                    }
                }
Пример #17
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate (bundle);

            SetContentView (Resource.Layout.dashboard_listview_detail);
            progress = new ProgressDialog (this);
            lat = 37.09035962;
            lan = -95.71368456;
            flag = FindViewById<ImageView> (Resource.Id.ivNew1);
            flag.Click += Flag_Click;
            ivListEmpty = FindViewById<LinearLayout> (Resource.Id.ivEmptylist);
            lvlist = FindViewById<ListView> (Resource.Id.lvListDetail);
            llMap = FindViewById<RelativeLayout> (Resource.Id.llmap);
            tvnumber = FindViewById<TextView> (Resource.Id.tvNumber);
            tvdesc = FindViewById<TextView> (Resource.Id.tvdesc);
            tvtime = FindViewById<TextView> (Resource.Id.tvTime);
            tvreply = FindViewById<TextView> (Resource.Id.tvReply);
            ListSipp = new List<SippReplyModel> ();

            Typeface tf = Typeface.CreateFromAsset (Application.Context.Assets, "fonts/OpenSans-Light.ttf");
            Typeface tf1 = Typeface.CreateFromAsset (Application.Context.Assets, "fonts/OpenSans-Semibold.ttf");
            Typeface tf2 = Typeface.CreateFromAsset (Application.Context.Assets, "fonts/OpenSans-Bold.ttf");

            adapter = new CustomListViewDetail (this, ListSipp);
            lvlist.Adapter = adapter;
            if (adapter.IsEmpty) {
                ivListEmpty.Visibility = ViewStates.Visible;
            } else {
                ivListEmpty.Visibility = ViewStates.Gone;
            }

            mapFrag = (MapFragment)FragmentManager.FindFragmentById (Resource.Id.map);
            map = mapFrag.Map;
            map.UiSettings.CompassEnabled = true;
            map.UiSettings.ZoomControlsEnabled = false;
            map.MyLocationEnabled = false;

            LatLng lastLatLng = new LatLng (lat, lan);
            map.MoveCamera (CameraUpdateFactory.NewLatLngZoom (lastLatLng, 15));
            MarkerOptions marker = new MarkerOptions ();
            marker.SetPosition (new LatLng (lat, lan));
            map.AddMarker (marker);
            llMap.Background.SetAlpha (200);
            llMap.Click += LlMap_Click;
            tvnumber.SetTypeface (tf, TypefaceStyle.Normal);
            tvnumber.SetTypeface (tf2, TypefaceStyle.Normal);
            tvtime.SetTypeface (tf1, TypefaceStyle.Normal);
            tvreply.SetTypeface (tf1, TypefaceStyle.Normal);
        }
Пример #18
0
 protected override void OnCreate(Bundle bundle)
 {
     base.OnCreate (bundle);
     SetContentView (Resource.Layout.map_activity);
     lat = Intent.GetDoubleExtra ("lat", 0);
     lan = Intent.GetDoubleExtra ("lan", 0);
     mapFrag = (MapFragment)FragmentManager.FindFragmentById (Resource.Id.map);
     map = mapFrag.Map;
     map.UiSettings.CompassEnabled = true;
     map.UiSettings.ZoomControlsEnabled = true;
     LatLng lastLatLng = new LatLng (lat, lan);
     map.MoveCamera (CameraUpdateFactory.NewLatLngZoom (lastLatLng, 15));
     MarkerOptions marker = new MarkerOptions ();
     marker.SetPosition (new LatLng (lat, lan));
     map.AddMarker (marker);
 }
Пример #19
0
        public void adddatatomap()
        {
            LatLng loc0=new LatLng(-37.773250,175.250250);
            MarkerOptions opt0 = new MarkerOptions() //no semicolon
            .SetPosition(loc0)
            .SetRotation(45)

            .SetAlpha(.5f)
            .Draggable(true)
            .SetTitle("In the waikato")
            .SetIcon(BitmapDescriptorFactory.FromResource(Resource.Drawable.Icon))
            .SetSnippet("The presence of this actually creates an infowindow"); // which is why the other marker does not have one
            map.AddMarker(opt0);

            MarkerOptions opt1 = new MarkerOptions();
                double lat = Convert.ToDouble(Intent.GetStringExtra("Latitude"));
                double lng = Convert.ToDouble(Intent.GetStringExtra("Longitude"));
                string address = Intent.GetStringExtra("Address");

                LatLng location = new LatLng(lat, lng);

                opt1.SetPosition(location);
                opt1.SetTitle(address);

                map.AddMarker(opt1);

                // Positioning the camera to show the marker

                CameraPosition.Builder builder = CameraPosition.InvokeBuilder();
                builder.Target(location);
                builder.Zoom(15);
                builder.Bearing(90);
                builder.Tilt(65);
                CameraPosition cameraPosition = builder.Build();
                CameraUpdate cameraUpdate = CameraUpdateFactory.NewCameraPosition(cameraPosition);

                map.MoveCamera(cameraUpdate);
            //marker window clicked event
               map.InfoWindowClick += map_InfoWindowClick;
            //marker dragged event
                map.MarkerDragEnd += map_MarkerDragEnd;

               // map.SetInfoWindowAdapter(this);

            //  map.SetOnInfoWindowClickListener(this); //- implements the interface IOnInfoWindowclickListener
        }
Пример #20
0
		protected override void OnAttached()
		{
			var mapView = Control as MapView;
			if(mapView == null)
				return;

			behavior = (MapExtensionBehavior) (Element as Map)?.Behaviors?.FirstOrDefault(x =>
				x is MapExtensionBehavior);
			if(behavior == null)
				return;
			

			var zoomButton = mapView.FindViewById(1); // ズームボタン LinearLayout
			if(zoomButton != null)
			{
				zoomButton.Visibility = Android.Views.ViewStates.Invisible;
			}

			var locationButton = mapView.FindViewById(2); // 現在位置ボタン ImageView
			if(locationButton != null)
			{
				locationButton.Visibility = Android.Views.ViewStates.Invisible;
			}

			var callback = new OnMapReadyCallback();
			callback.MapReady += (sender, e) => {
				googleMap = callback.GoogleMap;

				googleMap.MyLocationChange += GoogleMap_MyLocationChange;
				// なぜかCameraChangeにハンドラを追加するとXF.Maps.Map.VisibleRegionが更新されなくなる
//				googleMap.CameraChange += GoogleMap_CameraChange;

				var point = new LatLng(
					XFAedSearch.Droid.Helpers.Settings.Latitude,
					XFAedSearch.Droid.Helpers.Settings.Longitude);
				googleMap.MoveCamera(CameraUpdateFactory.NewLatLngZoom(point,
					XFAedSearch.Droid.Helpers.Settings.ZoomLevel));

				googleMap.SetOnMapLoadedCallback(new MapLoadedCallback {
					OnMapLoadedAction = () => MapLoaded?.Invoke(this, new EventArgs())
				});
			};
			mapView.GetMapAsync(callback);

		}
Пример #21
0
                public void OnClick(int position, int buttonIndex)
                {
                    if (position < GroupEntries.Count)
                    {
                        if (buttonIndex == 0)
                        {
                            // select the row
                            (ListView.Adapter as GroupArrayAdapter).SetSelectedRow(position);

                            // scroll it into view
                            ListView.SmoothScrollToPosition(position);

                            // hide all other marker windows (if showing)
                            // go thru each marker and find the match, and then return it
                            foreach (Android.Gms.Maps.Model.Marker currMarker in MarkerList)
                            {
                                currMarker.HideInfoWindow( );
                            }

                            // validate the map because Google Play can error
                            if (Map != null)
                            {
                                // center that map marker
                                Android.Gms.Maps.Model.Marker marker = RowToMapMarker(position);
                                marker.ShowInfoWindow( );

                                Android.Gms.Maps.Model.LatLng centerMarker = new Android.Gms.Maps.Model.LatLng(marker.Position.Latitude, marker.Position.Longitude);

                                CameraUpdate camPos = CameraUpdateFactory.NewLatLngZoom(centerMarker, Map.CameraPosition.Zoom);
                                Map.AnimateCamera(camPos, 250, null);
                            }
                        }
                        else if (buttonIndex == 1)
                        {
                            // Ok! notify the parent they tapped Join, and it will launch the
                            // join group fragment! It's MARCH, FRIDAY THE 13th!!!! OH NOOOO!!!!
                            ParentTask.OnClick(this, position, GroupEntries[position]);
                            Rock.Mobile.Util.Debug.WriteLine(string.Format("Join neighborhood group in row {0}", position));
                        }
                    }
                    else
                    {
                        GetAdditionalGroups( );
                    }
                }
Пример #22
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate (bundle);
            SetContentView (Resource.Layout.panorama);
            var lat = Intent.GetDoubleExtra ("lat", 37.7977);
            var lng = Intent.GetDoubleExtra ("lng", -122.40);

            latlng = new LatLng (lat, lng);
            streetViewPanoramaView = FindViewById<StreetViewPanoramaView> (Resource.Id.panorama);
            streetViewPanoramaView.OnCreate (bundle);
            streetViewPanoramaView.GetStreetViewPanoramaAsync (this);

            #if !DEBUG
            Xamarin.Insights.Track ("AppNav", new Dictionary<string,string> {
                { "page", "panorama" }
            });
            #endif
        }
Пример #23
0
        public void OnMapReady(GoogleMap googleMap)
        {
            if (ContextCompat.CheckSelfPermission(this, Manifest.Permission.AccessCoarseLocation) ==
                Permission.Granted || ContextCompat.CheckSelfPermission(this, Manifest.Permission.AccessFineLocation) ==
                Permission.Granted)
            {
                this.googleMap = googleMap;
                googleMap.MyLocationEnabled = true;
                LatLng         latLng         = new Android.Gms.Maps.Model.LatLng(location.currentLocation.Latitude, location.currentLocation.Longitude);
                CameraPosition cameraPosition = new CameraPosition.Builder().Target(latLng).Zoom(13).Build();
                sourceMarkerOptions.SetPosition(latLng);

                googleMap.AnimateCamera(CameraUpdateFactory.NewCameraPosition(cameraPosition), 3000, null);
            }

            googleMap.UiSettings.ScrollGesturesEnabled = true;
            googleMap.UiSettings.ZoomGesturesEnabled   = true;
        }
		public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
		{
			var pager = new ViewPager (inflater.Context) {
				Id = 0x34532,
				Adapter = new MonkeyPageAdapter (ChildFragmentManager),
			};
			pager.PageSelected += async (sender, e) => {
				var map = (SupportMapFragment)FragmentManager.FindFragmentById (Resource.Id.map);
				var monkeyName = ((MonkeyPageAdapter)pager.Adapter).GetMonkeyAtPosition (e.Position);
				var location = await WikipediaApi.FetchHabitatLocation (monkeyName);
				var latLng = new Android.Gms.Maps.Model.LatLng (location.Item1, location.Item2);
				map.Map.AnimateCamera (CameraUpdateFactory.NewLatLng (latLng), 250, null);
				if (existingMarker != null)
					existingMarker.Remove ();
				existingMarker = map.Map.AddMarker (new MarkerOptions ().SetPosition (latLng));
			};

			return pager;
		}
Пример #25
0
        public void OnLocationChanged(Location location)
        {
            _currentLocation = location;
            coord = new LatLng(location.Latitude, location.Longitude);
            CameraUpdate update = CameraUpdateFactory.NewLatLngZoom(coord, 17);

            map.AnimateCamera(update);

            if (currentLocationMarker != null) {
                currentLocationMarker.Position = coord;
            }
            else {
                var markerOptions = new MarkerOptions()
                    .SetIcon(BitmapDescriptorFactory.DefaultMarker(BitmapDescriptorFactory.HueBlue))
                    .SetPosition(coord)
                    .SetTitle("Current Position")
                    .SetSnippet("You are here");
                currentLocationMarker = map.AddMarker(markerOptions);
            }
        }
Пример #26
0
        public MapPageRenderer()
        {
            Subscribe(Messages.LOCATION_CHANGED, obj =>
                {
                    _location = obj as Core.Location;

                    LatLng location = new LatLng(_location.Latitude, _location.Longitude);
                    CameraPosition.Builder builder = CameraPosition.InvokeBuilder();
                    builder.Target(location);
                    builder.Zoom(18);
                    CameraPosition cameraPosition = builder.Build();
                    CameraUpdate cameraUpdate = CameraUpdateFactory.NewCameraPosition(cameraPosition);

                    var activity = this.Context as Activity;
                    MapFragment mapFrag = (MapFragment)activity.FragmentManager.FindFragmentById(Resource.Id.map);
                    _map = mapFrag.Map;
                    _map?.MoveCamera(cameraUpdate);

                    var textview = _view.FindViewById<Android.Widget.TextView>(Resource.Id.textView);
                    textview.Text = $"{_location.Latitude} , {_location.Longitude}";
                });
        }
Пример #27
0
		async void DoMapStuff ()
		{
			if (stop) {
				return;
			}

			GoogleMap map = mapFragment.Map;
			if (map != null) {
				LatLng lanLng;

				LocationManager locationManager = (LocationManager) activity.GetSystemService (Android.Content.Context.LocationService);
				Criteria criteria = new Criteria();

				Location location = locationManager.GetLastKnownLocation (locationManager.GetBestProvider (criteria, false));

				if (location != null) {
					lanLng = new LatLng (location.Latitude, location.Longitude);
				} else {
					lanLng = new LatLng (58.366473, 26.690286);
				}

				CameraPosition.Builder builder = CameraPosition.InvokeBuilder();
				builder.Target(lanLng);
				builder.Zoom(17);
				builder.Bearing(0);
				builder.Tilt(0);
				CameraPosition cameraPosition = builder.Build();
				cameraUpdate = CameraUpdateFactory.NewCameraPosition(cameraPosition);
				map.MoveCamera(cameraUpdate);
				map.MyLocationEnabled = true;
				stop = true;
				AddMarkers ();
			}

			await Task.Delay (animationDurationMs);
			DoMapStuff ();
		}
Пример #28
0
		private void InitializeMapAndHandlers()
		{
			SetUpMapIfNeeded();

			if (Map != null) {
				Map.MyLocationEnabled = false;
				MyLocation = null;
				MyLastLocation = null;
				Lat = new LatLng (45.469303, 9.188106);
				MyLastLocation = MyLocation;
				OnLocationChanged (Lat);

				float[] distance = new float[2];
				float[] newDistance = new float[2];

				Map.MyLocationChange += (s, e) => {
					MyLastLocation = MyLocation;
					MyLocation = e.Location;
					if (MyLocation != null && MyLastLocation != null)
					{
						Location.DistanceBetween (MyLocation.Latitude, MyLastLocation.Latitude, MyLocation.Longitude, MyLocation.Latitude, distance);

						if (Math.Abs (newDistance [0] - distance [0]) >= 1F && Math.Abs (newDistance [1] - distance [1]) >= 1F) {	
							Lat = new LatLng (MyLocation.Latitude, MyLocation.Longitude);
							OnLocationChanged (Lat);
							distance = newDistance;
						}
					}
				};

			}
			else
			{
				SetUpMapIfNeeded ();
			}
		}
Пример #29
0
		public void OnMapReady(GoogleMap googleMap)
		{
			globMap = googleMap;
            markerColor = new Dictionary<string, HamsterColor>();
			foreach ( var a in ViewModel.Markers) {
				var markerOpt = new MarkerOptions();
				double la = double.Parse(a.HamsterLatitude, System.Globalization.CultureInfo.InvariantCulture);
				double lon = double.Parse (a.HamsterLongitude, System.Globalization.CultureInfo.InvariantCulture);
				latlng = new LatLng (la, lon);
				markerOpt.SetPosition (latlng);
				markerOpt.SetTitle (String.Format("Name: {0} {1} ", a.FirstName, a.LastName));
				markerOpt.SetSnippet (String.Format("Latitude: {0}  Longitude: {1} ", a.HamsterLatitude, a.HamsterLongitude));
               
				globMap.AddMarker(markerOpt); 
                markerColor.Add(String.Format("{0}{1}",markerOpt.Title, markerOpt.Snippet), a.Color); 
			}
			globMap.MyLocationEnabled = true;
			globMap.UiSettings.CompassEnabled = true;
			globMap.UiSettings.MapToolbarEnabled = false;
			globMap.UiSettings.ZoomControlsEnabled = true;
			globMap.UiSettings.MyLocationButtonEnabled = false;

			globMap.SetInfoWindowAdapter (this);
		}
Пример #30
0
        public static LatLngBounds extendLimits(LatLngBounds bounds, int ratio)
        {
            double extendedLongitude = Math.Abs(bounds.Northeast.Longitude
                                 - bounds.Southwest.Longitude) / ratio;

            double extendedLatitude = Math.Abs(bounds.Northeast.Latitude
                                 - bounds.Southwest.Latitude) / ratio;

            LatLng topRight = null;
            LatLng bottomLeft = null;

            // Longitudes
            double topRightLongitude = bounds.Northeast.Longitude + extendedLongitude;
            double bottomLeftLongitude = bounds.Southwest.Longitude - extendedLongitude;

            // latitudes
            double topRightLatitude = bounds.Northeast.Latitude + extendedLatitude;
            double bottomLeftLatitude = bounds.Southwest.Latitude - extendedLatitude;

            topRight = new LatLng(topRightLatitude, topRightLongitude);
            bottomLeft = new LatLng(bottomLeftLatitude, bottomLeftLongitude);

            return new LatLngBounds(bottomLeft, topRight);
        }
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            var pager = new ViewPager(inflater.Context)
            {
                Id      = 0x34532,
                Adapter = new MonkeyPageAdapter(ChildFragmentManager),
            };

            pager.PageSelected += async(sender, e) => {
                var map        = (SupportMapFragment)FragmentManager.FindFragmentById(Resource.Id.map);
                var monkeyName = ((MonkeyPageAdapter)pager.Adapter).GetMonkeyAtPosition(e.Position);
                var location   = await WikipediaApi.FetchHabitatLocation(monkeyName);

                var latLng = new Android.Gms.Maps.Model.LatLng(location.Item1, location.Item2);
                map.Map.AnimateCamera(CameraUpdateFactory.NewLatLng(latLng), 250, null);
                if (existingMarker != null)
                {
                    existingMarker.Remove();
                }
                existingMarker = map.Map.AddMarker(new MarkerOptions().SetPosition(latLng));
            };

            return(pager);
        }
        private void PositionPolarBearGroundOverlay(LatLng position)
        {
            if (_polarBearOverlay == null)
            {
                BitmapDescriptor image = BitmapDescriptorFactory.FromResource(Resource.Drawable.polarbear);
                GroundOverlayOptions groundOverlayOptions = new GroundOverlayOptions()
                    .Position(position, 150, 200)
                    .InvokeImage(image);
                _polarBearOverlay = _map.AddGroundOverlay(groundOverlayOptions);

                PolygonOptions rectOptions = new PolygonOptions();

                rectOptions.Add(position);
                rectOptions.Add(new LatLng(37.45, -122.0));
                rectOptions.Add(new LatLng(37.45, -122.2));
                rectOptions.Add(new LatLng(37.35, -122.2));
                // notice we don't need to close off the polygon
                _map.AddPolygon(rectOptions);
            }
            else
            {
                _polarBearOverlay.Position = InMaui;
            }
        }
Пример #33
0
        private void OnMyLocationChange(object sender, GoogleMap.MyLocationChangeEventArgs e)
        {
            if (JakDojade.Models.Options.AutoUpdateLocation)
            {
                var myLocation = e.Location;
                var myLatLng = new Android.Gms.Maps.Model.LatLng(myLocation.Latitude, myLocation.Longitude);

                if (myLocation == null)
                {
                    Logger.Log("Brak sygna³u GPS.");
                    MessagingCenter.Send(_myMap, "DisplayAlert", new AlertMessage("B³¹d", "Brak sygna³u GPS."));
                    return;
                }

                // Move existing marker.
                if (_startMarker != null)
                {
                    _startMarker.Position = myLatLng;
                    _startMarker.ShowInfoWindow();
                }
                //_map.AnimateCamera(CameraUpdateFactory.NewLatLngZoom(myLatLng, DefaultZoom));
            }
        }
Пример #34
0
        private void OnMyLocationButtonClick(object sender, GoogleMap.MyLocationButtonClickEventArgs e)
        {
            var myLocation = GetMyLocation();
            if (myLocation == null)
            {
                Logger.Log("Brak sygna³u GPS.");
                MessagingCenter.Send(_myMap, "DisplayAlert", new AlertMessage("B³¹d", "Brak sygna³u GPS."));
                return;
            }
            var myLatLng = new Android.Gms.Maps.Model.LatLng(myLocation.Latitude, myLocation.Longitude);

            // Create new starting marker.
            if (_startMarker == null)
            {
                var marker = new MarkerOptions();
                marker.SetPosition(myLatLng);
                marker.SetTitle("Od");
                marker.Draggable(true);
                // TODO: Custom start icon.

                _startMarker = _map.AddMarker(marker);
                _startMarker.ShowInfoWindow();
            }
            // Move existing marker.
            else
            {
                _startMarker.Position = myLatLng;
                _startMarker.ShowInfoWindow();
            }
            _map.AnimateCamera(CameraUpdateFactory.NewLatLngZoom(myLatLng, DefaultZoom));
        }
Пример #35
0
                void UpdateMap(bool result)
                {
                    if (GroupEntries.Count > 0)
                    {
                        // update our list and display
                        SearchResultPrefix.Text = ConnectStrings.GroupFinder_Neighborhood;

                        (ListView.Adapter as GroupArrayAdapter).SetSelectedRow(0);

                        // for the map, ensure it's valid, because Google Play can fail
                        if (Map != null)
                        {
                            Map.Clear( );
                            MarkerList.Clear( );

                            Android.Gms.Maps.Model.LatLngBounds.Builder builder = new Android.Gms.Maps.Model.LatLngBounds.Builder();

                            // add the source position
                            Android.Gms.Maps.Model.MarkerOptions markerOptions = new Android.Gms.Maps.Model.MarkerOptions();
                            Android.Gms.Maps.Model.LatLng        pos           = new Android.Gms.Maps.Model.LatLng(SourceLocation.Latitude, SourceLocation.Longitude);
                            markerOptions.SetPosition(pos);
                            markerOptions.InvokeIcon(BitmapDescriptorFactory.DefaultMarker(BitmapDescriptorFactory.HueGreen));
                            builder.Include(pos);

                            Android.Gms.Maps.Model.Marker marker = Map.AddMarker(markerOptions);
                            MarkerList.Add(marker);

                            for (int i = 0; i < GroupEntries.Count; i++)
                            {
                                // add the positions to the map
                                markerOptions = new Android.Gms.Maps.Model.MarkerOptions();
                                pos           = new Android.Gms.Maps.Model.LatLng(GroupEntries[i].Latitude, GroupEntries[i].Longitude);
                                markerOptions.SetPosition(pos);
                                markerOptions.SetTitle(GroupEntries[i].Name);
                                markerOptions.SetSnippet(string.Format("{0:##.0} {1}", GroupEntries[i].DistanceFromSource, ConnectStrings.GroupFinder_MilesSuffix));

                                builder.Include(pos);

                                marker = Map.AddMarker(markerOptions);
                                MarkerList.Add(marker);
                            }

                            Android.Gms.Maps.Model.LatLngBounds bounds = builder.Build( );

                            int paddingInPixels = Math.Min(View.Width, (int)(View.Height * .1f));

                            CameraUpdate camPos = CameraUpdateFactory.NewLatLngBounds(bounds, paddingInPixels);
                            Map.AnimateCamera(camPos);

                            // show the info window for the first (closest) group
                            MarkerList[1].ShowInfoWindow( );
                        }
                    }
                    else
                    {
                        if (result == true)
                        {
                            // send the analytic and update our list
                            SearchResultPrefix.Text       = ConnectStrings.GroupFinder_NoGroupsFound;
                            SearchResultNeighborhood.Text = string.Empty;

                            (ListView.Adapter as GroupArrayAdapter).SetSelectedRow(-1);

                            // validate the map before using. Google Play can error
                            if (Map != null)
                            {
                                // no groups found, so move the camera to the default position
                                Android.Gms.Maps.Model.LatLng defaultPos = new Android.Gms.Maps.Model.LatLng(ConnectConfig.GroupFinder_DefaultLatitude, ConnectConfig.GroupFinder_DefaultLongitude);
                                CameraUpdate camPos = CameraUpdateFactory.NewLatLngZoom(defaultPos, ConnectConfig.GroupFinder_DefaultScale_Android);
                                Map.AnimateCamera(camPos);
                            }
                        }
                        else
                        {
                            // there was actually an error. Let them know.
                            SearchResultPrefix.Text       = ConnectStrings.GroupFinder_NetworkError;
                            SearchResultNeighborhood.Text = string.Empty;
                        }
                    }
                }
Пример #36
0
        public object FindCordinateAddress(Android.Gms.Maps.Model.LatLng position, bool returnFullAddress = false)
        {
            var result = UiServices.ReverseGeoCode(position.Latitude.ToString() + "," + position.Longitude.ToString(), returnFullAddress);

            return(result);
        }