Bueno gente acá va un mini howto de como instalar nominatim en centos.
(more…)
Posts Tagged ‘postgis’
nominatim en centos 7
Friday, November 13th, 2015geocoding reverso de nominatim
Wednesday, November 11th, 2015Bueno 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, 2015Hace 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!!!.
Script para importar varios shapes a postgis
Thursday, April 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.
Ajustar geometrías
Thursday, October 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
Wednesday, October 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
Wednesday, October 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.
Una zona para el usuario
Thursday, August 5th, 2010Calcular un área a partir de un punto
Friday, July 23rd, 2010Hola gente, esto que estoy por publicar no tendrá mucho sentido para algunos, es una abstracción de la función buffer. Pero el problema es que buffer no es una función muy recomendada para zonas grandes por la cantidad de CPU y RAM que usa. Es por eso que la encapsulé en otra función, luego publicaré aquí mismo la función completa.