コード例 #1
0
 public MarkerClient(MarkerClientViewModel viewModel)
 {
     InitializeComponent();
     _viewModel = viewModel;
     MapLayer.SetPositionOrigin(this, PositionOrigin.BottomCenter);
     new ListViewDragDropManager <Order>(ListClientOrders);
     MapLayer.SetPosition(this, new Location(_viewModel.Client.Location.Latitude, _viewModel.Client.Location.Longitude));
     this.DataContext = _viewModel;
 }
コード例 #2
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;
        }