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; }
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; }