Saltar al contenido principal

Mapas

Se dispone de una API para la obtención, creación, modificación y descarga de mapas del usuario.

APIs

GET

GET /api/users/me/maps

Este endpoint se puede utilizar de dos maneras:

  1. Listado: Trae todos los mapas de usuario. Se pueden filtrar por lote añadiendo en la query string:
    • id_lote: integer, id de lote.
  2. Mapa: Devuelve un mapa específico. Se debe enviar en la query string:
    • id: integer, id del mapa

Ejemplo de respuesta

Listado

{
"data": [
{
"id_lote": 000000,
"id_tipo": 1,
"nombre": "test",
"id_usuario": 000000,
"fecha_ini": "2022-03-16 14:19:57.531485",
"id": 000000,
"metadata": {
"capas": {
"1": {
"color": [252, 141, 89, 255],
"nombre": "Field Zone 1"
},
"0": {
"color": [215, 48, 39, 255],
"nombre": "Field Zone 0"
},
"3": {
"color": [255, 255, 191, 255],
"nombre": "Field Zone 3"
},
"2": {
"color": [254, 224, 139, 255],
"nombre": "Field Zone 2"
},
"5": {
"color": [145, 207, 96, 255],
"nombre": "Field Zone 5"
},
"4": {
"color": [217, 239, 139, 255],
"nombre": "Field Zone 4"
},
"6": {
"color": [26, 152, 80, 255],
"nombre": "Field Zone 6"
}
}
}
},
{
"id_lote": 00000,
"id_tipo": 1,
"nombre": "test2",
"id_usuario": 000000,
"fecha_ini": "2022-03-17 15:58:40.060272",
"id": 000000,
"metadata": {
"capas": {
"1": {
"color": [252, 141, 89, 255],
"nombre": "Field Zone 1"
},
"0": {
"color": [215, 48, 39, 255],
"nombre": "Field Zone 0"
},
"3": {
"color": [217, 239, 139, 255],
"nombre": "Field Zone 3"
},
"2": {
"color": [254, 224, 139, 255],
"nombre": "Field Zone 2"
},
"5": {
"color": [26, 152, 80, 255],
"nombre": "Field Zone 5"
},
"4": {
"color": [145, 207, 96, 255],
"nombre": "Field Zone 4"
}
}
}
}
]
}

Mapa

{
"data": {
"nombre": "test2",
"geojson": {
"type": "FeatureCollection",
"features": [
{
"geometry": {
"type": "Polygon",
"coordinates": [...]
},
"type": "Feature",
"id": 17,
"properties": {
"nombre": "Field Zone 0",
"_featid": "76",
"id": 0
}
},
{
"geometry": {
"type": "Polygon",
"coordinates": [...]
},
"type": "Feature",
"id": 19,
"properties": {
"nombre": "Field Zone 2",
"_featid": "59",
"id": 2
}
},
{
"geometry": {
"type": "Polygon",
"coordinates": [...]
},
"type": "Feature",
"id": 20,
"properties": {
"nombre": "Field Zone 1",
"_featid": "66",
"id": 1
}
},
{
"geometry": {
"type": "Polygon",
"coordinates": [...]
},
"type": "Feature",
"id": 23,
"properties": {
"nombre": "Field Zone 5",
"_featid": "23",
"id": 5
}
},
{
"geometry": {
"type": "Polygon",
"coordinates": [...]
},
"type": "Feature",
"id": 26,
"properties": {
"nombre": "Field Zone 4",
"_featid": "24",
"id": 4
}
},
{
"geometry": {
"type": "Polygon",
"coordinates": [...]
},
"type": "Feature",
"id": 27,
"properties": {
"nombre": "Field Zone 3",
"_featid": "6",
"id": 3
}
}
]
},
"id_tipo": 1,
"id_lote": 00000,
"id_usuario": 0000,
"fecha_ini": "2022-03-17 15:58:40.060272",
"id": 00000,
"metadata": {
"capas": {
"1": {
"color": [
252,
141,
89,
255
],
"nombre": "Field Zone 1"
},
"0": {
"color": [
215,
48,
39,
255
],
"nombre": "Field Zone 0"
},
"3": {
"color": [
217,
239,
139,
255
],
"nombre": "Field Zone 3"
},
"2": {
"color": [
254,
224,
139,
255
],
"nombre": "Field Zone 2"
},
"5": {
"color": [
26,
152,
80,
255
],
"nombre": "Field Zone 5"
},
"4": {
"color": [
145,
207,
96,
255
],
"nombre": "Field Zone 4"
}
}
}
}
}

