예제 #1
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;
        }
        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;
            }
        }
 private void PositionPolarBearGroundOverlay(LatLng position)
 {
     if (_polarBearOverlay == null)
     {
         var image = BitmapDescriptorFactory.FromResource(Resource.Drawable.polarbear);
         var groundOverlayOptions = new GroundOverlayOptions()
             .Position(position, 150, 200)
             .InvokeImage(image);
         _polarBearOverlay = _map.AddGroundOverlay(groundOverlayOptions);
     }
     else
     {
         _polarBearOverlay.Position = InMaui;
     }
 }
		private void PositionChicagoGroundOverlay(LatLng position)
		{
			if (_chicagoOverlay == null)
			{
				BitmapDescriptor image = BitmapDescriptorFactory.FromResource(Resource.Drawable.monkey);
				GroundOverlayOptions groundOverlayOptions = new GroundOverlayOptions()
					.Position(position, 150000, 200000)
					.InvokeImage(image);
				_chicagoOverlay = _map.AddGroundOverlay(groundOverlayOptions);
			}
			else
			{
				_chicagoOverlay.Position = Location_Chicago;
			}
		}
		public void HandleDirectionPointsResult(List<LatLng> directionPoints, LatLng startLocation, LatLng endLocation)
		{
			var line = new PolylineOptions();
		    line.InvokeWidth(8);
		    line.InvokeColor(global::Android.Graphics.Color.Blue);
			int i = 0;
		    foreach (var point in directionPoints)
		    {
		        line.Add(point);


		    }

		    if (mMap != null)
		    {

				CameraPosition.Builder builder = CameraPosition.InvokeBuilder();
				builder.Target(startLocation);
				builder.Zoom(10);

				builder.Bearing(0);
				builder.Tilt(0);
				CameraPosition cameraPosition = builder.Build();
				CameraUpdate cameraUpdate = CameraUpdateFactory.NewCameraPosition(cameraPosition);

                this.RunOnUiThread(() =>
                {
						mMap.Clear();

						// Uses a colored icon.
						 mMap.AddMarker(new MarkerOptions()
							.SetPosition(startLocation)
							.SetTitle(GeoStartAddress)
							.SetSnippet("Population: Unknown")
							.InvokeIcon(BitmapDescriptorFactory.DefaultMarker(BitmapDescriptorFactory.HueRed)));

						mMap.AddMarker(new MarkerOptions()
							.SetPosition(endLocation)
							.SetTitle(GeoEndAddress)
							.SetSnippet("Population: Unknown")
							.InvokeIcon(BitmapDescriptorFactory.DefaultMarker(BitmapDescriptorFactory.HueRed)));
					
						var img = BitmapDescriptorFactory.FromResource (Resource.Drawable.badge_victoria);
						var groundOverlayOptions1 = new GroundOverlayOptions ()
							.Position (startLocation, 1600, 1600)
							.InvokeImage (img);
						var mapOverlay1 = mMap.AddGroundOverlay(groundOverlayOptions1);


						//Randomly adding Map OVerlays on the map.
						foreach (var point in directionPoints)
						{
							i++;
							if (i > 520) {
								i = 0;

								var image = BitmapDescriptorFactory.FromResource (Resource.Drawable.balloon_overlay_focused);
								var groundOverlayOptions = new GroundOverlayOptions ()
									.Position (point, 2000, 2000)
									.InvokeImage (image);
								var mapOverlay = mMap.AddGroundOverlay(groundOverlayOptions);
								var checadd = mapOverlay;

							}
						}
						mMap.AnimateCamera(cameraUpdate);
						var drawline = mMap.AddPolyline(line);    
                });
		        
		    }

		   // return 1;
		}