Observatory of Presidential Elections – Colombia 2010

March 5, 2010 – 7:18 pm
Tags: , ,

Observatory of Presidential Elections - Colombia 2010

Observatory of Presidential Elections - Colombia 2010

Online Link: http://elecciones.gkudos.com/

The application Observatorio Elecciones Colombia 2010 (Observatory of Presidential Elections – Colombia 2010)  joins together different sources of information from the web that publish news about several Colombian political facts related to the presidential candidates and pre-candidates. For its representation on the map, the application gets the geographical location, candidates’ names, political party and some relevant topics posted in the news which are extracted from newspapers, magazines, social networks like Twitter, Facebook or even their personal web pages.

With the whole extracted information, the user can make an endless number of combinations that allows him to put together several kind of analysis like: Most frequent topics of each one of the pre-candidates, medias that post the most information about related subjects, possible routes of the candidates across the country along their political campaign, names of the candidates and pre-candidates that are more frequently in some states of the country, among others.

Search by Political Party

Search by Political Party

Read the rest of this entry »

  • Share/Bookmark

Observatorio Elecciones Colombia 2010

March 5, 2010 – 6:42 pm
Tags: , ,

Observatorio Elecciones Colombia 2010

Ver aplicación: http://elecciones.gkudos.com/

La aplicación Observatorio Elecciones Colombia 2010 combina diferentes fuentes de información de la Web que publican noticias acerca de acontecimientos políticos colombianos relacionados con los candidatos y precandidatos presidenciales. Para su representación en el mapa, la aplicación extrae la ubicación geográfica de cada una de las noticias, el nombre del candidato, su afiliación política y temas mencionadas por los candidatos en sus intervenciones públicas o colocadas en redes sociales como Twitter y Facebook o en sus páginas personales.

Con toda la información extraída, el usuario puede realizar un sin numero de combinaciones que le permiten realizar varios tipos de análisis tales como: los temas que mas recurrentes de cada uno de los precandidatos, los canales de comunicación que mas noticias publican al respecto, los posibles itinerarios de los candidatos y precandidatos durante su campaña política, los candidatos y precandidatos que mas van a un determinado departamento, entre otros.

Búsqueda por Partido

Búsqueda por Partido

Read the rest of this entry »

  • Share/Bookmark

Geo Event Finder: Encuentre eventos musicales cerca a usted!

February 22, 2010 – 3:43 pm
Tags: , , ,

geoEventFinder_01_b

Ver aplicación:  http://geoevents.gkudos.com/

Geo Event Finder http://geoevents.gkudos.com/ ,  es un mashup (Un Mashup es una aplicación que combina datos o funcionalidades de dos o más ubicaciones con el fin de crear un nuevo servicio) que permite localizar de forma interactiva eventos musicales que ocurren alrededor del mundo. El usuario puede encontrar eventos musicales utilizando herramientas tales como búsqueda por nombre de artista, búsqueda por nombre de ciudad o selección de un área específica sobre el mapa.

El usuario puede ubicar eventos musicales específicos, consultar información detallada sobre el lugar del evento, disponibilidad de tiquetes, información detallada de los artistas y videos en línea de los artistas que intervienen en el evento. Adicionalmente el usuario puede interactuar con la información a través de la exploración a través de las diferentes herramientas que le provee el mapa interactivo disponible como base de la aplicación.

geoEventFinder_03_b

Esta aplicación utiliza información e interfaces de programación de recursos diversos tales como:

geoEventFinder_02_b

Visite la aplicación en la siguiente dirección:  http://geoevents.gkudos.com/

  • Share/Bookmark

Geo Event Finder: Find musical events near you!

February 22, 2010 – 3:30 pm
Tags: , , ,

geoEventFinder_01_b

Online Link: http://geoevents.gkudos.com/

Geo Event Finder, http://geoevents.gkudos.com/ , is a Mashup (A Mashup is a web page or application that combines data or functionality from two or more external sources to create a new service)  that allows to locate musical events around the world using interactive tools on the screen as searching by artist name, city name or selecting an area over the map.

