Bueno gente acá va un mini howto de como instalar nominatim en centos.
Continue reading
Category Archives: SIG
geocoding reverso de nominatim
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
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!!!.
Mrsid en debian 4
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 ;).
Libro de ArcGis
Gente acá les dejo un lindo librito de ArcGis, encima gratuito, espero les sirva.
Saludos.
Correr automáticamente geoserver (at boot time)
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
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
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
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
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
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.