Example #1
0
        public MarkerClient(MarkerClientViewModel viewModel, ref float floatlogitudeNoFind)
        {
            InitializeComponent();
            _viewModel = viewModel;
            MapLayer.SetPositionOrigin(this, PositionOrigin.BottomCenter);
            new ListViewDragDropManager <Order>(ListClientOrders);
            Punto puntofactoria = new Punto();

            //spain latitude 40.4637 north , 3.7492 West
            //coordenad y
            puntofactoria.latitude = _viewModel.Client.Location.Latitude;
            //coordenada x
            puntofactoria.longitude = _viewModel.Client.Location.Longitude;

            //44.488444, -10.267331 (left-up)
            //42.476091, 5.416559 (right-up)
            //36.199297, -11.641810 (left-down)
            //35.339791, 1.732230 (right-down)

            //Limitacion esquinas españa(recuadro en google maps)
            // (left-up)-------------(right-up)
            // (left-down)-----------(right-down)

            //esquina de arriba a la izquierda
            Punto leftup = new Punto
            {
                latitude  = Convert.ToSingle(44.488444),
                longitude = Convert.ToSingle(-10.267331)
            };

            //esquina derecha de arriba
            Punto rightup = new Punto
            {
                latitude  = Convert.ToSingle(42.476091),
                longitude = Convert.ToSingle(5.416559)
            };

            //esquina de abajo izquierda
            Punto leftdown = new Punto
            {
                latitude  = Convert.ToSingle(36.199297),
                longitude = Convert.ToSingle(-11.641810)
            };

            //esquina de abajo derecha
            Punto rightdown = new Punto
            {
                latitude  = Convert.ToSingle(35.3397912),
                longitude = Convert.ToSingle(1.732230)
            };

            //miramos si el punto obtenido esta  dentro del rectangulo definido
            //si es asi dejamos la factoria en su lugar
            if (PointInRectangle(puntofactoria, leftup, rightup, leftdown, rightdown))
            {
                localizacion = new Location(_viewModel.Location.Latitude, _viewModel.Location.Longitude);
                MapLayer.SetPosition(this, new Location(_viewModel.Client.Location.Latitude, _viewModel.Client.Location.Longitude));
            }
            //si google no sabe colocarlos correctamente los coloca arriba
            else
            {
                MapLayer.SetPosition(this, new Location(43.879502, floatlogitudeNoFind));

                floatlogitudeNoFind = floatlogitudeNoFind + Convert.ToSingle(0.5);
            }
            this.DataContext = _viewModel;
        }
Example #2
0
        public MarkerDriver(MarkerAssignmentViewModel viewModel, ref double floatlogitudeNoFind)
        {
            InitializeComponent();
            _viewModel = viewModel;
            MapLayer.SetPositionOrigin(this, PositionOrigin.BottomCenter);

            var puntofactoria = new Punto
            {
                //spain latitude 40.4637 north , 3.7492 West
                //coordenad y
                latitudeDouble = _viewModel.Location.Latitude,
                //coordenada x
                longitudeDouble = _viewModel.Location.Longitude
            };

            //esquina de arriba a la izquierda
            var leftup = new Punto
            {
                latitude  = Convert.ToSingle(44.488444),
                longitude = Convert.ToSingle(-10.267331)
            };

            //esquina derecha de arriba
            var rightup = new Punto
            {
                latitude  = Convert.ToSingle(42.476091),
                longitude = Convert.ToSingle(5.416559)
            };

            //esquina de abajo izquierda
            var leftdown = new Punto
            {
                latitude  = Convert.ToSingle(36.199297),
                longitude = Convert.ToSingle(-11.641810)
            };

            //esquina de abajo derecha
            var rightdown = new Punto
            {
                latitude  = Convert.ToSingle(35.3397912),
                longitude = Convert.ToSingle(1.732230)
            };

            //miramos si el punto obtenido está dentro del rectángulo definido
            //si es asi dejamos la factoria en su lugar
            //Pintaremos solo las que podamos mostrar en el mapa
            if (PointInRectangle(puntofactoria, leftup, rightup, leftdown, rightdown))
            {
                localizacion = new Location(_viewModel.Location.Latitude, _viewModel.Location.Longitude);

                // JUAN CASTILLA - No volve a crear el objeto
                //MapLayer.SetPosition(this, new Location(_viewModel.Location.Latitude, _viewModel.Location.Longitude));
                MapLayer.SetPosition(this, new Location(localizacion));
            }
            //si google no sabe colocarlos correctamente los coloca arriba
            else
            {
                MapLayer.SetPosition(this, new Location(44.5, floatlogitudeNoFind));
                floatlogitudeNoFind = floatlogitudeNoFind + Convert.ToSingle(0.5);
            }

            this.DataContext = _viewModel;
        }