API Mapas colaborativos

El objetivo de este documento es describir las diferentes operaciones que se pueden hacer sobre el API para realizar la gestión de los mapas colaborativos así como los puntos asociados a ellos.

Operaciones para la gestión de usuarios/usuarias

Login de usuario/usuaria

POST: https://www.zaragoza.es/api/recurso/users/addentra/
HEADERS:
clientID = <Identificador_de_la_aplicación>
HmacSHA1 = Clave HMAC generado de la siguiente forma Hmac(clientId + "GET|POST|PUT|DELETE" + uri + body, clavePrivada)
BODY:
email=correo@prueba.es&password=contraseña
Respuesta:
{
  "name" : "Usuario/usuaria",
  "email" : "correo@prueba.es",
  "account_id" : "identificador_de_cuenta"
}

Creación de usuario/usuaria

POST: https://www.zaragoza.es/api/recurso/users/addentra/new
HEADERS:
clientID = <Identificador_de_la_aplicación>
HmacSHA1 = Clave HMAC generado de la siguiente forma Hmac(clientId + "GET|POST|PUT|DELETE" + uri + body, clavePrivada)
BODY: 
{
  "name":"Nombre",
  "email":"correo@prueba.es",
  "password":"prueba",
  "nif":"124763248E" (Campo opcional)
}
Respuesta:
{
  "name" : "Nombre",
  "email" : "correo@prueba.es",
  "account_id" : "identificador_de_cuenta",
  "nif" : "124763248E"
}

Modificación de datos usuario/usuaria

PUT: https://www.zaragoza.es/api/recurso/users/addentra/account_id
HEADERS:
clientID = <Identificador_de_la_aplicación>
HmacSHA1 = Clave HMAC generado de la siguiente forma Hmac(clientId + "GET|POST|PUT|DELETE" + uri + body, clavePrivada)
BODY: 
{
  "name":"Nombre",
  "email":"correo@prueba.es",
  "password":"prueba",
  "nif":"124763248E"
}
Respuesta:
{
  "name" : "Nombre",
  "email" : "correo@prueba.es",
  "account_id" : "identificador_de_cuenta",
  "nif" : "124763248E"
}

Mapas colaborativos

Buscar Mapas públicos

El servicio permite utilizar los siguientes parámetros.

ids
Para obtener varios mapas en una sola petición, se pueden incluir los identificadores separados por comas.
title
Busca en el título del mapa
start_date
Mapas creados despúes de la fecha. Formato, ej 2010-01-01T00:00:00Z.
end_date
Mapas creados antes de la fecha. Formato, ej 2010-01-01T00:00:00Z.
type
Valores admitidos: public, collaborative
GET: http://www.zaragoza.es/api/recurso/mapas-colaborativos.json
[ {
  "id" : 28,
  "title" : "Mapa publico",
  "type" : "public",
  "lastUpdated" : "2013-10-16T12:39:12Z"
}, {
  "id" : 11,
  "title" : "Zaragoza Sin Barreras",
  "type" : "collaborative",
  "lastUpdated" : "2013-10-11T12:37:34Z"
}
...
]
GET: http://www.zaragoza.es/api/recurso/mapas-colaborativos.xml
<mapas>
   <mapa>
      <id>11</id>
      <title>Zaragoza Sin Barreras</title>
      <type>collaborative</type>
      <lastUpdated>2013-10-11T12:37:34Z</lastUpdated>
   </mapa>
   <mapa>
      <id>28</id>
      <title>Mapa publico</title>
      <type>public</type>
      <lastUpdated>2013-10-16T12:39:12Z</lastUpdated>
   </mapa>
   ...
</mapas>

Buscar Mapas de usuario/usuaria

GET: http://www.zaragoza.es/api/recurso/mapas-colaborativos/user/account_id.json
[
    {
        "id": 11,
        "title": "Zaragoza Sin Barreras",
        "type": "collaborative",
        "owned": true, (indica si el usuario/usuaria es el propietario, si es true el usuario/usuaria puede modificar la información del mapa)
        "lastUpdated": "2013-10-11T12:37:34Z"
    },
    {
        "id": 41,
        "title": "Columpios",
        "type": "collaborative",
        "owned": false, (indica si el usuario/usuaria es el propietario del mapa)
        "lastUpdated": "2014-01-03T12:25:04Z"
    },
...
]

Detalle de Mapa

En el detalle de un mapa obtenemos los recursos que pertenecen al mismo y estos pueden ser de tres tipos: Puntos (Point), Líneas (LineString) o Polígonos(Polygon)