Posibles errores

  1. Mapa no encontrado

Respuesta:

{
"res": "Error",
"info": "Map not found"
}
  1. El usuario no tiene suficientes permisos

Respuesta:

{
"res": "Error",
"info": "User does not have enough permissions"
}

POST

POST api/users/me/maps

Crea un nuevo mapa. En el body se debe enviar la siguiente información:

  • create_application: boolean, crea un registro nuevo en el Registro de campo
  • nombre: String, nombre del mapa a crear
  • id_lote: integer, id de lote
  • id_tipo: integer, tipo de mapa
  • geojson: GeoJSON, feature del mapa a crear
  • metadata: Object, cualquier informacion extra relacionada al mapa

Respuesta:

{
"info": "Valid data",
"res": "OK",
"code": 0
}

Posibles errores

  1. El nombre del mapa ya está en uso

Respuesta:

{
"res": "Error",
"info": "The map name is already used"
}
  1. El usuario no tiene suficientes permisos

Respuesta:

{
"res": "Error",
"info": "User does not have enough permissions"
}

PUT

PUT api/users/me/maps

Pisa un mapa existente. En el body se debe enviar la siguiente información:

  • create_application: boolean
  • nombre: String, nombre del mapa
  • id_lote: integer, id de lote
  • id_tipo: integer, tipo de mapa
  • id: integer, id del mapa a pisar
  • geojson: GeoJSON, feature del mapa
  • metadata: Object, cualquier informacion extra relacionada al mapa

Posibles errores

  1. Mapa no encontrado

Respuesta:

{
"res": "Error",
"info": "Map not found"
}
  1. Acceso denegado

Esto se puede deber a que el mapa lo haya creado otro usuario Respuesta:

{
"res": "Error",
"info": "Denied access"
}
  1. El usuario no tiene suficientes permisos

Respuesta:

{
"res": "Error",
"info": "User does not have enough permissions"
}

PATCH

PATCH api/users/me/maps

Modifica un mapa existente. En el body se pueden enviar los mismos parametros que en el PUT.

Se debe especificar el id del mapa.

Posibles errores

  1. Mapa no encontrado

Respuesta:

{
"res": "Error",
"info": "Map not found"
}
  1. Acceso denegado

Esto se puede deber a que el mapa lo haya creado otro usuario

{
"res": "Error",
"info": "Denied access"
}
  1. El usuario no tiene suficientes permisos

Respuesta:

{
"res": "Error",
"info": "User does not have enough permissions"
}

DOWNLOAD

POST api/users/me/maps/download

Se descarga un archivo del tipo zip que contiene los archivos del mapa en formato shapefile.

En el body se debe enviar la siguiente informacion:

  • id_mapa: integer, id del mapa a descargar
  • nombre: String, nombre del archivo que se descarga

Errores generales:

  1. Mapa no encontrado
{
"res": "Error",
"info": "Map not found"
}
  1. Acceso denegado
{
"res": "Error",
"info": "Denied access"
}
  1. El nombre ya se encuentra en uso
{
"res": "Error",
"info": "The map name is already used"
}
  1. Id de lote invalido
{
"res": "Error",
"info": "Invalid field"
}
  1. El usuario no tiene suficientes permisos
{
"res": "Error",
"info": "User does not have enough permissions"
}
{
"res": "Error",
"info": "User does not have enough permissions"
}
  1. Parámetros invalidos
{
"res": "Error",
"info": "Invalid parameters"
}

Tipos de mapas

idnombre
1ndvi1
2ndvip1
3gndvi1
4gndvip1
5rinde
6rgb1
7rgbp1
8altimetria
9siembra
10herbicida
11fungicida
12insecticida
13fertilizante
14enmienda
15profundidad_suelo
17Densidad_20
22margen_bruto
24ndvi0.8
25vigor planta
26tcari/osavi
27NDRE
29RGB0.8
31Sentinel2
32Planet
34aplicación
35humedad
36Electroconductividad_70
37Electroconductividad_150
39siembra_vel_avance
40siembra_var
41siembra_fecha
42rinde_hum
43rinde_vel_avance
44rinde_fecha
45MO_20
46MO_30
47MO_40
48MO_50
49MO_60
50MO_70
51MO_80
52MO_90
53MO_100
54MO_110
55MO_120
56MO_130
57MO_140
58MO_150
59N_20
60N_30
61N_40
62N_50
63N_60
64N_70
65N_80
66N_90
67N_100
68N_110
69N_120
70N_130
71N_140
72N_150
73P_20
74P_30
75P_40
76P_50
77P_60
78P_70
79P_80
80P_90
81P_100
82P_110
83P_120
84P_130
85P_140
86P_150
87K_20
88K_30
89K_40
90K_50
91K_60
92K_70
93K_80
94K_90
95K_100
96K_110
97K_120
98K_130
99K_140
100K_150
101S_20
102S_30
103S_40
104S_50
105S_60
106S_70
107S_80
108S_90
109S_100
110S_110
111S_120
112S_130
113S_140
114S_150
115PH_20
116PH_30
117PH_40
118PH_50
119PH_60
120PH_70
121PH_80
122PH_90
123PH_100
124PH_110
125PH_120
126PH_130
127PH_140
128PH_150
129Ca_20
130Ca_30
131Ca_40
132Ca_50
133Ca_60
134Ca_70
135Ca_80
136Ca_90
137Ca_100
138Ca_110
139Ca_120
140Ca_130
141Ca_140
142Ca_150
143Mg_20
144Mg_30
145Mg_40
146Mg_50
147Mg_60
148Mg_70
149Mg_80
150Mg_90
151Mg_100
152Mg_110
153Mg_120
154Mg_130
155Mg_140
156Mg_150
157Na_20
158Na_30
159Na_40
160Na_50
161Na_60
162Na_70
163Na_80
164Na_90
165Na_100
166Na_110
167Na_120
168Na_130
169Na_140
170Na_150
171Electroconductividad_30
172Electroconductividad_40
173Electroconductividad_60
174Electroconductividad_90
175Electroconductividad_100
176Electroconductividad_120
177Electroconductividad_130
178Electroconductividad_140
179Arena_20
180Arena_30
181Arena_40
182Arena_50
183Arena_60
184Arena_70
185Arena_80
186Arena_90
187Arena_100
188Arena_110
189Arena_120
190Arena_130
191Arena_140
192Arena_150
193Arcilla_20
194Arcilla_30
195Arcilla_40
196Arcilla_50
197Arcilla_60
198Arcilla_70
199Arcilla_80
200Arcilla_90
201Arcilla_100
202Arcilla_110
203Arcilla_120
204Arcilla_130
205Arcilla_140
206Arcilla_150
207Limo_20
208Limo_30
209Limo_40
210Limo_50
211Limo_60
212Limo_70
213Limo_80
214Limo_90
215Limo_100
216Limo_110
217Limo_120
218Limo_130
219Limo_140
220Limo_150
221Densidad_30
222Densidad_40
223Densidad_50
224Densidad_60
225Densidad_70
226Densidad_80
227Densidad_90
228Densidad_100
229Densidad_110
230Densidad_120
231Densidad_130
232Densidad_140
233Densidad_150
234aplicación_fecha
235aplicación_hum
236aplicación_presion
237aplicación_temp
238aplicación_vel_avance
239costo
240ingreso
390Electroconductividad_20
391Electroconductividad_50
392Electroconductividad_80
393Electroconductividad_110