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