Archive for the ‘SIG’ Category

nominatim en centos 7

Friday, November 13th, 2015

Bueno gente acá va un mini howto de como instalar nominatim en centos.
(more…)

geocoding reverso de nominatim

Wednesday, November 11th, 2015

Bueno supongamos que tengamos una base de datos de nominatim, instalada y queremos a partir de un punto sacar las intersecciones, calle, barrio, municipio, depto y provincia. Aunque también sirve para extraer la calle si lo modifican un poco. Les dejo el SQL:

select calle, barrio, muni, depto, prov, placex.name->'name'as pais from (
select calle, barrio, muni, depto, placex.name->'name'as prov,placex.parent_place_id from (
select calle, barrio, muni, placex.name->'name'as depto,placex.parent_place_id from (
select calle, barrio, placex.name->'name'as muni,placex.parent_place_id from (
select distinct calles.name->'name' as calle, placex.name->'name' as barrio, placex.parent_place_id from (
select name, place_id,parent_place_id,rank_search from placex
WHERE ST_DWithin(st_geomfromtext('point(-76.5482 3.4477)',4326), geometry, 0.1)
and rank_search != 28 and rank_search >= 22
and (name is not null or housenumber is not null)
and class not in ('waterway','railway','tunnel','bridge')
and indexed_status = 0 
and (ST_GeometryType(geometry) not in ('ST_Polygon','ST_MultiPolygon') 
OR ST_DWithin(st_geomfromtext('point(-76.5482 3.4477)',4326), centroid,0.1))
ORDER BY ST_distance(st_geomfromtext('point(-76.5482 3.4477)',4326), geometry) ASC limit 2) as calles
inner join placex on placex.place_id = calles. parent_place_id)
as barrio
inner join placex on placex.place_id = barrio.parent_place_id) as muni
inner join placex on placex.place_id = muni.parent_place_id) as depto
inner join placex on placex.place_id = depto.parent_place_id) prov
inner join placex on placex.place_id = prov.parent_place_id;

Espero le sirva a alguien más.

Trigger de intersección calles en Open Street Maps

Thursday, August 20th, 2015

Hace unos años bastante extenso sobre intersecciones que se llamaba un poco de postigs, en este caso voy a intentar hacer lo mismo pero usando OSM, espero lo disfruten, a por ello!!!.

(more…)

Mrsid en debian 4

Friday, September 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 ;).

(more…)

Libro de ArcGis

Thursday, April 21st, 2011

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

Saludos.

Correr automáticamente geoserver (at boot time)

Thursday, April 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

Thursday, April 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

Tuesday, March 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

Thursday, November 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

Wednesday, November 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.

(more…)