The user interface also allows to get detailed information of event location, artist biography, musical genres,  images, videos (using youtube)  and online links to different resources as ticket selling sites.   In addition, a user can interact with the application using map tools as zoom, re-center, a reference map and satellite and street basemaps.

geoEventFinder_03_b

This application uses different data sources and API’s such as :

geoEventFinder_02_b

Online Link: http://geoevents.gkudos.com/

  • Share/Bookmark

XVIII Festival GNU/Linux en la Universidad Nacional de Colombia

November 26, 2009 – 11:52 pm
Tags:

El proximo Jueves 3 de Diciembre de 2009 se llevará a cabo el decimo-octavo Festival GNU/Linux, en el auditorio del edificio de Ciencia y Tecnología en la Ciudad Universitaria de Bogotá.

Este evento desea fomentar el desarrollo académico y cultural de los estudiantes de la Universidad Nacional y del público en general, de igual forma se promoverá el desarrollo y la utilización del sofware libre.

Kudos Ltda. estará presente en el evento con la presentación “Sistemas de Información Geográfica con Software Libre” (Próximamente más detalles)

Más información en https://lsl.unal.edu.co/fl18/

  • Share/Bookmark

Modelamiento en Web de Geoinformación de la Amazonía Colombiana con el uso de Software Libre

November 6, 2009 – 8:22 pm
Tags: , , , ,

En el marco de la Semana de Geomática del IGAC (2009) se presentó el proyecto SIAT-AC (Sistema de Información Ambiental Territorial de la Amazonía Colombiana) desarrollado durante el presente año por Kudos Ltda para el SINCHI.

El SIAT-AC ss un proceso interinstitucional organizado como red de personas y entidades, basado en acuerdos y objetivos comunes para gestionar información ambiental de la Amazonía Colombiana, para apoyar con los datos y productos de información a los tomadores de decisiones en los procesos regionales para alcanzar el desarrollo sostenible.

El sistema fué desarrollado con herramientas de software libre tales como Mapserver, Postgresql, Postgis, PHP y Adobe Flex 3 SDK.

A continuación los Slides presentados durante la conferencia:

En las siguientes imágenes se pueden apreciar algunas de las características del sistema:

- Adición dinámica de Capas de Información Geográfica al visor espacial:

Adición de Capas

- Clasificación Temática Dinámica De Indicadores

SinchiClasificacion

- Exportación de Datos a Google Earth:
SinchiGoogleEarth

- Ejecución Interactiva de Modelos de Análisis Geoespacial:

SinchiPasosModelo

  • Share/Bookmark

Kudos Ltda. en la Semana de Geomática IGAC 2009

October 26, 2009 – 5:49 pm
Tags: , , ,

Durante la presente semana (26 al 30 de Octubre del 2009) el IGAC (Instituto Geográfico Agustn Codazzi) está organizando la Semana de Geomática del 2009 con el título de “Acceso al Conocimiento Geoespacial”.

La semana de Geomática tiene como objetivo dar a conocer los avances nacionales e internacionales  más recientes en campos tales como los Sistemas de Información Geográfica, la percepción remota, los sistemas de posicionamiento satelital y las infraestructuras de datos espaciales.

En el marco de dichas conferencias Kudos Ltda. estará presente con dos proyectos desarrollados durante los últimos meses:

  • “Modelamiento en web de geoinformación de la Amazonía Colombiana utilizando Software Libre” a cargo del Agrólogo Uriel Gonzalo Murcia García (Instituto Amaznico de Investigaciones Cientficas SINCHI – Colombia) y los Ingenieros  Carlos Gustavo Infante Sepúlveda  y Hellmuth Vargas (Kudos Ltda. – Colombia)   (  Fecha de la Presentación: Jueves 29 de Octubre a las 8:45 am en el auditorio de Ciencia y Tecnología del IGAC. )
  • “SIGISOT, Sistemas de Información Geográfica en la Gestión municipal” a cargo de la agróloga Doris Serrano Universidad de Córdoba – Colombia.   (Fecha de la Presentación: Viernes 30 de Octubre 2:45 pm en el Auditorio de Suelos del IGAC)
  • Share/Bookmark

