Skip to content

Instantly share code, notes, and snippets.

@john-guerra
Forked from kristw/index.html
Last active January 28, 2024 19:19
Show Gist options
  • Star 29 You must be signed in to star a gist
  • Fork 14 You must be signed in to fork a gist
  • Save john-guerra/43c7656821069d00dcbc to your computer and use it in GitHub Desktop.
Save john-guerra/43c7656821069d00dcbc to your computer and use it in GitHub Desktop.
GeoJson map of Colombia

Geo Json map of Colombia

Based on the Map of Thailand by Master Krist Wongsuphasawat, a simple map of Colombia using GeoJSON and D3.js

As in Krist example:

  • Each province is color-coded by the length of its name in English.
  • Hover each province to see text effects.
  • New font is chosen randomly every time you change the province.
  • Click on a province to zoom in. Click somewhere else to zoom out.

I obtained the Colombian GeoJSON by transforming the Colombian shapefiles by Maurix Suárez, using:

ogr2ogr   -f GeoJSON -t_srs EPSG:4326  Colombia.geo.json   depto.shp
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View raw

(Sorry about that, but we can’t show files that are this big right now.)

@loorlab
Copy link

loorlab commented Apr 20, 2021

Un saludo John, te agradecemos por compartir este archivo, solo tenemos una pequeña pregunta: Como se podría mejorar las coordenadas de Colombia con Venezuela, la sombra del mapa no alcanza a delinear con exactitud Cúcuta por ejemplo.

Screenshot_2021-04-20 GeoJson map of Colombia

Quedamos atentos a cualquier ayuda !

@john-guerra
Copy link
Author

Que buen catch! La verdad no tengo idea. Para este ejemplo, no construí los archivos geo yo, sino que utilicé los de Maurix. Puedes usar el topojson de este último ejemplo que hice en Observable https://observablehq.com/@john-guerra/spike-map-of-colombian-cities-by-population

@loorlab
Copy link

loorlab commented Apr 20, 2021

Que buen catch! La verdad no tengo idea. Para este ejemplo, no construí los archivos geo yo, sino que utilicé los de Maurix. Puedes usar el topojson de este último ejemplo que hice en Observable https://observablehq.com/@john-guerra/spike-map-of-colombian-cities-by-population

Muchas gracias John, el que tu compartes es posible que sea compatible con geojson y leaflet ?

Tu trabajo en esta área es genial !

@john-guerra
Copy link
Author

john-guerra commented Apr 23, 2021 via email

@loorlab
Copy link

loorlab commented Apr 6, 2022

De lo que entiendo topojson es una versión comprimida de geojson. Antes de visualizarla uno convierte el topoJSON a geoJSON. Si quiere prueba bajando el del ejemplo como geoJSON acá: @./spike-map-of-colombian-cities-by-population#download

On Tue, Apr 20, 2021 at 1:59 PM LOOR Lab @.
> wrote: @.**** commented on this gist. ------------------------------ Que buen catch! La verdad no tengo idea. Para este ejemplo, no construí los archivos geo yo, sino que utilicé los de Maurix. Puedes usar el topojson de este último ejemplo que hice en Observable @.***/spike-map-of-colombian-cities-by-population Muchas gracias John, el que tu compartes es posible que sea compatible con geojson y leaflet ? Tu trabajo en esta área es genial ! — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://gist.github.com/43c7656821069d00dcbc#gistcomment-3713573, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJJCS2SP53Y2L3LVHBBFC3TJXTKPANCNFSM4IOWTCAA .
-- -- John Alexis Guerra Gómez https://johnguerra.co

Un saludo, hicimos la prueba con el archivo https://observablehq.com/@john-guerra/spike-map-of-colombian-cities-by-population y funciona de maravilla, también realizamos la integración con Google Mutant para Google Maps y el sombreado funciona de lujo.

La delimitación también mejora demasiado
Screenshot 2022-04-06 at 08-02-51 Google Maps
.

Muchas gracias por tu soporte y ayuda !

@chickenraider
Copy link

Es perfecto!.
image
Gracias.

@rvcristiand
Copy link

Es perfecto!. image Gracias.

Cómo hiciste para que no te aparecieran los municipios, solamente los departamentos ?

@loorlab
Copy link

loorlab commented May 19, 2022

