Archive for the ‘SIG’ Category

Mrsid en debian 4

Viernes, Septiembre 9th, 2011

Bueno gente, siempre encuentro a algún cliente que me pide algo raro. En este caso que mapserver tenga soporte para mrsid, alguna vez hace un tiempo lo intenté pero era bastante complicados por las versiones de gcc que usaba lizardtech, pero ahora está más fácil, sobre todo si no tenemos un debian muy nuevito, como es mi caso ;) .

(más…)

Libro de ArcGis

Jueves, Abril 21st, 2011

Gente acá les dejo un lindo librito de ArcGis, encima gratuito, espero les sirva.

Saludos.

Correr automáticamente geoserver (at boot time)

Jueves, Abril 14th, 2011

Holass samigos, acá les dejo el script que uso para iniciar geoserver, lo ponen el /etc/init.d y luego corren el comando:

update-rc.d geoserver defaults

Espero les sirva.

#! /bin/sh
### BEGIN INIT INFO
# Provides:          geoserver
# Required-Start:    $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: GeoServer OGC server
### END INIT INFO

# Author: Lennart Juette

# Geoserver configuration - use /etc/default/geoserver to override these vars
# user that shall run GeoServer
USER=root
GEOSERVER_HOME=/opt/geoserver-2.0.3
GEOSERVER_DATA_DIR=$GEOSERVER_HOME/data_dir

PATH=/usr/sbin:/usr/bin:/sbin:/bin
DESC="GeoServer daemon"
NAME=geoserver
JAVA_HOME=/usr/lib/jvm/java-6-openjdk/jre
JAVA_OPTS="-Xms128m -Xmx512m"
DAEMON="$JAVA_HOME/bin/java"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

DAEMON_ARGS="$JAVA_OPTS $DEBUG_OPTS -DGEOSERVER_DATA_DIR=$GEOSERVER_DATA_DIR -Djava.awt.headless=true -jar start.jar"

# Load the VERBOSE setting and other rcS variables
[ -f /etc/default/rcS ] && . /etc/default/rcS

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

do_start(){

	# Return
	#   0 if daemon has been started
	#   1 if daemon was already running
	#   2 if daemon could not be started

	start-stop-daemon --start --pidfile $PIDFILE --make-pidfile \
		--chuid $USER --chdir $GEOSERVER_HOME \
		-b --test --exec $DAEMON -- $DAEMON_ARGS > /dev/null \
		|| return 1

	start-stop-daemon --start --pidfile $PIDFILE --make-pidfile \
		--chuid $USER --chdir $GEOSERVER_HOME \
		-b --exec $DAEMON -- $DAEMON_ARGS \
		|| return 2
}

do_stop(){

	# Return
	#   0 if daemon has been stopped
	#   1 if daemon was already stopped
	#   2 if daemon could not be stopped
	#   other if a failure occurred

	start-stop-daemon --stop --pidfile  $PIDFILE \
		--user $USER \
		--retry=TERM/30/KILL/5

	RETVAL="$?"
	[ "$RETVAL" = 2 ] && return 2

	# Many daemons don't delete their pidfiles when they exit.
	rm -f $PIDFILE
	return "$RETVAL"

}

case "$1" in
  start)
	[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
	do_start
	case "$?" in
		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
	esac
	;;
  stop)
	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
	do_stop
	case "$?" in
		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
	esac
	;;
  restart|force-reload)
	log_daemon_msg "Restarting $DESC" "$NAME"
	do_stop
	case "$?" in
	  0|1)
		do_start
		case "$?" in
			0) log_end_msg 0 ;;
			1) log_end_msg 1 ;; # Old process is still running
			*) log_end_msg 1 ;; # Failed to start
		esac
		;;
	  *)
	  	# Failed to stop
		log_end_msg 1
		;;
	esac
	;;
  *)
	#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
	echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
	exit 3
	;;
esac

:

Script para importar varios shapes a postgis

Jueves, Abril 14th, 2011

Hola gente, para todos aquellos que hayan leído este post, este no les agregará mucho. Solo quiero dejarlo acá por si algún día lo tengo que usar de nuevo. Este escripcito nos pasa a postgis todos los archivos de un directorio, no es guau pero nos ahorra una o dos horas de trabajo.

PGPASSWORD=clavedepostgres
export PGPASSWORD
PGUSER=postgres
export PGUSER

for i in $(ls *.shp); do
nombre=$(echo $i | cut -d "." -f 1);
shp2pgsql -I -s 4326 -W latin1 $i $nombre | psql -d hidricos
done;
Un abrazo a mi amigo Luís Acosta, que me ayudó con todo esto.
Saludos a todos.