Se publica QGIS 1.3.0 ‘Mimas’

September 26, 2009 – 12:06 pm
Tags:

Poco tiempo despueś de la publicación de la publicación de QGIS 1.2.0 aparece  ‘Mimas’ (QGIS 1.3.0).

Entre otros cambios se incluye lo siguiente:

  • Nuevas funcionalidades y mejoras al plugin de open street map.
  • Incorporación de librería de análisis
  • Nuevas herramientas para análisis raster
  • Nuevas herramientas tales como “identify a través de múltiples capas”.

Más información en el siguiente enlace: Announcing the release of QGIS 1.3.0 ‘Mimas’

  • Share/Bookmark

Publicada la versión 1.2.0 de Quantum GIS

September 7, 2009 – 11:07 am
Tags: ,

La organización OSGEO anunció la semana pasada la disponibilidad de la versión 1.2.0 del software para Sistemas de Información Geográfica Quantum GIS (QGIS) . Esta nueva versión incluye las siguientes mejoras notables

  • Mejoras notables en las herramientas de edición de elementos multipartes, huecos, nodos. Se agregó la opción deshacer/rehacer en la edición de capas vectoriales.
  • Nuevo plugin de OpenStreetMap para editar contenidos y contribuir datos al proyecto directamente desde QGIS
  • Nueva extensión FTools con herramientas de geoprocesamiento mejoradas
  • Mejoras al plugin de interpolación
  • El shell GRASS ha sido remplazado por uno mejorado con muchas correcciones y actualizaciones
  • Nueva opción de búsqueda en las tablas de atributos y asignación de alias de campos
  • Las conexiones PostgreSQL ahora pueden encriptarse con SSL
  • Mejoras al soporte de simbología raster y de fuentes

También se anunció la disponibilidad del Manual de Usuario actualizado para esta versión, en un esfuerzo colaborativo de un equipo de desarrolladores, documentadores y patrocinadores voluntarios.

QGIS 1.2.0 para Windows

  • Share/Bookmark

Creando un lector de GeoRSS con Adobe Flex 3

September 6, 2009 – 1:21 pm
Tags: , , ,

Uno de los ejemplos tradicionales que se desarrollan durante el aprendizaje de Flex 3 y Actionscript 3 es el de la creación de un lector de RSS. En el presente artículo se presenta una extensión de dicho ejemplo adicionando la capacidad de interpretar infomación publicada en el formato GeoRSS.

  • Qué es un RSS?

RSS es una familia de formatos de fuentes web codificados en XML. Se utiliza para suministrar a suscriptores de información actualizada frecuentemente. El formato permite distribuir contenido sin necesidad de un navegador, utilizando un software diseñado para leer estos contenidos RSS (agregador).

  • Qué es un GeoRSS?

GeoRSS es un conjunto de estándares para representar información geográfica mediante el uso de capas y está construido dentro de la familia de estándares RSS.

  • Cómo convertir un RSS en GeoRSS?

Si usted no dispone de una aplicación para convertir sus RSS en GeoRSS puede utilizar Geonames para realizar dicha traducción de formato.
El “RSS to GeoRSS Converter” de Geonames busca posibles ubicaciones (sitios geogràficos) en el texto del  rss.  Si alguna ubicación geográfica relevante es encontrada, adiciona la latitud y longitud al RSS durante la codificación a GeoRSS.

  • Que requiero para implementar el lector de GeoRSS utilizando Adobe Flex 3?

- Flex SDK

- Google Maps Flash API

  • Donde puedo descargar el código fuente del ejemplo?

Puede descargar el código fuente desde esta ubicación.

  • Que ejemplos de programación flex / actionscript  puedo encontrar en el código?

- Carga de datos en XML utilizando el objeto HTTPService