Point
Propiedad Descripción
title Título asociado al recurso
description Descripción del recurso
icon Icono asociado al recurso
LineString
Propiedad Descripción
title Título asociado al recurso
description Descripción del recurso
strokeColor Color de la línea en formato hexadecimal, por ejemplo: #cc3333
strokeOpacity Opacidad de la línea, valores permitidos de '0' a '1', por ejemplo: 0.5
strokeWidth Ancho de la línea
Polygon
Propiedad Descripción
title Título asociado al recurso
description Descripción del recurso
strokeColor Color del borde en formato hexadecimal, por ejemplo: #cc3333
strokeOpacity Opacidad del borde, valores permitidos de '0' a '1', por ejemplo: 0.5
strokeWidth Ancho del borde
fillColor Color de relleno formato hexadecimal, por ejemplo: #cc3333
fillOpacity Opacidad del relleno, valores permitidos de '0' a '1', por ejemplo: 0.5
GET: http://www.zaragoza.es/api/recurso/mapas-colaborativos/id.json
{
    "totalCount": 2, /*Número de puntos asociados al mapa*/
    "start": 0,
    "rows": 2,
    "type": "collaborative",
    "title": "Columpios",
    "icon": "generico",
    "lastUpdated": "2014-01-03T12:25:04Z",
    "id": 41,
    "result": [
        {
            "id": "monumento-79",
            "title": "Ayuntamiento de Zaragoza",
            "description": "mi descripcion entera",
            "geometry": {
                "type": "Point",
                "coordinates": [
                    -0.8774209303093823,
                    41.65599708994304
                ]
            }
        },
        {
            "id": "671",
            "title": "dsfgsdfg",
            "description": "sdfgsdfg",
            "geometry": {
                "type": "Point",
                "coordinates": [
                    -0.9298908946924398,
                    41.65262469545268
                ]
            }
        }
    ]
}

Detalle de Mapa por usuario/usuaria

GET: http://www.zaragoza.es/api/recurso/mapas-colaborativos/user/account_id/id.json
HEADERS:
clientID = <Identificador de la aplicación>
HmacSHA1 = Clave HMAC generado de la siguiente forma Hmac(clientId + "GET|POST|PUT|DELETE" + uri + body, clavePrivada)
Respuesta:
{
    "totalCount": 2, /*Número de puntos asociados al mapa*/
    "start": 0,
    "rows": 2,
    "type": "collaborative",
    "title": "Columpios",
    "icon": "generico",
    "lastUpdated": "2014-01-03T12:25:04Z",
    "owned": false, /*es true si el usuario/usuaria es el propietario*/
    "id": 41,
    "result": [
        {
            "id": "monumento-79",
            "title": "Ayuntamiento de Zaragoza",
            "description": "mi descripcion entera",
            "updateable": true, /*es true si este usuario/usuaria lo ha creado*/
            "geometry": {
                "type": "Point",
                "coordinates": [
                    -0.8774209303093823,
                    41.65599708994304
                ]
            }
        },
        {
            "id": "671",
            "title": "Otro punto",
            "description": "Descripción",
            "updateable": false,
            "geometry": {
                "type": "Point",
                "coordinates": [
                    -0.9298908946924398,
                    41.65262469545268
                ]
            }
        }
    ]
}

Crear

