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" '':
},
{...}
]