コード例 #1
0
        public void ZMX_TrazarRuta()
        {
            PropertyInfo pCoordenadaOrigen  = ZMX_LocalidadOrigen.GetType().GetProperty(ZMX_PropiedadCoordenadas, BindingFlags.Instance | BindingFlags.Public);
            PropertyInfo pCoordenadaDestino = ZMX_LocalidadDestino.GetType().GetProperty(ZMX_PropiedadCoordenadas, BindingFlags.Instance | BindingFlags.Public);

            String coordenadasOrigen  = pCoordenadaOrigen.GetValue(ZMX_LocalidadOrigen).ToString();
            String coordenadasDestino = pCoordenadaOrigen.GetValue(ZMX_LocalidadDestino).ToString();

            //obteniendo los nombres
            PropertyInfo pNombreOrigen  = ZMX_LocalidadOrigen.GetType().GetProperty(ZMX_PropiedadLocalidadNombre, BindingFlags.Instance | BindingFlags.Public);
            PropertyInfo pNombreDestino = ZMX_LocalidadDestino.GetType().GetProperty(ZMX_PropiedadLocalidadNombre, BindingFlags.Instance | BindingFlags.Public);

            String NombreOrigen  = pNombreOrigen.GetValue(ZMX_LocalidadOrigen).ToString();
            String NombreDestino = pNombreDestino.GetValue(ZMX_LocalidadDestino).ToString();

            Location locationOrigen  = ConvertCoordenadasStringToLocation(coordenadasOrigen);
            Location locationDestino = ConvertCoordenadasStringToLocation(coordenadasDestino);


            //se agregan los pines para cada location ORIGEN
            if (pinOrigen == null)
            {
                pin_layer.Children.Remove(pinOrigen);
                pinOrigen              = new ZMXUC_MapaPin();
                pinOrigen.ZMX_Icono    = Iconos.IconAwesomeSIZ.AwesomeIcons.fa_circle_o;
                pinOrigen.ZMX_Color    = panelBusqueda.ZMX_Color;
                pinOrigen.ZMX_Location = locationOrigen;
                pinOrigen.ZMX_Height   = tamOrigen;
                pin_layer.AddChild(pinOrigen, pinOrigen.ZMX_Location);
            }
            //DESTINO
            if (pinDestino == null)
            {
                pin_layer.Children.Remove(pinDestino);
                pinDestino              = new ZMXUC_MapaPin();
                pinDestino.ZMX_Icono    = Iconos.IconAwesomeSIZ.AwesomeIcons.fa_map_marker;
                pinDestino.ZMX_Color    = panelBusqueda.ZMX_Color;
                pinDestino.ZMX_Location = locationDestino;
                pin_layer.AddChild(pinDestino, pinDestino.ZMX_Location);
            }
            //se actualizan los buscadores
            panelBusqueda.ZMX_SetLocalidadOrigen(NombreOrigen);
            panelBusqueda.ZMX_SetLocalidadDestino(NombreDestino);

            if (pinOrigen != null && pinDestino != null)
            {
                route_layer.Children.Clear();
                CalcularRuta(pinOrigen.ZMX_Location, pinDestino.ZMX_Location);
                //map.Center = new Location(pinOrigen.ZMX_Location.Latitude, pinOrigen.ZMX_Location.Longitude);
                //map.ZoomLevel = 12;
            }
        }
