Beispiel #1
0
 public MarkerFactory(MarkerFactoryViewModel viewModel)
 {
     InitializeComponent();
     _viewModel = viewModel;
     MapLayer.SetPositionOrigin(this, PositionOrigin.BottomCenter);
     MapLayer.SetPosition(this, new Location(_viewModel.Location.Latitude, _viewModel.Location.Longitude));
     this.DataContext = _viewModel;
 }
Beispiel #2
0
        public MarkerFactory(MarkerFactoryViewModel 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;
        }