it en en ru es es es es es es es es es es es es es es es es es es es hbs_lat it es es en es es en en en en en en en de es ms ca en pt fr en fr en en en es fa de en en en ja en en en cv nl en en tr es en en en en en en en en en en en en en en en
En determinadas ocasiones necesitamos utilizar información geográfica en nuestras aplicaciones. No me refiero tanto a coordenadas geográficas sino simplemente a disponer de una relación de provincias, municipios, distritos, calles y códigos postales.
Desafortunadamente en España parece que los datos de dominio público se encuentran en un estado de disponibilidad muy precario y que cualquier oportunidad es buena para arañar unos cuantos euros a quien esté dispuesto a pagar por ellos.
Ayer tuve la necesidad de incluir información de este tipo en una de mis aplicaciones y cuál fue mi sorpresa cuando al ir a buscarla a internet para adaptarla me encontré con que aparentemente era información ‘de pago’.
En una búsqueda de Google como esta ‘base de datos codigos postales españa‘ aparece como primer resultado un enlace a la página de la empresa Correos en la que nos da instrucciones de cómo acceder a la base de datos de códigos postales previo pago de 687€ (en su versión más básica).
Indagando algo más encontré alguna referencia a reclamaciones realizadas en la página datos.gob.es cuya resolución dice textualmente:
La base de delimitaciones de códigos postales actualmente está sujeta a comercialización. Para adquirir el listado hay que seguir las instrucciones indicadas en la página de CORREOS
Personalmente me parece vergonzoso que este tipo de información esté comercializada por una empresa privada que nació con presupuesto público, pero España es así.
Dejando polémicas a un lado, seguí buscando y encontré una alternativa muy válida en la página del INE. El Callejero del Censo Electoral sirve perfectamente para este propósito ya que contiene información de todos los municipios de España con sus tramos de vías y pseudovías identificados con su correspondiente código postal. En la página de referencia existe un documento con la especificación de formato de cada uno de los ficheros que contienen la información:
He realizado una importación y tratamiento de los ficheros para MySQL dejando únicamente la información esencial para poder montar un callejero con información de códigos postales.
La base de datos está disponible aquí. Una vez descomprimida ocupa 164MB.
Tras ejecutar el script SQL, encontraremos una base de datos llamada codpos que contendrá las siguientes tablas:
Tramo es la tabla que relaciona el resto y corresponde a los tramos de vía correspondientes a cada una de las secciones y subsecciones censales (información que he omitido de la base de datos).
Un ejemplo de utilización sería la siguiente SQL:
select t.cpro as `codigo_provincia`, pr.dpro as `provincia`, up.dmun as `municipio`, up.nentsic, up.nnucle, ifnull(pv.dpsvia, concat(v.tvia, ' ', v.nvia)) as `vía`, t.cpos as `codigo_postal` from tramo t left outer join vía v on(t.cpro = v.cpro and t.cmum = v.cmum and t.cvia = v.cvia) left outer join pseudovia pv on(t.cpro = pv.cpro and t.cmum = pv.cmum and t.cpsvia = pv.cpsvia) left outer join unidad_poblacional up on(t.cpro = up.cpro and t.cmum = up.cmum and t.cun = up.cun) left outer join provincia pr on(t.cpro = pr.cpro) where v.nvia like 'velazquez%' and 58 between t.ein and t.esn and pr.cpro = 28 and t.tinum = 2
que nos devolverá todos aquellos tramos de vía con denominación que empiece por ‘velazquez’, que contengan un número 58 entre sus pares (tinum = 2) y que estén en la provincia de Madrid (28).
Author Alberto Iriberri AndrésPosted on June 13, 2020Categories Bases de datosTags base de datos, códigos postales, datos públicos, mysql, opendata15 Comments on Callejero español 2020 con códigos postales (gratis)
BI & Data Science
randata - Generación de datos
Proudly powered by WordPress
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.AcceptReject
Privacy & Cookies Policy
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data vía analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.