- Despliegue de datos utilizando componentes ComboBox, Datagrid e Image

- Formatear etiquetas de un ComboBox utilizando labelFunction.

- Despliegue de información HTML en el tooltip de la aplicación.

- Ejemplo básico de carga de Markers en Google Maps para Adobe Flex.

- Procesamiento de datos publicados en formatos XML, RSS y GeoRSS.

- Utilizar el servicio “Rss to GeoRSS” de Geonames con Flex y Actionscript.

  • Puedo ver en línea el código fuente del ejemplo y la aplicación resultante?

A continuación puede ver tanto la aplicación como el código fuente relacionado.






Código fuente del archivo Rss.mxml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
	layout="vertical"
	applicationComplete="onComplete();" 
	creationComplete="loadSourcesService.send();">
<mx:Style>
	Application{
		background-color:#ffffff;
		paddingBottom:5; 
		paddingLeft:5;
		paddingRight:5; 
		paddingTop:5;
	}
</mx:Style>	
<mx:Script>
	<![CDATA[
		import com.google.maps.controls.ZoomControlOptions;
		import mx.collections.ArrayCollection;
		import com.google.maps.overlays.MarkerOptions;
		import com.google.maps.overlays.Marker;
		import ejemplo.HTMLToolTip;
		import mx.managers.ToolTipManager;
		import flash.net.navigateToURL;
		import mx.controls.List;
		import mx.controls.Alert;
		import mx.events.ListEvent;
		import mx.rpc.events.FaultEvent;
		import mx.rpc.events.ResultEvent;
		import com.google.maps.MapType;
		import com.google.maps.LatLng;
		import com.google.maps.controls.PositionControl;
		import com.google.maps.controls.MapTypeControl;
		import com.google.maps.controls.ZoomControl;
		import com.google.maps.Map;
		import com.google.maps.MapEvent;
 
		public var map:Map;
 
	    //se invoca en el evento 'creationComplete' 
		private function onComplete() :void{
			//configuración del tooltip para despliegue de HTML
			ToolTipManager.toolTipClass = HTMLToolTip; 
		}
 
		//Manejo de la respuesta del HTTPService loadSourcesService
		private function loadSourcesService_result(evt:ResultEvent):void {
		    var resultObj:Object = evt.result;
		    sourcesCb.dataProvider = resultObj.xml.lista.item;
		}
 
		//Iniciar el Mapa
		private function startMap(event:Event):void {
			map = new Map();
			//Key de google Maps: http://code.google.com/intl/es-ES/apis/maps/documentation/flash/
			map.key = map.key = "ABQIAAAAzP_X84EVzii7yEPHkonPNRRMdub8RYo7ePgaMtJOPXtU0LG1eBQz8J6xJi_XxLQ80ti-WlGkph7kVw";
			map.addEventListener(MapEvent.MAP_READY, onMapReady);
 
			var zoomopts:ZoomControlOptions = new ZoomControlOptions();
			zoomopts.hasScrollTrack = false;
			var zoomCtrl:ZoomControl = new ZoomControl(zoomopts);
			map.addControl(zoomCtrl);
 
			// add MapType Controller
			var mapTypeCtrl:MapTypeControl = new MapTypeControl();
			map.addControl(mapTypeCtrl);
 
			// add Position Controller
			var posCtrl:PositionControl = new PositionControl();
			map.addControl(posCtrl);
			mapContainer.addChild(map);
		}
 
		private function resizeMap(event:Event):void {
			map.setSize(new Point(mapContainer.width, mapContainer.height));
		}
 
		private function onMapReady(event:MapEvent):void {
			//setCenter:  Parámetros: Coordenada Punto Central, Nivel de Zoom, Tipo de Mapa
			map.setCenter(new LatLng(4,-73),3, MapType.NORMAL_MAP_TYPE);
			//Habilita el Zoom Continuo
			map.enableContinuousZoom();
			//Habilita el Scroll del mapa utilizando el Mouse 
			map.enableScrollWheelZoom();
		}
 
		// Se invoca cuando el usuario cambia de opcion en el combo box
		// se obtiene el rss y se pasa al HTTPService 'loadRssService'
		private function getFuenteNombre ( event: ListEvent) : void{					
			if(sourcesCb.selectedItem){
				//configura la llamada al servicio geonames que recibe como parámetro
				//la url del rss que se va a georreferenciar
				//http://www.geonames.org/rss-to-georss-converter.html
				loadRssService.url= "http://ws.geonames.org/rssToGeoRSS?feedUrl="+sourcesCb.selectedItem.url;
				loadRssService.send();
				//elimina todos los markers del mapa
				map.clearOverlays();
				rssList.dataProvider = new ArrayCollection();
			}
		}
 
		//Esta funcion se llama cuando cambia el DataGrid, tiene como objetivo
		//establecer el contenido a desplegar en la descripcion, tomandolo del xml.
		private function getPage(event: ListEvent) : void{
			var selectedEq:Object = rssList.selectedItem;
			titulo.text = rssList.selectedItem.title;
			contenido.htmlText=rssList.selectedItem.description;
			//Alert.show(rssList.selectedItem["encoded"])
			mas.visible=true;
			var latlng:LatLng = new LatLng(Number(rssList.selectedItem.lat),Number(rssList.selectedItem.long));
			//lo hace solo cuando geonames devuelva la latitud y la longitud
			if(rssList.selectedItem.lat!=undefined||rssList.selectedItem.long!=undefined){
				var marker:Marker = generateMarker(selectedEq); 
				map.setCenter(latlng , 3);	
				map.addOverlay(marker);
			}
		}
 
		private function generateMarker(item:Object ):Marker{
			//crea un objeto de tipo LatLng
				var latlng:LatLng = new LatLng(Number(item.lat),Number(item.long));				
				//tooltip del Marker  
				var markerOptions : MarkerOptions= new MarkerOptions();
			    markerOptions.tooltip = item.title;
			    var marker : Marker = new Marker( latlng, markerOptions );
				return marker;
		}
 
		//Esta funcion se llama cuando se hace click en el enlace 
		//que me envia a la pagina de la fuente, coge el campo link del xml.
		private function getUrl() : void{
			//configura el request del LinkButton con el objeto link del xml 
			var u:URLRequest = new URLRequest(rssList.selectedItem.link);
        	navigateToURL(u,"_blank");
		}
 
		//Se llama cuando hay un resultado en HTTPService loadRssService
		protected function onServiceResult(event:ResultEvent):void {
			rssList.dataProvider = event.result.rss.channel.item;
			//configura la ubicacion de la imagen con el campo image.url
			imagen.source=event.result.rss.channel.image.url;
			titulo.text = "";
			contenido.htmlText='Seleccione una Noticia';
			mas.visible=false;
		}
 
 
 
		//Se llama cuando hay un fault HTTPService loadEQService y en HTTPService loadRssService
		private function load_fault(evt:FaultEvent):void {
			Alert.show('Ocurrió un Error en el Servidor', evt.fault.faultString);
		}
 
		private function  sourcesCbLabelFunction(item:Object):String{
			return item.nombre + " ("+item.pais+")";
		}
 
	]]>