Es perfecto!. image Gracias.

Cómo hiciste para que no te aparecieran los municipios, solamente los departamentos ?

Excelente Pregunta 😮

@ultramarp
Copy link

Buenos días,

Podrian compartir el archivo Json para cargarlo como mapa a power BI ?

Gracias.

@john-guerra
Copy link
Author

Ya probaste este

Aunque unas de mis últimas versiones son el topojson de Colombia y este mapa de Colombia reusable. En el último mira los attachments y encontraras el topojson

@ultramarp
Copy link

Excelente, Muchas gracias,

No tengo experiencia con esta clase de archivos, ya cargué el mapa en POWER BI y esta excelente, aunque,

Hay alguna posibilidad de eliminar el dpto de San andres / archipielago santa catalina?

@svelasquez89
Copy link

Como se puede hacer un de acuerdo a las regiones de COlombia

@john-guerra
Copy link
Author

Hola @ultramarp, sería cuestión que los elimines del archivo

Hola @svelasquez89, en tu caso lo que necesitarías es encontrar un archivo GeoJSON que incluya las regiones u otro archivo con esa info

@andres-garciaup7
Copy link

Hola @john-guerra muchas gracias por toda la información muy útil, tengo las siguientes dudas si me puedes instruir:

@john-guerra
Copy link
Author

Hola @andres-garciaup7, no tengo publicados los centros poblados. Para generar los geoJSON te recomiendo iniciar en la página del Dane, y desde allí seguir un procedimiento similar al que usé en este ejemplo TopoJSON. Allí incluso es posible que el topoJSON que usé les sirva

@viviantorres99
Copy link

hola, saben donde puedo conseguir el mapa con municipios?

@john-guerra
Copy link
Author

@jacasta2
Copy link

Yo necesito visualizar solo los departamentos en un mapa de formas de Power BI.

El JSON Colombia_departamentos_municipios_poblacion-topov2.json tiene una key llamada objects. El valor de esa key es un diccionario que contiene dos keys: MGN_ANM_MPIOS y MGN_ANM_DPTOS. Una opción si solo quieres ver los departamentos es borrar la key MGN_ANM_MPIOS y su valor, que es un diccionario con toda la geometría de los municipios.

El siguiente código en Python borra esa información:

import json

def delete_nested_key(json_file, parent_key, key_to_delete, output_file):
    with open(json_file, 'r') as file:
        data = json.load(file)

    if parent_key in data and key_to_delete in data[parent_key]:
        del data[parent_key][key_to_delete]

    with open(output_file, 'w') as file:
        json.dump(data, file, indent=4)

json_file = 'Colombia_departamentos_municipios_poblacion-topov2.json'
parent_key = 'objects'
key_to_delete = 'MGN_ANM_MPIOS'
output_file = 'departamentos.json'

delete_nested_key(json_file, parent_key, key_to_delete, output_file)

A mí me funcionó este enfoque. No sé si dentro del mismo Power BI habrá forma de mostrar solo los departamentos sin necesidad de modificar el JSON

@murielito
Copy link

murielito commented Sep 14, 2023

Buenos días, alguno de casualidad tiene de manera muy sucinta un paso a paso para cargar el archivo en Power BI? Las nuevas versiones de la aplicación han variado mucho y no se ha podido montar el mapa como lo muestran ustedes en las imágenes. Muchas gracias de antemano por toda esta labor @john-guerra

@DJRT-11
Copy link

DJRT-11 commented Sep 17, 2023

@jacasta2 La función sirve perfecto! La visualización por departamentos ya se ajusta mucho mejor a las fronteras, muchas gracias!

@jacasta2
Copy link

Es con mucho gusto!

Todo esto me motivó a trabajar más en este tema y creé un repo donde comparto unos notebooks para crear TopoJSONs de departamentos y de municipios. El repo está disponible en TopoJSON of Colombia's departments and towns. La versión más depurada y actualizada del trabajo está en el notebook create_from_shapefile, donde creo los TopoJSONs a partir de archivos Esri que se pueden descargar del sitio web del DANE. Al parecer, los archivos Esri se actualizan con más frecuencia que los archivos GeoJSON.

@dalejandroramirez
Copy link

Hola, quiero quedarme solo con los datos del departamento de antioquia, saben como puedo hacer esto?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment