Lista de provincias, cantones y distritos de Costa Rica en formato JSON

El formato JSON en los últimos años ha dominado la programación de páginas web y por ende siempre buscamos obtener nuestra información mediante este formato, principalmente cuando necesitamos la información desde Javascript.

Algo muy usual es que necesitemos poner un selector de ubicación en un formulario y para esto paginasweb.cr pone a disposición un servicio que devuelve provincias, cantones y distritos en formato JSON de manera gratuita con un CDN asegurando que el servicio siempre va a estar disponible de manera gratuita para cualquier uso, tanto comercial en producción o académico.

¿Como se usa?

La lista de provincias cantones y distritos tienen como ID el número real con el que trabaja el Tribunal Supremo de elecciones de Costa Rica. Esa es la razón por lo que los id’s no comienzan en 0 como en un arreglo usual.

Provincias

Para obtener las provincias de Costa Rica la dirección es la siguiente:

https://ubicaciones.paginasweb.cr/provincias.json

Lo cual devuelve una versión mimificada de lo siguiente:

{
    1: "San José",
    2: "Alajuela",
    3: "Cartago",
    4: "Heredia",
    5: "Guanacaste",
    6: "Puntarenas",
    7: "Limón"
}

Cantones

Para obtener los cantones de una provincia específica se debe crear una URL como la siguiente:

https://ubicaciones.paginasweb.cr/provincia/id_provincia/cantones.json

Entonces por ejemplo si quisiéramos los cantones de la provincia de San José que tiene el id #1 la URL sería:

https://ubicaciones.paginasweb.cr/provincia/1/cantones.json

Lo cual devuelve una versión mimificada de lo siguiente:

{
    1: "Central",
    2: "Escazú",
    3: "Desamparados",
    4: "Puriscal",
    5: "Tarrazú",
    6: "Aserrí",
    7: "Mora",
    8: "Goicoechea",
    9: "Santa Ana",
    10: "Alajuelita",
    11: "Vázquez De Coronado",
    12: "Acosta",
    13: "Tibás",
    14: "Moravia",
    15: "Montes De Oca",
    16: "Turrubares",
    17: "Dota",
    18: "Curridabat",
    19: "Pérez Zeledón",
    20: "León Cortés Castro"
}

Distritos

Para obtener los distritos de un cantón específico se debe crear una URL como la siguiente:

https://ubicaciones.paginasweb.cr/provincia/id_privincia/canton/id_canton/distritos.json

