# 87. Mutação: Salvar VectorAnalysisMap personalizado (ZonesMap)

Abaixo estão os detalhes sobre como salvar um ZonesMap personalizado com um esquema de cores personalizado.

### 1. Salvar geometrias do ZonesMap

{% hint style="danger" %}
VectorAnalysisMap (ZonesMap) `zonesMapGeojson` o atributo deve estar na projeção WGS84 (EPSG:4326) e seguir o GeoJson [especificação](https://geojson.org/).

O esperado `geojson` tipo é `FeatureCollection` com `MultiPolygon`.
{% endhint %}

Mutação `saveVectorAnalysisMap` visão geral:

* O atributo `fieldUuid` é um vínculo ao Campo existente.
* O atributo `nome` descreve o nome do ZonesMap.
* O tipo de atributo é um valor enum que representa o tipo de operação. Pode ser qualquer valor de `GERAL` , `PULVERIZAÇÃO`, `SEMBRANDO`, `FERTILIZAÇÃO` ou `IRRIGAÇÃO`. É opcional.
* O atributo chave com todos os detalhes incluindo taxas para VRA é `zonesMapGeojson` como uma string JSON escapada.&#x20;
  * O número da zona é mencionado em `propriedades` >> `zona`.
  * As taxas serão incorporadas em `propriedades`  >> `atributos`.&#x20;

<mark style="color:padrão;background-color:yellow;">O</mark> <mark style="color:padrão;background-color:yellow;"></mark><mark style="color:padrão;background-color:yellow;">`propriedades`</mark> <mark style="color:padrão;background-color:yellow;"></mark><mark style="color:padrão;background-color:yellow;">atributo é um objeto JSON que é estendido com</mark>  `zona`<mark style="color:padrão;background-color:yellow;">,</mark> <mark style="color:padrão;background-color:yellow;"></mark><mark style="color:padrão;background-color:yellow;">`taxas`</mark><mark style="color:padrão;background-color:yellow;">,</mark> <mark style="color:padrão;background-color:yellow;"></mark><mark style="color:padrão;background-color:yellow;">`ratesHeaders`</mark><mark style="color:padrão;background-color:yellow;">,</mark>  <mark style="color:padrão;background-color:yellow;"></mark><mark style="color:padrão;background-color:yellow;">`ratesPrices`</mark> <mark style="color:padrão;background-color:yellow;"></mark><mark style="color:padrão;background-color:yellow;">e</mark> <mark style="color:padrão;background-color:yellow;"></mark><mark style="color:padrão;background-color:yellow;">`ratesUnits`</mark> <mark style="color:padrão;background-color:yellow;"></mark><mark style="color:padrão;background-color:yellow;">detalhes.</mark>  \
Uma explicação de como atribuir taxas é [AQUI](/geopard-tutorials/pt-br/docs-da-api/visao-geral-das-solicitacoes-da-api-do-geopard/85.-mutacao-atribuir-taxas-ao-vectoranalysismap-zonesmap.md).

{% code overflow="wrap" lineNumbers="true" %}

```json
 {
    \"zone\":1,
    \"attributes\":{
        \"rates\":[100],
        \"ratesHeaders\":[\"Product1\"],
        \"ratesPrices\":[0],
        \"ratesUnits\":[\"KG_HA\"]
    }
}
```

{% endcode %}

Mutação de exemplo sem taxas definidas:

{% code overflow="wrap" lineNumbers="true" %}

```graphql
mutation saveVectorAnalysisMap {  
  saveVectorAnalysisMap(
    input: {
      fieldUuid:"abef3a63-a64b-4d84-aab0-43eaa8fbe0cd" 
      name:"Custom Zones" 
      zonesMapGeojson:"{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"properties\":{\"zone\":1,\"attributes\":{}},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[10.426584494429108,52.872847225483895],[10.426789204309529,52.87282914352929],[10.42676923261385,52.87256092698456],[10.42679456306152,52.87240585041315],[10.427391783218683,52.87195386627311],[10.427338425939524,52.872087776901424],[10.427073800972806,52.87238914697767],[10.426899048635903,52.872624214183844],[10.42701887880915,52.872889416681545],[10.427403333950082,52.87288037571423],[10.427498199505067,52.872940648795804],[10.427403333950082,52.8731003720562],[10.42777780324397,52.873242012946434],[10.428022456514952,52.87323297205208],[10.428167251308338,52.8731244811766],[10.42807737867767,52.87286832108788],[10.42809735037332,52.87259407743369],[10.428501777209902,52.872404215426826],[10.428611621536277,52.87250969442229],[10.42882132434022,52.87257900905101],[10.429100928079123,52.87232585943539],[10.429155850242694,52.87216914702836],[10.429205779481066,52.87184065187668],[10.429263945397143,52.87180554285836],[10.42928833,52.87242022],[10.42922193,52.8725049],[10.42915175626986,52.87255993568499],[10.429021041297204,52.872554899627374],[10.428771395100966,52.872708596972984],[10.42838693996012,52.872847225483895],[10.428257123938948,52.87296777165494],[10.428370342208543,52.873172781233286],[10.42795711,52.87349687],[10.42718139841625,52.87321758481732],[10.427228581614003,52.87319078118864],[10.427208609918353,52.87305516741958],[10.42683913354881,52.873015990029785],[10.426664381211879,52.87293763514347],[10.426584494429108,52.872847225483895]]],[[[10.427804124872603,52.871641800637654],[10.42875584,52.87092153],[10.42897875,52.87105982],[10.42921404,52.87137376],[10.429231472601687,52.87152239994234],[10.428951140362273,52.871638731603355],[10.42879635972102,52.87193709107814],[10.428666543698995,52.872057639778546],[10.428371961188788,52.872057639778546],[10.42821218762407,52.87183161069021],[10.427967534352206,52.871708047624395],[10.427804124872603,52.871641800637654]]]]}},{\"type\":\"Feature\",\"properties\":{\"zone\":2,\"attributes\":{}},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[10.426899048635903,52.872624214183844],[10.427073800972806,52.87238914697767],[10.427338425939524,52.872087776901424],[10.427391783218683,52.87195386627311],[10.427804124872603,52.871641800637654],[10.427967534352206,52.871708047624395],[10.42821218762407,52.87183161069021],[10.428371961188788,52.872057639778546],[10.428666543698995,52.872057639778546],[10.42879635972102,52.87193709107814],[10.428951140362273,52.871638731603355],[10.429231472601687,52.87152239994234],[10.42926357,52.87179608],[10.429263945397143,52.87180554285836],[10.429205779481066,52.87184065187668],[10.429155850242694,52.87216914702836],[10.429100928079123,52.87232585943539],[10.42882132434022,52.87257900905101],[10.428611621536277,52.87250969442229],[10.428501777209902,52.872404215426826],[10.42809735037332,52.87259407743369],[10.42807737867767,52.87286832108788],[10.428167251308338,52.8731244811766],[10.428022456514952,52.87323297205208],[10.42777780324397,52.873242012946434],[10.427403333950082,52.8731003720562],[10.427498199505067,52.872940648795804],[10.427403333950082,52.87288037571423],[10.42701887880915,52.872889416681545],[10.426899048635903,52.872624214183844]]]]}},{\"type\":\"Feature\",\"properties\":{\"zone\":3,\"attributes\":{}},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[10.428257123938948,52.87296777165494],[10.42838693996012,52.872847225483895],[10.428771395100966,52.872708596972984],[10.429021041297204,52.872554899627374],[10.42915175626986,52.87255993568499],[10.428370342208543,52.873172781233286],[10.428257123938948,52.87296777165494]]],[[[10.42619246,52.87286153],[10.42679456306152,52.872405850413145],[10.42676923261385,52.87256092698456],[10.426789204309529,52.87282914352929],[10.426584494429108,52.872847225483895],[10.426664381211879,52.87293763514347],[10.42683913354881,52.873015990029785],[10.427208609918353,52.87305516741958],[10.427228581614003,52.87319078118864],[10.42718139841625,52.87321758481732],[10.42619246,52.87286153]]]]}}]}"
    }
  ) {
    uuid
  }
}
```

{% endcode %}

A representação padrão sem esquema de cores atribuído fica assim. O ZonesMap do usuário >> `geoMaps` >> `url` é semelhante a [https://api.geopard.tech/geo/map/reflect?TRANSPARENT=true\&VIEWPARAMS=uuid:4a3929a5-c166-41d7-b547-da1511a9fa1d\&LAYERS=custom\_zone\_map\_view\&SRS=EPSG:3857\&STYLES=default\_zonesmap\&HEIGHT=64\&BBOX=1160638.4354309493,6959157.496681602,1160983.0667152018,6959632.459385279\&geopardApiKey=\<your\_geopard\_api\_key>](https://api.geopard.tech/geo/map/reflect?TRANSPARENT=true\&VIEWPARAMS=uuid:4a3929a5-c166-41d7-b547-da1511a9fa1d\&LAYERS=custom_zone_map_view\&SRS=EPSG:3857\&STYLES=default_zonesmap\&HEIGHT=64\&BBOX=1160638.4354309493,6959157.496681602,1160983.0667152018,6959632.459385279\&geopardApiKey=<your_geopard_api_key>).

<figure><img src="/files/56bba707f50df465b2f50d026f4b625a96b7759d" alt=""><figcaption></figcaption></figure>

### 2. Atribuir esquema de cores personalizado

Mutação `setGeoMaps` visão geral:

* O atributo `fieldUuid` é um vínculo ao Campo existente.
* O atributo `vectorAnalysisMapUuid` é um vínculo ao ZonesMap (VectorAnalysisMap) recém salvo no primeiro passo.
* O atributo `shortName` descreve o estilo a ser alterado. \
  Opções para ZonesMap são `zones` e `miniatura`.
* O atributo `hexColorCodes` descreve os códigos de cores hexadecimais a serem definidos.

{% hint style="danger" %}
O número de cores em `hexColorCodes` deve representar o número exato de zonas existentes`.`
{% endhint %}

Uma explicação de como salvar cores personalizadas é [AQUI](/geopard-tutorials/pt-br/docs-da-api/visao-geral-das-solicitacoes-da-api-do-geopard/39.-mutacao-definir-esquemas-de-cores-personalizados-para-geomaps-selecionados.md) e como aplicar cores personalizadas dinamicamente é [AQUI](/geopard-tutorials/pt-br/docs-da-api/endpoints-geo-para-acesso-a-dados-espaciais/wms-obter-imagens-raster-de-camadas-de-dados-espaciais/6.-zonesmap-esquema-de-cores-personalizado.md).

Mutação de exemplo:

{% code overflow="wrap" lineNumbers="true" %}

```graphql
mutation setGeoMaps{
  setGeoMaps(
    input: {
      geoMaps:[
        {
          shortName:"zones" 
          fieldUuid:"abef3a63-a64b-4d84-aab0-43eaa8fbe0cd" 
          vectorAnalysisMapUuid:"9799e2eb-06d2-4a42-8f47-38655abf11e1"
          hexColorCodes:[
            "#ffffbf",
            "#66bd63",
            "#f46d43"
          ]
        }, {
          shortName:"thumbnail" 
          fieldUuid:"abef3a63-a64b-4d84-aab0-43eaa8fbe0cd" 
          vectorAnalysisMapUuid:"9799e2eb-06d2-4a42-8f47-38655abf11e1" 
          hexColorCodes:[
            "#ffffbf",
            "#66bd63",
            "#f46d43"
          ]
        }
      ]
    }
  ) {
    shortName
  }
}
```

{% endcode %}

Como resultado, a representação visual do ZonesMap >> `geoMaps` >> `url` semelhante a [https://api.geopard.tech/geo/map/reflect?TRANSPARENT=true\&VIEWPARAMS=uuid:9799e2eb-06d2-4a42-8f47-38655abf11e1\&LAYERS=custom\_zone\_map\_view\&SRS=EPSG:3857\&STYLES=default\_zonesmap\&HEIGHT=64\&BBOX=1160638.4354309493,6959157.496681602,1160983.0667152018,6959632.459385279\&env=c1:#ffffbf;c2:#66bd63;c3:#f46d43\&geopardApiKey=\<your\_geopard\_api\_key>](https://api.geopard.tech/geo/map/reflect?TRANSPARENT=true\&VIEWPARAMS=uuid:9799e2eb-06d2-4a42-8f47-38655abf11e1\&LAYERS=custom_zone_map_view\&SRS=EPSG:3857\&STYLES=default_zonesmap\&HEIGHT=64\&BBOX=1160638.4354309493,6959157.496681602,1160983.0667152018,6959632.459385279\&env=c1:#ffffbf;c2:#66bd63;c3:#f46d43\&geopardApiKey=<your_geopard_api_key>) parece assim.

<figure><img src="/files/2b31765a28de0c9c7c6ba5ed161eeadcc3600a5a" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.geopard.tech/geopard-tutorials/pt-br/docs-da-api/visao-geral-das-solicitacoes-da-api-do-geopard/87.-mutacao-salvar-vectoranalysismap-personalizado-zonesmap.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