コード例 #2
0
        private void AgregarPinMapaPorBusqueda(Location pinLocation, object localidadSeleccionada)
        {
            // The pushpin to add to the map.
            ZMXUC_MapaPin pin = new ZMXUC_MapaPin();

            pin.ZMX_Color    = panelBusqueda.ZMX_Color;
            pin.ZMX_Location = pinLocation;

            if (panel_seBuscaOrigen)
            {
                pinOrigen            = pin;
                pinOrigen.ZMX_Height = tamOrigen;
                pinOrigen.ZMX_Icono  = Iconos.IconAwesomeSIZ.AwesomeIcons.fa_circle_o;
                pin_layer.AddChild(pin, pin.ZMX_Location);

                zmx_LocalidadOrigen = localidadSeleccionada;

                PropertyInfo piOrigen = ZMX_LocalidadOrigen.GetType().GetProperty(ZMX_PropiedadLocalidadNombre, BindingFlags.Instance | BindingFlags.Public);
                panelBusqueda.ZMX_SetLocalidadOrigen(piOrigen.GetValue(ZMX_LocalidadOrigen).ToString());

                ZMX_CambioUbicacionOrigen(this, ConvertCoordenadasLocationToString(pin.ZMX_Location), localidadSeleccionada);
            }
            else
            {
                pinDestino = pin;

                zmx_LocalidadDestino = localidadSeleccionada;

                pin_layer.AddChild(pin, pin.ZMX_Location);

                PropertyInfo piDestino = ZMX_LocalidadDestino.GetType().GetProperty(ZMX_PropiedadLocalidadNombre, BindingFlags.Instance | BindingFlags.Public);
                panelBusqueda.ZMX_SetLocalidadDestino(piDestino.GetValue(ZMX_LocalidadDestino).ToString());

                ZMX_CambioUbicacionDestino(this, ConvertCoordenadasLocationToString(pin.ZMX_Location), localidadSeleccionada);
            }

            if (pinOrigen != null && pinDestino != null)
            {
                ZMX_TrazarRutaPorPin();
            }

            panel_esPorBusquedaPanel = false;
        }
コード例 #3
0
        private void AgregarPinAMapa(Location pinLocation, object localidad)
        {
            if (!ZMX_PermiteMarcarPuntosEnMapa)
            {
                return;
            }

            if (ZMX_SeleccionoUbicacion != null)
            {
                ZMX_SeleccionoUbicacion(this, coordinateTostring(pinLocation));
                panel.ZMX_Coordenadas = coordinateTostring(pinLocation);
            }

            // The pushpin to add to the map.
            ZMXUC_MapaPin pin = new ZMXUC_MapaPin();

            pin.ZMX_Color    = panelBusqueda.ZMX_Color;
            pin.ZMX_Location = pinLocation;

            if (panelBusqueda.Visibility == Visibility.Visible)
            {
                if (pinOrigen != null && pinDestino != null)
                {
                    pin_layer.Children.Remove(pinOrigen);
                    pin_layer.Children.Remove(pinDestino);
                    pinOrigen            = null;
                    pinDestino           = null;
                    ZMX_LocalidadOrigen  = null;
                    ZMX_LocalidadDestino = null;
                    route_layer.Children.Clear();
                }


                if (pinOrigen == null)
                {
                    pinOrigen            = pin;
                    pinOrigen.ZMX_Height = tamOrigen;
                    pinOrigen.ZMX_Icono  = Iconos.IconAwesomeSIZ.AwesomeIcons.fa_circle_o;
                    pin_layer.AddChild(pin, pin.ZMX_Location);

                    zmx_LocalidadOrigen = localidad;

                    PropertyInfo piOrigen = ZMX_LocalidadOrigen.GetType().GetProperty(ZMX_PropiedadLocalidadNombre, BindingFlags.Instance | BindingFlags.Public);
                    panelBusqueda.ZMX_SetLocalidadOrigen(piOrigen.GetValue(ZMX_LocalidadOrigen).ToString());

                    ZMX_CambioUbicacionOrigen(this, ConvertCoordenadasLocationToString(pin.ZMX_Location), localidad);

                    return;
                }

                if (pinDestino == null)
                {
                    pinDestino = pin;

                    zmx_LocalidadDestino = localidad;

                    pin_layer.AddChild(pin, pin.ZMX_Location);

                    PropertyInfo piDestino = ZMX_LocalidadDestino.GetType().GetProperty(ZMX_PropiedadLocalidadNombre, BindingFlags.Instance | BindingFlags.Public);
                    panelBusqueda.ZMX_SetLocalidadDestino(piDestino.GetValue(ZMX_LocalidadDestino).ToString());

                    ZMX_CambioUbicacionDestino(this, ConvertCoordenadasLocationToString(pin.ZMX_Location), localidad);

                    ZMX_TrazarRutaPorPin();
                }
            }
            else
            {
                pin_layer.Children.Remove(pinOrigen);
                pin_layer.AddChild(pin, pin.ZMX_Location);
                pinOrigen = pin;
            }
        }