miércoles, 15 de agosto de 2012

lunes, 12 de septiembre de 2011

PL/SQL Oracle

Antes de introducirnos en el tema he agregado este documento que me encontre por ahy nos va a dar un buen panorama:


comercio electronico

https://sites.google.com/site/florencecomercioe/

sábado, 18 de diciembre de 2010

Postgres y MapServer

GENERALIDADES POSTGIS

ž  PostGIS: Es una extensión al sistema de base de datos objeto-relacional PostgreSQL.
ž  Permite el uso de objetos GIS(Geographic information systems).
ž  PostGIS incluye soporte para índices GiST basados en R-Tree, y funciones básicas para el análisis de objetos GIS.
ž  Esta creado por Refractions Research Inc, como un proyecto de investigación de tecnologías de bases de datos espaciales. Esta publicado bajo licencia GNU.
ž  Con PostGIS podemos usar todos los objetos que aparecen en la especificación OpenGIS
ž  como puntos, lineas, polígonos, multilíneas, multipuntos, y colecciones geométricas.

OBJETOS GIS

ž  PostGIS: Es una extensión al sistema de base de datos objeto-relacional PostgreSQL.
ž  Permite el uso de objetos GIS(Geographic information systems).
ž  PostGIS incluye soporte para índices GiST basados en R-Tree, y funciones básicas para el análisis de objetos GIS.
ž  Esta creado por Refractions Research Inc, como un proyecto de investigación de tecnologías de bases de datos espaciales. Esta publicado bajo licencia GNU.
ž  Con PostGIS podemos usar todos los objetos que aparecen en la especificación OpenGIS
ž  como puntos, lineas, polígonos, multilíneas, multipuntos, y colecciones geométricas.

CREACION DE TABLA ESPACIAL

Para crear una tabla con datos espaciales realizamos dos pasos:
  1. Creamos una tabla no espacial.
Ejemplo: CREATE TABLE CALLES_GEOM(ID int4,NAME varchar(25))
  1. Añadimos una columna(campo) espacial a la tabla usando la función
AddGeometryColumn de OpenGIS.
AddGeometryColumn(<db_name>,<table_name>,<column_name>,<srid>,<type>,<dimension>)
Ejemplo:
SELECT AddGeometryColumn ( 'calles_db', 'calles_geom', 'geom', 423, 'LINESTRING',2 )

MAPSERVER Y POSTGRES

Hoy en día todo mundo está interesado en relacionar las actividades comerciales, sociales etc. con los sistemas de posicionamiento global GPS, una forma sencilla y sobre todo economía es usar MAPSERVER ya que es gratuita!
MapServer es un entorno de desarrollo en código abierto (Open Source Initiative) para la creación de aplicaciones SIG en Internet/Intranet con el fin de visualizar, consultar y analizar información geográfica a través de la red mediante la tecnología Internet Map Server (IMS).



Algo muy importante es definir el sistema de coordenadas o SRID que utiliza cada país. Si es para el salvador siga los siguientes pasos.


1.Abre el pgAmdin 3 y en la tabla de su bd llamada spatial_ref_sys


inserte un nuevo registro mediante este sql:

INSERT into spatial_ref_sys (srid, auth_name, auth_srid, proj4text, srtext) values ( 96796, 'sr-org', 96796, '+proj=lcc +lat_1=14.25 +lat_2=13.3166667 +lat_0=13.7833333 +lon_0=-89 +x_0=500000 +y_0=295809.184 +ellps=clrk66 +datum=NAD27 +units=m +no_defs ', 'PROJCS["NAD27 / El Salvador",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982138982,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["latitude_of_origin",13.7833333],PARAMETER["central_meridian",-89],PARAMETER["scale_factor",0.99989906],PARAMETER["false_easting",500000],PARAMETER["false_northing",295809.184],PARAMETER["standard_parallel_1",14.25],PARAMETER["standard_parallel_2",13.3166667],AUTHORITY["EPSG","32062"],AXIS["X",EAST],AXIS["Y",NORTH]]');



Una vez hecho esto,


2. Cuando ud. cree el campo espacial para su tabla espacial usando

SELECT AddGeometryColumn('la_bd','nomtabla','campoespacial','-1','POINT',2);
asegurese de colocar el srid(parametro q va despues del campoespacial) = -1

luego de eso en el archivo .map coloque estas lineas antes del primer layer.

PROJECTION


"proj=lcc"
"lat_1=14.25"
"lat_2=13.3166667"
"lat_0=13.7833333"
"lon_0=-89"
"x_0=500000"
"y_0=295809.184"
"ellps=clrk66"
"units=m"
"no_defs"

END


3. Por ultimo en el layer del archivo map donde está la capa de los puntos obtenidos de postgresql coloque esta linea


PROJECTION

"init=epsg:4326"
END


Esta es la proyeccion para el sistema de coordenadas wgs84 q se ocupa para El Salvador.

Agregar columna de tipo en grid

Si tu problema ha sido el darle el origen de los datos a una columna de tipo DataGridViewComboBoxColumn aquí esta una funional solución, primero que nada, cree las colunas desde las propiedades del grid agregar columnas pero en este ejemplo te mostrare como rear directamente la columna y agregarle un datasource.
El siguiente codigo debes utilizarlo en el evento load ya que este evento se realiza cuando carga y muestra la tabla por lo que el origen  o llenado de datos del comboBox debes hacerlo desde este vento.
' Creamos una columna tipo DataGridViewComboBoxColumn, el 11 indica la posicion de la columna
Dim col As DataGridViewColumn = Me.Grid1.Columns(11)
Dim comboColumn As New DataGridViewComboBoxColumn
' Configuramos la columna tipo ComboBox
comboColumn.HeaderText = col.HeaderText
comboColumn.DropDownWidth = 260
comboColumn.Width = col.Width
' el objeto DataTable que utilizaremos para rellenar los datos
comboColumn.DataSource = objconec.TablaConsulta("SELECT concat(Cnit_prov,'-',Cnom_com_prov) as proveedor,Cnit_prov as NIT FROM proveedor;")
'Si te fijas el Datasourse unicamente llamo a un metodo delarado dentro de una lase externa el cual compartire en otra ocuación no te preocupes puedes crear tu DataTable en lugar de esta funcion.
comboColumn.DisplayMember = "proveedor"
'Dato que se mostrara
comboColumn.ValueMember = "NIT"
'valor q tomara
' Eliminamos la columna tipo DataGridViewTextBoxColumn
Me.Grid1.Columns.Remove(col)
' Insertamos la nueva columna en la posición 11
Grid1.Columns.Insert(11, comboColumn)

Si la columna no es eliminada tendras 2 columnas, una sin origen de datos ok.