Salta el contingut

API panoramas

Documentación API panoramas. Esta API se utiliza en el visor de panoramas y nubes de puntos del geoportal y MapiaStreets.

Modelo

Campañas

En la tabla mapia_panoramas_project se definen las diferentes campañas de Mobile Mapping. Por ejemplo, Panorames 2018, Panorames 2020, etc.

Campo Definición
id ID autogenerado
code Código de la campaña, por ejemplo, pano-2020
name Nombre de la campaña, por ejemplo, Panorames 2020

Panoramas

La tabla mapia_panoramas_panorama contiene toda la información de los panoramas:

Campo Definición
id ID autogenerado
file_name Nombre de la imagen. Si se pone la ruta completa (comienza por http), accede directamente, si no, va al directorio por defecto y le agrega la ruta. Ejemplo:
https://(…)/apps/giscube-admin/plugins/mapia_panoramas/files/(file_folder)/file_name
file_type Tipo (extensión) de la imagen
file_folder Directorio donde se encuentran las imágenes. Si se pone la ruta completa (comienza por http), accede directamente, si no, va al directorio por defecto y le agrega la ruta. Ejemplo:
https://(…)/apps/giscube-admin/plugins/mapia_panoramas/files/file_folder
source_id ID definido por el usuario, puede servir para ordenar los panoramas
date Fecha y hora de captura de la panorámica
altitude Altura sobre el nivel del mar del panorama
roll Ángulo respecto al eje longitudinal
pitch Ángulo respecto al eje transversal
pan Ángulo respecto al eje vertical (orientación con el norte)
geom Geometría, coordenadas del punto
project_id Proyecto definido en la tabla mapia_panoramas_project donde se definen, por ejemplo, diferentes campañas de MoMa
category String para definir una categoría, por ejemplo, diferentes plantas de un edificio

Laterales

La tabla mapia_panoramas_lateral contiene toda la información de las imágenes laterales:

Campo Definición
id ID autogenerado
file_name Nombre de la imagen. Si se pone la ruta completa (comienza por http), accede directamente, si no, va al directorio por defecto y le agrega la ruta. Ejemplo:
https://(…)/apps/giscube-admin/plugins/mapia_panoramas/files/(file_folder)/file_name
file_folder Directorio donde se encuentran las imágenes. Si se pone la ruta completa (comienza por http), accede directamente, si no, va al directorio por defecto y le agrega la ruta. Ejemplo:
https://(…)/apps/giscube-admin/plugins/mapia_panoramas/files/file_folder
file_type Tipo (extensión) de la imagen
pan Orientación de la imagen respecto al Norte
panorama_id ID del panorama al que corresponde

Nubes de puntos

La tabla mapia_panoramas_pointcloud contiene toda la información de las nubes de puntos en el servidor:

Campo Definición
id ID autogenerado
code Código descriptivo de la nube de puntos
name Nombre de la nube de puntos
file_folder Directorio donde se encuentran las nubes de puntos
geom Geometría, polígono que contiene la nube de puntos
project_id Proyecto definido en la tabla mapia_panoramas_project donde se definen, por ejemplo, diferentes campañas de MoMa

Nubes de puntos Local

La tabla mapia_panoramas_localpointcloud contiene toda la información de las nubes de puntos en local:

Campo Definición
id ID autogenerado
code Código descriptivo de la nube de puntos
name Nombre de la nube de puntos
file_folder Directorio donde se encuentran las nubes de puntos en local
geom Geometría, polígono que contiene la nube de puntos
project_id Proyecto definido en la tabla mapia_panoramas_project donde se definen, por ejemplo, diferentes campañas de MoMa

Autenticación

Se trata de una API pública, no se requiere autenticación.

Endpoints

El proyecto de panoramas es tratado como un módulo externo al giscube-admin, por tanto, se agregará como un plug-in. Hay un endpoint para obtener las campañas definidas. Para cada campaña, hay un endpoint para obtener los panoramas, las nubes de puntos en el servidor (actualmente no usado) y las nubes de puntos en local.

Campañas

Endpoint que retorna todas las campañas definidas.

URL

|||| |-------|-------