</mx:Script>
	<mx:HTTPService id="loadSourcesService"
	            url="sources.xml"
	            resultFormat="object"
	            result="{loadSourcesService_result(event);}"
	            fault="load_fault(event);"
	            showBusyCursor="true" />
 
	<mx:HTTPService id="loadRssService"
	            resultFormat="object"
	            result="onServiceResult(event);"
	            fault="load_fault(event);"
	            showBusyCursor="true" />
 
	<mx:HDividedBox width="100%" height="100%">
		<mx:Panel id="panel1" width="50%" height="100%" title="Lector de GeoRSS">
			<mx:VBox id="box"  height="100%" width="100%">
				<mx:HBox width="100%">			
					<mx:ComboBox id="sourcesCb"  textAlign="left" width="100%"  
						labelFunction="sourcesCbLabelFunction"
						change="getFuenteNombre(event)" rowCount="10"
						prompt="Seleccione una opción..." />
				</mx:HBox>
				<mx:DataGrid id="rssList" width="100%" height="100%"  change="getPage(event)">
					<mx:columns>
						<mx:DataGridColumn dataField="title" headerText="Titular" 
							dataTipField="description" showDataTips="true" />
					</mx:columns>		
				</mx:DataGrid>
			</mx:VBox>
		</mx:Panel>
		<mx:Panel  width="50%" height="100%" title="Detalle de la Noticia">
			<mx:VDividedBox width="100%" height="100%">
				<mx:VBox width="100%" height="30%">
					<mx:HBox width="100%" >
						<mx:Image id="imagen" />
						<mx:LinkButton id="mas" visible="false" label="Ver mas..." click="{getUrl()}"/>	
					</mx:HBox>
					<mx:Text id="titulo" width="100%" fontWeight="bold"/>
					<mx:Text id="contenido" width="100%"/>
				</mx:VBox>
				<mx:VBox width="100%" height="70%">
					<mx:UIComponent id="mapContainer" 
			        initialize="startMap(event);" 
			        resize="resizeMap(event)" 
			        width="100%" height="100%"/>
				</mx:VBox>
			</mx:VDividedBox>	
		</mx:Panel>
	</mx:HDividedBox>
