---
sourceDocument: Interface do usuário da Now Platform Yokohama
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/yokohama/platform-user-interface

 Release :

    - yokohama

ft:locale :

    - pt-BR

ft:publication_title :

    - Interface do usuário da Now Platform Yokohama

ft:clusterId :

    - platux

bundleId :

    - platux

workflow :

    - Platform


---

# Scripting para páginas de mapa

# Scripting para páginas de mapa {#ariaid-title1}

* Versão de lançamento: Yokohama
* 
* Atualizado 30 de jan. de 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 5 min. de leitura

O campo Script no formulário Página de mapa permite o uso de atributos ou código personalizado para definir características do mapa, como aparência do marcador, informações de exibição e muito mais.

## Atributos do item do mapa de script

Os atributos a seguir estão disponíveis.  
Nota:  
Para criar um item no mapa, use AddItem (glideRecord) método. Passe um GlideRecord válido para addItem().
{#scripting-for-map-pages__table_a3s_kr5_cr__entry__2}

| Atributo | Descrição |
|-|-|
| nome | Nome usado para identificação. |
| latitude | Se você definir um endereço, a latitude não será necessária. |
| longitude | Se você definir um endereço, a longitude não será necessária. |
| ícones | URL do ícone a ser exibido para o marcador. Se um ícone personalizado não for especificado, o marcador padrão do Google será usado. |
| icon_width | Largura do ícone. O padrão é 32. |
| icon_height | Altura do ícone. O padrão é 32. |
| table_name | Tabela cujos registros são exibidos quando o ícone do marcador é clicado. Usado com sys_idatributo. |
| sys_id | Sys_id do registro que é exibido quando o ícone do marcador é clicado. Usado com table_nameatributo. |
| exibição | Exibição do formulário exibido na caixa de diálogo quando o ícone do marcador é clicado. |
| html | Código HTML arbitrário para a janela pop-up. Se usado, este valor substitui a caixa de diálogo. |
| marker_label | Texto do rótulo do ícone do marcador opcional. |
| label_offset_left | Atributo opcional usado com marker_labelpara definir a posição horizontal do rótulo do marcador. O padrão é 0. |
| label_offset_top | Atributo opcional usado com marker_labelpara definir a posição vertical do rótulo do marcador. O padrão é 0. |
[ ]

{#scripting-for-map-pages__table_a3s_kr5_cr}

## Script do comportamento da página de mapa personalizado para smartphone {#scripting-for-map-pages__section_sx4_jtw_j1b}

Se você planeja acessar a página do mapa de um smartphone, você pode querer definir o comportamento personalizado da interface do smartphone usando o. isMobilevariável. Você pode usar o. isMobilevariável para definir o comportamento personalizado para a exibição do smartphone do mapa. Por exemplo, você pode definir valores diferentes para icon_widthe. icon_heightatributos quando isMobileé verdadeiro.

## Script de página de mapa básico {#scripting-for-map-pages__section_q5n_ytw_j1b}

Este script exibe todos os locais de incidentes críticos e ativos.

    //setup new GlideRecord query on the incident table
    var now_GR = new GlideRecord("incident");
    //add condition for priority 1
    gr.addQuery('priority', '1');
    //add condition for active incidents
    gr.addActiveQuery();
    //execute the query
    gr.query();
     
    //loop through the list of incidents returned by the query
    while (gr.next()) {
     
     //create a new map item to display - linked to the current incident record
     var item = map.addItem(now_GR);
     //add the latitude value from the incident's location
     item.latitude = gr.location.latitude;
     //add the longitude value from the incident's location
     item.longitude = gr.location.longitude;
     //link to the icon image
     item.icon = "http://maps.google.com/mapfiles/kml/pal3/icon51.png";
     //set the icon size
     item.icon_width = "16";
     item.icon_height = "16";
    }

## Script de página de mapa do isMobile {#scripting-for-map-pages__section_ldd_v5w_j1b}

Este script exibe todos os locais de incidentes críticos ativos com configurações personalizadas para usuários de smartphone.

    //setup new GlideRecord query on the incident table
    var now_GR = new GlideRecord("incident");
    //add condition for priority 1
    gr.addQuery('priority', '1');
    //add condition for active incidents
    gr.addActiveQuery();
    //execute the query
    gr.query();
     
    //loop through the list of incidents returned by the query
    while (gr.next()) {
     
     //create a new map item to display - linked to the current incident record
     var item = map.addItem(now_GR);
     //add the latitude value from the incident's location
     item.latitude = gr.location.latitude;
     //add the longitude value from the incident's location
     item.longitude = gr.location.longitude;
     //link to the icon image
     item.icon = "http://maps.google.com/mapfiles/kml/pal3/icon51.png";
     
     //set the icon size (use smaller icons for smartphone users)
     if (isMobile) {
       item.icon_width = "12";
       item.icon_height = "12";
     }
     else { 
       item.icon_width = "16";
       item.icon_height = "16";
     }
    }

## Script de página de mapa avançado {#scripting-for-map-pages__section_blc_bvw_j1b}

Este script exibe o número de incidentes em aberto por local. O tamanho do ícone varia com base no número de incidentes em aberto para o local. Usando o parâmetro html, ele também exibe o nome do local e o número de incidentes, bem como um link para a lista de incidentes relacionados.

    //get the instances url so we can link back to it
    var uri = gs.getProperty("glide.servlet.uri");
    //create an aggregate query on the incident table
    var count = new GlideAggregate('incident');
    //set condition for active incidents
    count.addQuery('active', 'true');
    //set aggregate field to location to get count by location
    count.addAggregate('COUNT', 'location');
    //execute the query
    count.query();
     
    //loop through the results
    while (count.next()) {
     
     //get the current record's location
     var loc = count.location;
     //get the count of incidents for this location
     var locCount = count.getAggregate('COUNT', 'location');
     //only display location is there are active incidents
     if (locCount > 0) {
     //create new new map item for this location
     var item = map.addItem(count);
     //set lat/long from the location record
     item.latitude = loc.latitude;
     item.longitude = loc.longitude;
     //build the link to the list of incidents for the location
     var link = 'href=' + uri + 'incident_list.do?sysparm_query=active%3Dtrue^location%3D' + loc;
     //build the html value to be displayed when you click the map icon
     item.html='<a ' + link + '>' + loc.getDisplayValue() + ' (' + locCount + ')</a>';
     //link to the icon image
     item.icon = "http://maps.google.com/mapfiles/kml/pal3/icon51.png";
     //set the size of the icon based on the number of active incidents
     if (locCount < 5) {
     item.icon_width = "12";
     item.icon_height = "12";
     }
     else if (locCount < 15) {
     item.icon_width = "16";
     item.icon_height = "16";
     }
     else {
     item.icon_width = "32";
     item.icon_height = "32";
     }
     }
    }

## Script de rótulo do marcador de página do mapa {#scripting-for-map-pages__section_nyt_mvw_j1b}

Os rótulos de marcador permitem adicionar texto dinâmico aos marcadores. Este exemplo exibe a contagem de incidentes ativos em cada local. Figura 1. Rótulos de marcador de mapa

    //get the instances url so we can link back to it
    var uri = gs.getProperty("glide.servlet.uri");
    //create an aggregate query on the incident table
    var count = new GlideAggregate('incident');
    //set condition for active incidents
    count.addQuery('active', 'true');
    //set aggregate field to location to get count by location
    count.addAggregate('COUNT', 'location');
    //execute the query
    count.query();
     
    //loop through the results
    while (count.next()) {
     
     //get the current record's location
     var loc = count.location;
     //get the count of incidents for this location
     var locCount = count.getAggregate('COUNT', 'location');
     //only display location is there are active incidents
     if (locCount > 0) {
     //create new new map item for this location
     var item = map.addItem(count);
     //set lat/long from the location record
     item.latitude = loc.latitude;
     item.longitude = loc.longitude; 
     
     //create a marker label with the count
     item.marker_label = locCount;
     //define label offset for proper position
     item.label_offset_left = -4;
     item.label_offset_top = -20;
     
     //option to define table and record for label hyperlink
     //setting table and sys_id will override the use of html parameter
     //item.table = 'cmn_location';
     //item.sys_id = loc;
     
     //build the link to the list of incidents for the location
     var link = 'href=' + uri + 'incident_list.do?sysparm_query=active%3Dtrue^location%3D' + loc;
     //build the html value to be displayed when you click the map icon
     item.html='<a ' + link + '>' + loc.getDisplayValue() + ' (' + locCount + ')</a>';
     
     //link to the icon image
     item.icon = "images/red_marker.png";
     //set the size of the icon based on the number of active incidents
     item.icon_width = 24;
     item.icon_height = 24;
     
     }
    }

**Tarefas relacionadas**   

* [Configurar a API do Google Maps](https://servicenow-prod.fluidtopics.net/uQeE_AaQPw1thNJa0pSgyA "Você habilita o recurso de geolocalização usando as entradas apropriadas de um GoogleAPI de mapas para negócios, ou um GoogleChave de API JavaScript do mapeia.")
* [Crie uma página de mapa](https://servicenow-prod.fluidtopics.net/kf45GgaQmeqEAVIpdxA0uQ "Seu ServiceNowa instância fornece várias páginas de mapa padrão. Você também pode criar páginas de mapa personalizadas com os exemplos de script descritos nesta página.")
* [Crie um módulo de página de mapa](https://servicenow-prod.fluidtopics.net/jGwRq2l9Rq1iIA0~AWdaCA "Você pode criar um novo módulo de aplicação para que os usuários de desktop ou smartphone exibam um Googlepágina do mapa.")
* [Crie uma página de mapa avançada](https://servicenow-prod.fluidtopics.net/1GOLiq0CJtf__K4tdeIibw "Use a configuração avançada para configurar páginas de mapa sem script.")
* [Definir escopo da aplicação de mapa](https://servicenow-prod.fluidtopics.net/qHTar20aXTM9p367An7XNQ "Habilite o escopo da aplicação de mapa para especificar qual aplicação pode modificar a configuração da página de mapa.")
* [Crie um módulo de página de mapa do smartphone](https://servicenow-prod.fluidtopics.net/gyI_DKwXqiFgarUcwpNWIA "Você pode criar um módulo de smartphone personalizado vinculado diretamente a uma página de mapa.")