"results": [
  {
    "code": "pano-2020",
    "name":"Panorames 2020",
    "description":null,
    "zone":null,
    "date_start":null,
    "date_end":null,
    "folder_panorama":"pano-2020",
    "folder_images":"pano-2020",
    "folder_point_cloud":null,
    "layer_panorama":null
  },
  {...}
]

Panoramas

El endpoint panorammas depende de la campaña en la que queramos hacer la búsqueda (introduciendo el código de la campaña a la URL). Se obtienen los panoramas a partir de una coordenada y un radio de búsqueda.

URL

Endpoint plugins/mapia_panoramas/api/projects/{code}/panoramas/
Exemple https://xxxxxxx.xxxxxxx.xxx/apps/giscube-admin/plugins/mapia_panoramas/api/projects/pano/panoramas/

Parámetros

Los parámetros de búsqueda de esta API son los siguientes:

Parámetro Definición Obligatorio Ejemplo
p Coordenadas (lat, lng) del punto que buscamos * p=41.3997,2.1133
r Radio de búsqueda en metros * r=15
c Busca los que tienen la misma categoría c=planta_1

La API devuelve todos los panorama que se encuentran dentro del radio de búsqueda (r) ordenados por distancia respecto el punto (p)

Ejemplo https://xxxxxxx.xxxxxxx.xxx/apps/giscube-admin/plugins/mapia_panoramas/api/projects/pano-2020/panoramas/?p=41.47379866069745,2.089445418340398&r=15

Resultado

[
  {
    "id": 11596,
    "project": "pano-2020",
    "category": null,
    "file_name": "Track_C-Sphere-144.jpg",
    "file_type": null,
    "file_folder": "201028",
    "source_id": 11596,
    "date": "2020-10-28T07:01:13Z",
    "altitude": 122.654,
    "roll": -358.432473,
    "pitch": 4.585543,
    "pan": -93.647597,
    "geom": {
      "type": "Point",
      "coordinates":[
        2.089445418340398,
        41.47379866069745
      ]
    },
    "laterals": [
      {
        "file_name": "Track_C-CAM1-144_2020.10.28_08.01.13(278).jpg",
        "file_type": null,
        "file_folder": "201028/Track_C01",
        "pan": -48.647597000000005
      },
      {...},
      {...}
    ]
  },
  {...},
  {...}
]

Nubes de puntos (actualmente no usado)

Endpoint que retorna las nubes de puntos que se encuentran sobre una coordenada.

URL

Endpoint plugins/mapia_panoramas/api/projects/{code}/point_cloud/
Ejemplo https://xxxxxxx.xxxxxxx.xxx/apps/giscube-admin/plugins/mapia_panoramas/api/projects/pano-2020/point_cloud/

Parámetros

Los parámetros de búsqueda de esta API son los siguientes

Parámetro Definición Obligatorio Ejemplo
p Coordenadas (lat, lng) del punto que buscamos * p=41.3997,2.1133

El API retorna todas las nubes de puntos que contienen la coordenada (los polígonos que contienen el punto).

Resultado

El resultado es un array con las campañas definidas.

"results": [
  {
    "id": '',
    "project": '',
    "code": '',
    "name": '',
    "file_folder": '',
    "geom" '':
  },
  {...}
]

Nubes de puntos local

Endpoint que retorna las nubes de puntos que se encuentran sobre una coordenada.

URL

Endpoint plugins/mapia_panoramas/api/projects/{code}/local_point_cloud/
Ejemplo https://xxxxxxx.xxxxxxx.xxx/apps/giscube-admin/plugins/mapia_panoramas/api/projects/pano-2020/local_point_cloud/

Parámetros

Los parámetros de búsqueda de esta API son los siguientes

Parámetro Definición Obligatorio Ejemplo
p Coordenadas (lat, lng) del punto que buscamos * p=41.3997,2.1133

El API retorna todas las nubes de puntos que contienen la coordenada (los polígonos que contienen el punto).

Resultado

El resultado es un array con las campañas definidas.

"results": [
  {
    "id": '',
    "project": '',
    "code": '',
    "name": '',
    "file_folder": '',
    "geom" '':
  },
  {...}
]