</mx:Application>

Código fuente del archivo ejemplo/HTMLToolTip.as:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package ejemplo
{
//Esta es la clase que maneja el tooltip para que muestre el contenido
//que esta en html y no como un string.
     import mx.containers.*;  
     import mx.controls.Text;  
     import mx.controls.ToolTip;  
     import mx.core.*;  
 
     public class HTMLToolTip extends ToolTip  
     {  
         public function HTMLToolTip()  
         {    super(); }  
 
         override protected function commitProperties():void{  
             super.commitProperties();  
             textField.htmlText = text;  
         }  
     } 
}

Archivo sources.xml:

<xml>
	<lista>
		<item>
			<nombre>El Tiempo - Mundo</nombre>
			<url>http://www.eltiempo.com/mundo/rss.xml</url>
			<pais>Colombia</pais>
		</item>
		<item>
			<nombre>El Tiempo - Colombia</nombre>
			<url>http://www.eltiempo.com/colombia/rss.xml</url>
			<pais>Colombia</pais>
		</item>
		<item>
			<nombre>El Espectador</nombre>
			<url>http://www.elespectador.com/rss.xml </url>
			<pais>Colombia</pais>
		</item>
		<item>
			<nombre>El Pais - America Latina</nombre>
			<url>http://www.elpais.com/rss/feed.html?feedId=17041</url>
			<pais>España</pais>
		</item>
		<item>
			<nombre>ABC - Portada</nombre>
			<url>http://www.abc.es/rss/feeds/abcPortada.xml</url>
			<pais>España</pais>
		</item>
		<item>
			<nombre>BBC Mundo</nombre>
			<url>http://www.bbc.co.uk/mundo/index.xml</url>
			<pais>Inglaterra</pais>
		</item>
		<item>
			<nombre>CNN - World</nombre>
			<url>http://rss.cnn.com/rss/edition_world.rss</url>
			<pais>Estados Unidos</pais>
		</item>
		<item>
			<nombre>Reuters - World News</nombre>
			<url>http://feeds.reuters.com/reuters/worldNews</url>
			<pais>Estados Unidos</pais>
		</item>
		<item>
			<nombre>BusinessWeek.com</nombre>
			<url>http://rss.businessweek.com/bw_rss/bwdaily</url>
			<pais>Estados Unidos</pais>
		</item>
		<item>
			<nombre>Google News</nombre>
			<url>http://news.google.com/news?output=rss</url>
			<pais>Alemania</pais>
		</item>
</lista>
</xml>
  • Share/Bookmark