Esempio n. 1
0
        /// <summary>
        /// Método encargado de Obtener el Mapa de la Ubicación (Dando un Origen, un Destino y el Centro del Destino).
        /// </summary>
        /// <param name="tipoMapa">Tipo de Mapa</param>
        /// <param name="ancho">Ancho del Mapa</param>
        /// <param name="alto">Alto del Mapa</param>
        /// <param name="marcador">Marcador Origen (Etiqueta, Color, Latitud, Longitud) del Mapa</param>
        /// <param name="ubicacion_destino">Poligono Destino (Color, Color Relleno, Tamano, Ubicación y Etiqueta) del Mapa</param>
        /// <param name="centro_destino">Definiendo el Centro del Mapa</param>
        /// <param name="imagen">Parametro de Imagen de Salida</param>
        /// <returns></returns>
        public RetornoOperacion ObtieneMapaUbicacion(TipoMapa tipoMapa, int ancho, int alto, MarcadorMapa marcador_origen,
                                                     PoligonoMapa ubicacion_destino, MarcadorMapa centro_destino, out Bitmap imagen)
        {
            //Declarando Objeto de Retorno
            RetornoOperacion result         = new RetornoOperacion();
            string           url_parametros = "";

            imagen = null;

            //Validando que existan Alto y Ancho
            if (ancho > 0 && alto > 0)
            {
                //Validando que exista la Ubicación de Destino
                if (ubicacion_destino.ubicacion != SqlGeography.Null)
                {
                    //Creando URL de Petición
                    url_parametros = string.Format("{0}?size={1}x{2}&maptype={3}&{4}&{5}&{6}&key={7}",
                                                   this._url, ancho, alto, traduceTipoMapa(tipoMapa),
                                                   convierteMarcadorCadena(marcador_origen),
                                                   conviertePoligonoCadena(ubicacion_destino),
                                                   convierteMarcadorCadena(centro_destino),
                                                   this._key);

                    //Ejecutando Petición Web
                    result = obtieneRespuestaPeticion(url_parametros, out imagen);
                }
                else
                {
                    //Instanciando Excepción
                    result = new RetornoOperacion("Debe especificar un Destino");
                }
            }
            else
            {
                //Instanciando Excepción
                result = new RetornoOperacion("Valores de Ancho y Alto Invalidos");
            }

            //Devolviendo Resultado Obtenido
            return(result);
        }
Esempio n. 2
0
        /// <summary>
        /// Método encargado de Obtener el Mapa de la Ubicación. (Definiendo un Zoom, marcando una o varias Posiciones en el Mapa)
        /// </summary>
        /// <param name="tipoMapa">Tipo de Mapa</param>
        /// <param name="zoom">Enfoque del Mapa</param>
        /// <param name="ancho">Ancho del Mapa</param>
        /// <param name="alto">Alto del Mapa</param>
        /// <param name="marcador">Marcador (Etiqueta, Color, Latitud, Longitud) del Mapa</param>
        /// <param name="imagen">Parametro de Imagen de Salida</param>
        /// <returns></returns>
        public RetornoOperacion ObtieneMapaUbicacion(TipoMapa tipoMapa, int zoom, int ancho, int alto, MarcadorMapa marcador,
                                                     out Bitmap imagen)
        {
            //Declarando Objeto de Retorno
            RetornoOperacion result = new RetornoOperacion();

            imagen = null;

            //Si el Zoom es mayor a 0
            if (zoom > 0)
            {
                //Validando que existan Alto y Ancho
                if (ancho > 0 && alto > 0)
                {
                    //Validando Marcador
                    if (marcador.ubicacion != SqlGeography.Null)
                    {
                        //Creando URL de Petición
                        string url_parametros = string.Format("{0}?zoom={1}&size={2}x{3}&maptype={4}&{5}&key={6}",
                                                              this._url, zoom, ancho, alto, traduceTipoMapa(tipoMapa), convierteMarcadorCadena(marcador), this._key);

                        //Ejecutando Petición Web
                        result = obtieneRespuestaPeticion(url_parametros, out imagen);
                    }
                    else
                    {
                        //Instanciando Excepción
                        result = new RetornoOperacion("Debe de Especificar una Ubicación");
                    }
                }
                else
                {
                    //Instanciando Excepción
                    result = new RetornoOperacion("Valores de Ancho y Alto Invalidos");
                }
            }
            else
            {
                //Instanciando Excepción
                result = new RetornoOperacion("Debe de Especificar el Valor Zoom");
            }

            //Devolviendo Resultado Obtenido
            return(result);
        }
Esempio n. 3
0
        /// <summary>
        /// Método encargado de Convertir el Marcador en Cadena para la Petición
        /// </summary>
        /// <param name="marcador">Marcador Deseado</param>
        /// <returns></returns>
        private string convierteMarcadorCadena(MarcadorMapa marcador)
        {
            //Declarando Objeto de Retorno
            string result = "";

            //Validando que exista una Ubicación
            if (marcador.ubicacion != SqlGeography.Null)
            {
                //Validando tipo de Ubicación
                switch (marcador.ubicacion.STGeometryType().Value)
                {
                case "Point":
                {
                    //Creando Marcador
                    result = string.Format("markers=color:0x{0}%7Clabel:{1}%7C{2},{3}",
                                           marcador.color.R.ToString("X2") + marcador.color.G.ToString("X2") + marcador.color.B.ToString("X2"),
                                           marcador.etiqueta.ToString().ToUpper().Equals("") ? "A" : marcador.etiqueta.ToString().ToUpper(),
                                           marcador.ubicacion.Lat, marcador.ubicacion.Long);
                    break;
                }

                case "LineString":
                case "CompoundCurve":
                case "Polygon":
                case "CurvePolygon":
                {
                    //Obteniendo Conjunto de puntos
                    SqlGeography[] puntos_ubicacion = DatosEspaciales.ObtienePuntosPolygon(marcador.ubicacion, (int)marcador.ubicacion.STSrid.Value, out result);

                    //Validando Resultado Positivo
                    if (result.Equals(""))
                    {
                        //Asignando Atributo Generales
                        result = string.Format("markers=color:0x{0}%7Clabel:{1}",
                                               marcador.color.R.ToString("X2") + marcador.color.R.ToString("X2") + marcador.color.R.ToString("X2"),
                                               marcador.etiqueta.ToString().ToUpper().Equals("") ? "A" : marcador.etiqueta.ToString().ToUpper());

                        //Recorriendo Puntos
                        foreach (SqlGeography punto in puntos_ubicacion)
                        {
                            //Validando que sea de Tipo Punto
                            if (punto.STGeometryType().Value.Equals("Point"))
                            {
                                //Asignando Ubicación en Punto
                                result += string.Format("%7C{0},{1}", punto.Lat, punto.Long);
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                    else
                    {
                        //Limpiando Retorno
                        result = "";
                    }

                    break;
                }
                }
            }

            //Devolviendo Resultado Obtenido
            return(result);
        }