POST https://www.zaragoza.es/api/recurso/mapas-colaborativos/user/account_id.json(?srsname=wgs84|utm30n) por defecto wgs84
HEADERS:
clientID = <Identificador de la aplicación>
HmacSHA1 = Clave HMAC generado de la siguiente forma Hmac(clientId + "GET|POST|PUT|DELETE" + uri + body, clavePrivada)
BODY: 
{
    "title": "Columpios",
    "type": "private|public|collaborative", /*sino se especifica: private*/
    "pois": [
        {
/*punto reutilizado de las bases de datos municipales, 
no incluir ni title ni geometria al prevalecer la información municipal*/
            "id": "monumento-79", 
            "description": "mi descripcion entera"
        },
        {
          "id": "675",
          "title": "Recurso tipo linea",
          "description": "Descripcion de recurso tipo linea",
          "strokeColor": "#e34242", /* Color de borde */
          "strokeOpacity": "0.5", /* Opacidad de color de borde */
          "strokeWidth": "4", /* Ancho del color de borde */
          "geometry": {
              "type": "LineString", /* Tipo linea */
              "coordinates": [[-0.8856868743896484,41.651879827111344],[-0.8856868743896484,41.65608036234462]]
          }
      },
      {
          "id": "670",
          "title": "Recurso tipo poligono",
          "description": "Descripcion de recurso tipo poligono",
          "fillColor": "#0ca550", /* Color de relleno */
          "fillOpacity": "0.3", /* Opacidad de color de relleno */
          "strokeColor": "#e34242", /* Color de borde */
          "strokeOpacity": "0.5", /* Opacidad de color de borde */
          "strokeWidth": "4", /* Ancho del color de borde */
          "geometry": {
              "type": "Polygon", /* Tipo poligono */
              "coordinates": [[[-0.8856868743896484,41.651879827111344],[-0.8856868743896484,41.65608036234462],[-0.8751726150512694,41.65608036234462],[-0.8751726150512694,41.651879827111344],[-0.8856868743896484,41.651879827111344]]]
          }
      },
      {
          "id": "671",
          "title": "Recurso tipo punto",
          "description": "Descripcion de recurso tipo punto",
          "icon": "http://www.zaragoza.es/contenidos/iconos/innovacion.png", /* Icono para representar el punto */
          "geometry": {
              "type": "Point", /* Tipo punto */
              "coordinates": [
                  -0.9298811327357448,
                  41.65260966067856
              ]
          }
      }

    ]
}
Respuesta:
{
  "id" : 41,
  "title" : "Columpios",
  "type" : "private",
  "lastUpdated" : "2014-01-03T12:25:04Z",
  "pois" : [ 
    "id" : "monumento-79",
    "title" : "Ayuntamiento de Zaragoza",
    "description" : "mi descripcion entera",
    "geometry" : {
      "type" : "Point",
      "coordinates" : [ -0.8774209303093823, 41.65599708994304 ]
    }
  }, {
    "id": "675",
    "title": "Recurso tipo linea",
    "description": "Descripcion de recurso tipo linea",
    "strokeColor": "#e34242", /* Color de borde */
    "strokeOpacity": "0.5", /* Opacidad de color de borde */
    "strokeWidth": "4", /* Ancho del color de borde */
    "geometry": {
        "type": "LineString", /* Tipo linea */
        "coordinates": [[-0.8856868743896484,41.651879827111344],[-0.8856868743896484,41.65608036234462]]
    }
  }, {
    "id": "670",
    "title": "Recurso tipo poligono",
    "description": "Descripcion de recurso tipo poligono",
    "fillColor": "#0ca550", /* Color de relleno */
    "fillOpacity": "0.3", /* Opacidad de color de relleno */
    "strokeColor": "#e34242", /* Color de borde */
    "strokeOpacity": "0.5", /* Opacidad de color de borde */
    "strokeWidth": "4", /* Ancho del color de borde */
    "geometry": {
        "type": "Polygon", /* Tipo poligono */
        "coordinates": [[[-0.8856868743896484,41.651879827111344],[-0.8856868743896484,41.65608036234462],[-0.8751726150512694,41.65608036234462],[-0.8751726150512694,41.651879827111344],[-0.8856868743896484,41.651879827111344]]]
    }
  }, {
    "id": "671",
    "title": "Recurso tipo punto",
    "description": "Descripcion de recurso tipo punto",
    "icon": "http://www.zaragoza.es/contenidos/iconos/innovacion.png", /* Icono para representar el punto */
    "geometry": {
        "type": "Point", /* Tipo punto */
        "coordinates": [
            -0.9298811327357448,
            41.65260966067856
        ]
    }
  } ]
}

Modificar

PUT https://www.zaragoza.es/api/recurso/mapas-colaborativos/user/account_id/id.json(?srsname=wgs84|utm30n) por defecto wgs84
HEADERS:
clientID = <Identificador de la aplicación>
HmacSHA1 = Clave HMAC generado de la siguiente forma Hmac(clientId + "GET|POST|PUT|DELETE" + uri + body, clavePrivada)
BODY: 
{
    "title": "Columpios", /*Sólo se modificará si la operación se hace desde el account_id propietario del mapa*/
    "type": "private|public|collaborative", /*Sólo se modificará si la operación se hace desde el account_id propietario del mapa*/
    "pois": [
        {
/*punto reutilizado de las bases de datos municipales, 
no incluir ni title ni geometria al prevalecer la información municipal*/
            "id": "monumento-79", 
            "description": "mi descripcion entera"
        },
        {
            "id": "671",
            "title": "dsfgsdfg",
            "description": "sdfgsdfg",
            "geometry": {
                "type": "Point",
                "coordinates": [
                    -0.9298811327357448,
                    41.65260966067856
                ]
            }
        }
    ]
}
Respuesta:
{
  "id" : 41,
  "title" : "Columpios",
  "type" : "private",
  "lastUpdated" : "2014-01-03T12:25:04Z",
  "pois" : 
  /*Sólo se modificarán los puntos que se hayan creado con el account_id indicado*/
  [ {
    "id" : "671",
    "title" : "dsfgsdfg",
    "description" : "sdfgsdfg",
    "geometry" : {
      "type" : "Point",
      "coordinates" : [ -0.9298908946924398, 41.65262469545268 ]
    }
  }, {
    "id" : "monumento-79",
    "title" : "Ayuntamiento de Zaragoza",
    "description" : "mi descripcion entera",
    "geometry" : {
      "type" : "Point",
      "coordinates" : [ -0.8774209303093823, 41.65599708994304 ]
    }
  } ]
}