Como importar un dump de SQL Manager para postgres

Martes, Marzo 15th, 2011

Hola gente, a veces los clientes me envían dumps (archivos SQL) de SQL manager, el problema es el encode de estos archivos, utf16 en lugar de utf8. si alguien tuvo el problema para convertir los archivos muy fácil…

iconv -f utf16 -t utf8 -o to_postgres.sql from_sql_manager.sql
psql -U fpuertas bd_otea -f  to_postgres.sql

y listo, ya podemos importar el archivo.

Espero les sirva.

Problemas con el slider zoom bar en pmapper 4

Jueves, Noviembre 25th, 2010

Bueno, esto ya es un error bastante conocido que se me había pasado por alto. Por lo general el síntoma es que vemos como que el Zoom está invertido. Haciendo zoom in hace zoom out y biceversa. Para solucionarlo:

1) Agregamos esto a nuestro config_default.xml
<sliderMax>max</sliderMax>
<sliderMin>25000</sliderMin>

2) Cambiamos las siguientes líneas pmapper-4.0/incphp/init/initmap.php

620:        $y_dgeo_m = ($this->mapUnits == 5 ? $y_dgeo * 111120 : $y_dgeo);
639:        $dgeo['c'] = $this->map->units == 5 ? 111120 : 1;

Por estas otras:

620:        $y_dgeo_m = ($this->mapUnits == 6 ? $y_dgeo * 111120 : $y_dgeo);
639:        $dgeo['c'] = $this->map->units == 6 ? 111120 : 1;

Y con eso todo funciona nuevamente. Como siempre les recomiendo nuestro servicio de hosting GIS que siempre nos preocupamos por resolver este tipo de problemas para nuestros clientes.

Espero les sirva.

Ocultar mapserver .map mediante un wrapper

Miércoles, Noviembre 3rd, 2010

A veces es muy útil ocultar la URL de nuestro .map, porque por ejemplo muestra las claves de acceso a nuestra base de datos, o por cualquier otro motivo. Les voy a enseñar una forma muy fácil de hacerlo.

(más…)

Ajustar geometrías

Jueves, Octubre 21st, 2010

En algunos casos es necesario agustar puntos o polígonos porque hay diferencias entre, por ejemplo, las calles de google y las calles en formato shape que nos dió nuestro cliente. En ese caso se puede usar la función translate para arreglar el problema de la siguiente forma:

update direccionesdecalle set the_geom = ST_Translate(the_geom,-0.0005,0.0005);

En este caso la corrección sería de 0.0005 grados ya que estamos trabajando en wgs84 (srid 4326).
Espero les sirva.
Saludos.

Agregar proyección 900913

Miércoles, Octubre 20th, 2010

Bueno gente acá les dejo el insert a utilizar si quieren agregar la proyección de google a postgis.

INSERT into spatial_ref_sys (srid, auth_name, auth_srid, srtext, proj4text) values (900913 ,'EPSG',900913,'GEOGCS["WGS 84", DATUM["World Geodetic System
1984", SPHEROID["WGS 84", 6378137.0, 298.257223563,AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], NIT["degree",0.017453292519943295], AXIS["Longitude", EAST], AXIS["Latitude", NORTH],AUTHORITY["EPSG","4326"]], PROJECTION["Mercator_1SP"],PARAMETER["semi_minor", 6378137.0],
PARAMETER["latitude_of_origin",0.0], PARAMETER["central_meridian", 0.0], PARAMETER["scale_factor",1.0], PARAMETER["false_easting", 0.0], PARAMETER["false_northing", 0.0],UNIT["m", 1.0], AXIS["x", EAST], AXIS["y", NORTH],AUTHORITY["EPSG","900913"]] |','+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m
+nadgrids=@null +no_defs');

Saludos.

Crear un polígonos a partir de puntos

Miércoles, Octubre 13th, 2010

Hace un par de días que empecé con esta tarea, que al principio parecía muy fácil. Es más seguro que ustedes piensan en este momento que es fácil. Pero es realmente algo bastante difícil de lograr, de hecho no encontré nada que sirva más que un par de select anidados con un makepolygon al final. Creo que este es el triunfo del mes, o al menos hasta ahora. Por tal motivo, y porque no quiero volver a ver esto por un tiempo, por favor no me pregunten sobre esto, si lo entienden me alegro mucho y espero que les ayude, caso contrario lean de nuevo.

(más…)