IntegracaoComDadosDosConsumidores Page History


Aqui é descrito o processo de integração do GeoSan com o GSAN ou outro software comercial para as empresas de saneamento que possuem leitura de conta através de aparelho que coleta a coordenada GPS.

Como estes coletores possuem GPS de baixa precisão, os pontos coletados necessitam ser movidos para que possam ficar adequadamente posicionados e em seguida serem associados as redes.

Tabela NXGS_V_LIG_COMERCIAL_GPS

Esta tabela possui os dados de campo, coletados. Ela deve possuir o seguinte formato:

USE [sama]
GO

/****** Object:  Table [dbo].[NXGS_V_LIG_COMERCIAL_GPS]    Script Date: 08/21/2016 20:15:42 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[NXGS_V_LIG_COMERCIAL_GPS](
    [ID] [varchar](30) NULL,
    [NRO_LIGACA] [varchar](20) NULL,
    [NRO_LIG_SD] [varchar](20) NULL,
    [CLA_FISCAL] [varchar](30) NULL,
    [COD_LOG] [varchar](30) NULL,
    [ENDERECO] [varchar](254) NULL,
    [END_NOME] [varchar](254) NULL,
    [NRO_CASA] [varchar](15) NULL,
    [COMP_LOG] [varchar](60) NULL,
    [BAIRRO] [varchar](150) NULL,
    [HIDROMETRO] [varchar](30) NULL,
    [COD_CONSUM] [varchar](20) NULL,
    [COD_CO_SDV] [varchar](20) NULL,
    [CONSUMIDOR] [varchar](150) NULL,
    [TEL_RES] [varchar](20) NULL,
    [TEL_COM] [varchar](20) NULL,
    [TIPO] [varchar](20) NULL,
    [ECONOMIAS] [float] NULL,
    [HIDROMETRA] [varchar](3) NULL,
    [DATA_IMP_A] [datetime] NULL,
    [DATA_INP_E] [datetime] NULL,
    [ROTA_LEIT] [float] NULL,
    [SETOR_LEIT] [float] NULL,
    [GRUPO_LEIT] [float] NULL,
    [ROTEIRO_LE] [float] NULL,
    [SEQ_LEIT] [float] NULL,
    [ANOFABRICA] [varchar](4) NULL,
    [TIPOFATURA] [varchar](40) NULL,
    [CONSUMO_LP] [float] NULL,
    [SITUACAOLI] [varchar](20) NULL,
    [LATITUDE] [float] NULL,
    [LOGITUDE] [float] NULL,
    [UTM_X] [float] NULL,
    [UTM_Y] [float] NULL,
    [VL_TARIFA] [float] NULL,
    [VL_TARIFA2] [float] NULL,
    [VOL_FATURA] [float] NULL,
    [VL_TOTALFA] [float] NULL,
    [CONS_MEDIO] [float] NULL,
    [object_id_327] [varchar](16) NOT NULL,
    [USUARIO_LOG] [varchar](50) NULL,
    [DATA_LOG] [varchar](50) NULL,
    [DATALOG] [datetime] NULL,
PRIMARY KEY CLUSTERED 
(
    [object_id_327] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

Lembrar que a coluna object_id_327, em nosso exemplo acima foi criada automaticamente quando esta tabela contendo todos os dados de uma medição de contas de água em campo, foi importada pelo Terraview v. 4.2.2.

Você não precisa rodar esta querie para criar a tabela, mas precisa de um arquivo no formato shape (pontos) com estas colunas descritas acima, com exceção da object_id_327, para importar pelo Terraview.

Uma vez importado este arquivo shape com este nome o próximo passo é habilitar a tabela de textos.

Tabela TextsXXX

É necessário adicionar manualmente uma tabela de textos, a qual ficará associada diretamente a tabela contendo os consumidores (pontos), NXGS_V_LIG_COMERCIAL_GPS.

O Terralib permite associar junto ao mesmo, duas ou mais tabelas de geometrias. Em nosso caso como temos os pontos onde estão os consumidores, vamos associar a esta tabela de geometria de pontos e de atributos dos consumidores, a tabela de textos, que conterá o número da casa do imóvel. O objetivo é facilitar o ajuste da posição do consumidor ao local correto no mapa, através da visualização do número da casa ao lado de cada consumidor.

Para isso no SQLServer, crie manualmente a tabela de textos com a sintaxe conforme apresentada a seguir.

USE [sama]
GO

/****** Object:  Table [dbo].[Texts327]    Script Date: 08/20/2016 10:45:03 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[Texts327](
    [geom_id] [int] IDENTITY(1,1) NOT NULL,
    [object_id] [varchar](255) NULL,
    [x] [float] NULL,
    [y] [float] NULL,
    [text_value] [varchar](255) NULL,
    [angle] [float] NULL,
    [height] [float] NULL,
    [alignment_vert] [float] NULL,
    [alignment_horiz] [float] NULL,
PRIMARY KEY CLUSTERED 
(
    [geom_id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[Texts327] ADD  DEFAULT ('0.0') FOR [x]
GO

ALTER TABLE [dbo].[Texts327] ADD  DEFAULT ('0.0') FOR [y]
GO

ALTER TABLE [dbo].[Texts327] ADD  DEFAULT ('0.0') FOR [angle]
GO

ALTER TABLE [dbo].[Texts327] ADD  DEFAULT ('0.0') FOR [height]
GO

Lembrar novamente que o número 327 é o do nosso exemplo e o mesmo deve ser substituído pelo número do layer. Para saber qual o número do layer, veja a tabela te_layer, na linha em que se encontra o shape recentemente importado, e substitua o número 327 pelo seu número.

Como resultado teremos duas tabelas de geometrias, uma de pontos e outra de textos, que estão associadas a tabela de atributos NXGS_V_LIG_COMERCIAL_GPS.

te_representation

O Terralib não sabe que existe esta tabela de textos associada e para que ele saiba é necessário informar rodando a seguinte querie:

insert into te_representation (layer_id, geom_type, geom_table, lower_x, upper_x, lower_y, upper_y, res_x, res_y, num_rows, num_cols ) values (327, 128, 'Texts327', 347484.245300293, 357224.767700195, 7376890.14093018, 7386590.86407471, 0, 0, 0, 0 )

Lembrando que os números 347484.245300293, 357224.767700195, 7376890.14093018, 7386590.86407471 são as coordenadas máximas e mínimas do box do mapa. Mais informações estão disponíveis na documentação das tabelas do Terralib na pasta doc. Ver a última versão do documento 01 - Especificacao de software Geosan - 07.00.31.doc

O número 327 indica o número com os pontos GPS que você importou, substitua pelo seu número.

O número 128 indica geometrias do tipo texto. Mantenha como está.

Texts327 indica o nome da tabela de geometrias de textos, substitua o número 327 pelo número de sua tabela.

Update

UPDATE Texts327 SET Texts327.text_value = i.ENDERECO
FROM (
SELECT object_id_327,ENDERECO
FROM NXGS_V_LIG_COMERCIAL_GPS) i
WHERE Texts327.object_id = i.object_id_327

Referências

Update


Last edited by José Maria Villac Pinheiro