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
.
Archive for the ‘SIG’ Category
Mrsid en debian 4
Viernes, Septiembre 9th, 2011Libro de ArcGis
Jueves, Abril 21st, 2011Gente acá les dejo un lindo librito de ArcGis, encima gratuito, espero les sirva.
Saludos.
Correr automáticamente geoserver (at boot time)
Jueves, Abril 14th, 2011Holass 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, 2011Hola 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.
Ocultar mapserver .map mediante un wrapper
Miércoles, Noviembre 3rd, 2010A 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.
Ajustar geometrías
Jueves, Octubre 21st, 2010En 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, 2010Bueno 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, 2010Hace 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.