1 votos

Extraer los datos de la dirección / Consultar el punto en el límite administrativo

Intento crear una base de datos en postgreSQL con todos los datos de direcciones postales de un país concreto.

En realidad tengo esta tabla llena de datos:

id integer NOT NULL DEFAULT nextval('plz_id_seq'::regclass),
código_país carácter variable(20),
código_postal carácter variable(20),
nombre_ciudad carácter varying(180),
state_name character varying(180),
state_code carácter variable(20),
nombre_comunidad carácter varying(180),
community_code carácter variable(20),
latitud de doble precisión,
longitud de doble precisión,
CONSTRAINT plz_pkey PRIMARY KEY (id)

El siguiente paso debería ser crear una nueva tabla con las calles y los números de casa y vincularla a la zona de código postal correcta. Para ello he importado los datos específicos de OSM a postgis con osm2pgsql y la opción hstore.

Donde estoy ahora atascado, es en la consulta para encontrar el área/polígono del código postal OSM que se ajusta a mis datos plz.

Intenté esta consulta, pero no obtuve nada:

SELECT * FROM planet_osm_polygon WHERE boundary='postal_code' AND ST_CONTAINS(way, ST_PointFromText('POINT(48 7.85)', 900913));

¿Dónde está mi error?

0voto

droidgirl Puntos 1

Creo que el problema está aquí:

...ST_PointFromText('POINT(48 7.85)', 900913))...

Supongo que quieres decir este lugar (48°N 7,85°E), por lo que las coordenadas son geográficas (EPSG:4326), no Web Mercator (EPSG:900913). En el lugar que dio a la función (48 7,85 en EPSG:900913 = 0,0004°N 7,0517°E en EPSG:4326) no podría ser ninguno de los límites de postal_code, porque está en medio del Golfo de Guinea.

Intenta cambiar este trozo de consulta por:

...ST_Transform(ST_PointFromText('POINT(48 7.85)', 4326),900913)...

Por supuesto, si sus datos en la tabla planet_osm_polygon están en la proyección EPSG:900913

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X