Entonces por ejemplo si quisiéramos los distritos del cantón de Montes de Oca (Cantón #15 de San José) de la provincia de San José (provincia #1) la URL sería:

https://ubicaciones.paginasweb.cr/provincia/1/canton/15/distritos.json

Lo cual devuelve una versión mimificada de lo siguiente:

{
    1: "San Pedro",
    2: "Sabanilla",
    3: "Mercedes",
    4: "San Rafael"
}

Ejemplo

El siguiente es un ejemplo en jQuery de como obtener la lista de provincias  de Costa Rica y generar un selector de provincia.

<html>
    <head>
        <title>Obteniendo las provincias</title>
        <script src="jquery-2.2.3.min.js" type="text/javascript"></script>
        <script>
            $(document).ready(function () {
                $("#enlaceajax").click(function (evento) {
                    $.ajax({
                        dataType: "json",
                        url: "https://ubicaciones.paginasweb.cr/provincias.json",
                        data: {},
                        success: function (data) {
                            var html = "<select>";
                            for(key in data) {
                                html += "<option value='"+key+"'>"+data[key]+"</option>";
                            }
                            html += "</select";
                            $('#destino').html(html);
                        }
                    });
                });
            })
        </script>
    </head>
    <body>
        <a href="#" id="enlaceajax">Obtener provincias</a>
        <br>
        <div id="destino"></div>
    </body>
</html>

Un ejemplo más completo utilizando los mapas de Google

Notas importantes

  • El servicio usa el header  access-control-allow-origin:* para que pueda ser solicitado usando Javascript desde cualquier dominio.
  • El servicio puede ser solicitado por medio de http y https

Como instalar Cordova y crear aplicaciones móviles usando Javascript

Que es Apache Cordova?

Apache Cordova es una plataforma de desarrollo que permite el uso de tecnologías web estándar (que utilizamos para programar páginas web como HTML5, CSS3 y JavaScript), para el desarrollo multiplataforma muy utilizado para el desarrollo de aplicaciones móviles para Android y iOS. Sin embargo, soporta los sistemas operativos: Plataformas soportadas

Instalación

La instalación de Apache Cordova varía según el sistemas operativo en el que deseamos que compile nuestra aplicación, ya que dependemos de sus SDK’s para poder compilarlo, y de esto dependen nuestros requisitos.

Requisitos

  • npm: Administrador de paquetes para Javascript, viene instalado con Nodejs
    • Instalar Nodejs en la página oficial de node
    • Verificar instalación de node ejecutando
      node -v
      • En caso de no funcionar agregue a la variable de entorno PATH la dirección del ejecutable de Node.
    • Verificar la instalación de npm ejecutando
      npm -v
      • En caso de no funcionar agregue a la variable de entorno PATH la dirección del ejecutable de npm (C:\Users\user\AppData\Roaming\npm)
  • Cordova: Se instala ejecutando el siguiente comando (en el caso linux/mac necesita permisos de superusuario): 
    npm install -g cordova

Compilando para Android

  • Java JDK: Descargar e instalar desde la página oficial de Oracle
    • Verificar la instalación ejecutando 
      javac -version
      • En caso de dar error incluir en la variable PATH la dirección del ejecutable de Java, además agregar en la variable JAVA_HOME la misma dirección (usualmente C:\Program Files\Java\jdk1.8.0_73\bin)
  • Android SDK: Instalar Android Studio desde la página oficial
    • Agregar a la variable de entorno PATH las siguientes carpetas
      • android-sdk\tools (usualmente en C:\Users\user\AppData\Local\Android\android-sdk\tools sin embargo esta dirección sale en Android Studio)
      • android-sdk\platform-tools (usualmente en C:\Users\user\AppData\Local\Android\android-sdk\platform-tools sin embargo esta dirección sale en Android Studio)
      • Verificar instalación ejecutando: 
        adb version

Compilando para iOS

  • Instalar Xcode desde la tienda de iTunes
  • (Opcional) Para poder correr el simulador desde la consola se puede instalar lo siguiente: 
    npm install -g ios-sim

Creando una aplicación

Para crear una aplicación en Cordova ejecute el siguiente comando:

// crear aplicación llamada NombreDelApp en la carpeta carpeta
cordova create carpeta com.ejemplo.hola NombreDelApp
// posicionarse en la aplicación 
cd carpeta
// agregar android al proyecto
cordova platform add android --save
// agregar iOS al proyecto
cordova platform add ios --save
// verificar si tenemos todo lo necesario
cordova requirements
// Ejecutar mi aplicación en android
cordova run android
// Ejecutar mi aplicación en iOS
cordova run ios

El comando run compila (cordova build) nuestra aplicación y la ejecuta en el dispositivo que tengamos conectado, de no tener un dispositivo conectado la ejecuta en el emulador que tengamos configurado. En caso de solo tener asociada una plataforma en nuestra aplicación no es necesario especificar el sistema operativo al final del comando run.

Modificando mi aplicación

Como Cordova solamente utiliza HTML, CSS y Javascript el único código que vamos a cambiar (a menos que necesitemos cosas más avanzadas) se encuentra en la carpeta www que se encuentra en la raíz del proyecto.

Íconos

Para cambiar los íconos de la aplicación se deben modificar las imágenes que se encuentran en las siguientes direcciones:

  • Androidapp/platforms/android\res
  • iOS: app/platforms/ios/Resources

Links útiles