Utilizar Puntos existentes en las Bases de datos municipales

Para reutilizar puntos existentes debe incluir en el atributo id el valor obtenido de la consulta al servicio de consulta de puntos de Interés

No incluir el atributo title ni el atributo coordinates al crear o guardar este tipo de punto, ya que prevalece el título y la coordenada existente en los datos municipales.

JSON
GET: http://www.zaragoza.es/api/recurso/poi.json?start=0&rows=50&point=676840.375%2C4613966.0&distance=50
{
    "totalCount": 9,
    "start": 0,
    "rows": 50,
    "result": [
        {
            "id": "monumento-79",
            "title": "Ayuntamiento de Zaragoza",
            "link": "http://www.zaragoza.es/ciudad/turismo/es/que-visitar/detalle_Monumento?id=79",
            "description": "

Plaza del Pilar, 18 Horario:De 8,00 a 15,00 h Tel?fono:976 72 11 00 - Informaci?n Municipal: 010 y 976 72 12 34

", "category": "Monumentos, Turismo", "lastUpdated": "2009-12-16T00:00:00Z", "geometry": { "type": "Point", "coordinates": [ 676840.38, 4613965.9 ] } }, { "id": "recurso-325", "title": "Oficina de Relaciones con los Ciudadanos (Plaza del Pilar)", "link": "http://www.zaragoza.es/ciudad/centros/detalle_Centro?id=325", "description": "

Dirección: Pza. del Pilar , 18 Teléfono: 976 721232, 1233, 1069

", "category": "Recursos", "lastUpdated": "2013-01-08T10:59:05Z", "icon": "http://www.zaragoza.es/contenidos/iconos/recursos.png", "geometry": { "type": "Point", "coordinates": [ 676840.375, 4613966 ] } } ... ] }
XML
GET: http://www.zaragoza.es/api/recurso/poi.xml?start=0&rows=50&point=676840.375%2C4613966.0&distance=50
<resultado>
   <totalCount>15</totalCount>
   <start>0</start>
   <rows>50</rows>
   <result>
      <poi>
         <id>monumento-79</id>
         <title>Ayuntamiento de Zaragoza</title>
         <link>http://www.zaragoza.es/ciudad/turismo/es/que-visitar/detalle_Monumento?id=79</link>
         <description><![CDATA[<p>Plaza del Pilar, 18  Horario:De 8.00 a 15.00 h Teléfono:976 72 11 00 - Información Municipal: 010  y 976 72 12 34</p>]]></description>
         <category>Monumentos, Turismo</category>
         <lastUpdated>2012-07-24T00:00:00Z</lastUpdated>
         <geometry>
            <type>Point</type>
            <coordinates>676840.38,4613965.9</coordinates>
         </geometry>
      </poi>
      <poi>
         <id>monumento-1</id>
         <title>Monumento a Goya</title>
         <link>http://www.zaragoza.es/ciudad/artepublico/detalle_ArtePublico?id=1</link>
         <description><![CDATA[Plaza del Pilar (Casco Histórico)<br/>Periodo franquista [1937-1975]<br/>MARÉS, Federico,BELTRÁN NAVARRO, José]]></description>
         <category>Arte Público</category>
         <icon>http://www.zaragoza.es/contenidos/iconos/arte.png</icon>
         <geometry>
            <type>Point</type>
            <coordinates>676872.46,4613920.09</coordinates>
         </geometry>
      </poi>
...
   </result>
</resultado>

Borrar un mapa

Sólo se pueden eliminar aquellos mapas de los que account_id es el propietario.

DELETE https://www.zaragoza.es/api/recurso/mapas-colaborativos/user/account_id/id.json
HEADERS:
clientID = <Identificador de la aplicación>
HmacSHA1 = Clave HMAC generado de la siguiente forma Hmac(clientId + "GET|POST|PUT|DELETE" + uri + body, clavePrivada)
Respuesta:
{
  "status" : 200,
  "mensaje" : "Borrado realizado correctamente"
}

Borrar puntos asociados a un mapa

Sólo se pueden eliminar aquellos puntos que account_id ha creado.

DELETE https://www.zaragoza.es/api/recurso/mapas-colaborativos/user/account_id/id.json?ids=identificadores_de_puntos_separados_por_comas
HEADERS:
clientID = <Identificador de la aplicación>
HmacSHA1 = Clave HMAC generado de la siguiente forma Hmac(clientId + "GET|POST|PUT|DELETE" + uri + body, clavePrivada)
Respuesta:
{
  "status" : 200,
  "mensaje" : "Borrado realizado correctamente"
}