Implementação de Mapa de Requerimentos no SAPL 2.5 O Mapa de Requerimentos fui uma implementação realizada na Câmara Municipal de Jataí. Não foi compartilhada diretamente no Colab por exigir alteração em Banco de Dados. Devido o interesse manifestado por outra casa legislativa em utilizar a funcionalidade, este documento foi desenvolvido com a finalidade de se compartilhar a ideia para implementação particular. O Mapa de Requerimentos (MR) utiliza a API Javascript do Google Maps com base nas latitudes e longitudes associadas aos requerimentos registrados no SAPL. A Câmara Municipal de Jataí (CMJ) realiza esse procedimento apenas para Requerimentos, porém, a partir de uma pesquisa qualquer matéria legislativa pode ser apontada a partir da pesquisa. Lembra-se ainda que para implementação do MR, o interessado deve ter acesso ao código de sua instância SAPL. Todos os códigos citados e com figuras demostrativas podem ser baixados, do servidor da CMJ em... [http://www.camarajatai.go.gov.br/mr.zip]. No entanto, não utilize o arquivo de forma integral, atente apenas às alterações citadas nas figuras deste documento, pois podem haver outras alterações particulares alteradas pela CMJ ou, se seu código é oficial, outras alterações feitas por outros usuários. O restante deste documento apresenta as alterações de código e, quando couber, as possibilidades geradas. 1. 2. 3. 4. 5. Latitude e Longitude da Casa Legislativa Banco de Dados Consulta Alteração e Inclusão Mapa de Requerimentos 1. Latitude e Longitude da Casa Legislativa Para que o MR seja iniciado com o foco em sua cidade é necessário fazer um levantamento inicial das Coordenadas de Latitude e Longitude (CLL) da cidade que o implementará. Para uma melhor exatidão dessa informação, tanto para o marco zero quanto para os requerimentos, a CMJ utiliza sempre a CLL com precisão de seis casas decimais. O primeiro passo, portanto é descobrir o CLL de sua cidade. Como exemplo, o CLL de Jataí é: Latitude: -17.885295 Longitude: -51.720401 Observe que os números estão com o ponto como divisão decimal e, assim deve ser. Para que estes dados possam ser utilizados e não sejam inseridos de forma estática no código do MR, a sua edição/armazenamento foi adicionada nas (Tabelas Auxiliares – Casas Legislativas). Esta alteração no SAPL para armazenamento da CLL da cidade é diferente da alteração para armazenamento da CLL para as matérias legislativas, sendo que, a primeira, é feita na ZMI, e será discutida nessa seção e, a segunda, que é discutida na seção 2. • Armazenamento da CLL da cidade Pois bem, os dados registrados em (Tabelas Auxiliares – Casas Legislativas) são configurados na ZMI a partir do objeto que representa seu SAPL. Acesse em sua ZMI /sapl_documentos/props_sapl e clique na aba Properties Nota: Se você tem acesso ao Root Folder da ZMI então, possivelmente, o link acima deverá ser iniciado dentro a partir do objeto sapl, ou seja, o link terá prefixo “/sapl”. Você verá que os dados de (Tabelas Auxiliares – Casas Legislativas) estão armazenados nessa tela. Adicione, no final dessa tela, outros dois campos do tipo string, chamados: i) txt_latitude ii) txt_longitude. Neste instante você já pode adicionar a CLL, porém, o poderá fazer também na interface web do SAPL. Ficará semelhante a figura abaixo. • Edição da CLL da cidade na interface do SAPL. Para que se possa fazer alterações na CLL da cidade através do SAPL é necessário alterar o arquivo /cadastros/auxiliares/casa_legislativa/casa_legislativa_form.dtml • Guardar alteração da CLL da cidade na interface do SAPL. Ao Clicar no botão [Salvar] o arquivo abaixo é chamado. As alterações feitas nele estão na imagem abaixo. /cadastros/auxiliares/casa_legislativa/casa_legislativa_salvar_proc.dtml 2. Banco de Dados A CLL para as matérias legislativas, diferentemente da de cidade, devem ser guardadas no banco de dados interlegis... pra realizar essa alteração na base de dados, deve existir apenas uma alteração na tabela materia_legislativa que pode ser feita através do sql abaixo: ALTER TABLE `materia_legislativa` ADD `txt_latitude` `txt_latitude` VARCHAR( 15 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL, ADD `txt_longitude` `txt_longitude` VARCHAR( 15 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL Além da alteração na base, existem alguns arquivos zsql que devem ser alterados, são eles: skins/sk_sapl/zsql/materia_incluir_zsql.zsql skins/sk_sapl/zsql/materia_obter_zsql.zsql skins/sk_sapl/zsql/materia_pesquisar_zsql.zsql skins/sk_sapl/zsql/materia_atualizar_zsql.zsql em todos esses arquivos existe apenas a adição necessária para tratamento dos dois novos campos. 3. Consulta A consulta do MR (/generico/materia_pesquisar_maps) funciona exatamente como a consulta feita pela Pesquisa Básica de Matéria Legislativa (/generico/materia_pesquisar_proc). Diferenciando-se pelo fato que na versão “maps” não existe paginação. Em uma pesquisa já feita, o mapa pode ser mostrado simplesmente trocando “proc” por “maps”, porém, serão criados pontos para aquelas matérias que tiverem armazenada a CLL. Neste sentido, não se trata apenas de um MR, mas um mapa que pode ser para qualquer matéria legislativa. Na CMJ é que foi apenas criado um item no menu lateral chamado MR e passado em seu link uma pesquisa por tipo Requerimento que, inclusive, depende do código que pode, e possivelmente é, diferente em várias casas legislativas. Como o link MR foi criado será tratado na seção 5. Na CMJ, além de ter sido criado o link no menu lateral MR, ocorreu também uma alteração no arquivo (/generico/materia_pesquisar_proc) afim de incluir duas características: 1) todo documento que aparece nos resultados e tem CLL aparece ao lado de seu título a imagem abaixo 2) além disso a versão maps da pesquisa atual pode ser visualizada ao clicar no link, indicado pela mesma imagem acima, posicionado no canto direito superior, ao lado da Assinatura de RSS Na figura abaixo pode ser observado essas duas características. • Alteração de código em (/generico/materia_pesquisar_proc) Este arquivo está disponibilizado também mas existem diversas alterações em relação ao oficial. Seu uso completo não é recomendado sem conhecimento das outras partes. Se das alterações citadas acima, tem-se respectivamente aos itens abordados: 1) imagem que informa que o documento possui CLL. Inserido no início da construção do item da listagem. <dtml-if expr="txt_latitude != ''"> <img align="absmiddle" src="&dtml-portal_url;/imagens/img_mapa.jpg" alt="Icone do Mapa" title="Proposição possui cadastro de georreferenciamento" style="width: 16px;"/> </dtml-if> 2) O link geral. A figura abaixo mostra a inserção de código feita logo após o RSS que cria o link citado no item (2) anterior: <a style="float:right;" href="&dtml-portal_url;/generico/materia_pesquisar_maps?<dtml-var "REQUEST.get('QUERY_STRING','')">"> <img src="&dtml-portal_url;/imagens/img_mapa.jpg" style="height: 20px;"/> </a> A imagem chamada na tag <img> também está no material que citado neste tutorial. 4. Alteração e Inclusão A possibilidade de o usuário registrar a CLL é feita na alteração e inclusão. Três arquivos devem ser alterados com esse fim: skins/sk_sapl/cadastros/materia/materia_form_resumido.dtml skins/sk_sapl/cadastros/materia/materia_form.dtml skins/sk_sapl/cadastros/materia/materia_salvar_proc.dtml Estes três arquivos estão disponíveis e suas diferenças com relação aos oficiais se restringem a inclusão dos novos campos. 5. Mapa de Requerimentos • Item de Menu Apesar de o código (/generico/materia_pesquisar_maps) e todas alterações contemplar qualquer matéria legislativa, a CMJ alimenta com CLL apenas os requerimentos. Para oferecer esta consulta basta inserir um item no menu lateral, no arquivo skins/sk_sapl/standard_html_lateral código do item: <li><a href="&dtml-portal_url;/generico/materia_pesquisar_maps? incluir=0&existe_ocorrencia=0&lst_tip_materia=3&txt_numero=&txt_ano=&txt_npc=&txt_num_protocolo=&dt_apres=&dt_apr es2=&dt_public=&dt_public2=&hdn_txt_autor=&hdn_cod_autor=&lst_tip_autor=&lst_cod_partido=&txt_relator=&txt_assunto =&rad_tramitando=&lst_localizacao=&lst_status=&rd_ordenacao=1&rd_ordem_td=1&chk_coautor=&btn_materia_pesquisar=Pes quisar">Mapa de Requerimentos</a></li> Observe que nosso tipo de matéria Requerimento tem identificador 3, o que pode ser diferente em cada casa legislativa. • O mapa gerado pelo código (/generico/materia_pesquisar_maps) O código gera um mapa básico implementando a API Javascript do Google Maps. Além disso constrói um menu lateral com os autores parlamentares ativos. O mapa é apresentado na versão de usuário anônimo e na versão usuário logado, sendo que a diferença entre eles é o auxílio para a captura da CLL. A versão usuário logado é acessível apenas via URL, ou clicando no link lateral direito da tela de pesquisa, citado na seção 3. Nesta forma não aparecem pontos, sendo, pois, apenas o mapa. Útil para captura de ponto através de cliques no mapa... a cada clique os dois números no topo da imagem e são alterados e referem-se a CLL, sendo respectivamente latitude e longitude. A versão usuário anônimo apresenta os pontos referentes a pesquisa, seja sendo filtrado por autores parlamentares, o toda a base de dados seguindo o link do MR, acima customizado. Toda a base registrada da CMJ: Aplicação para o centro da cidade: Um clique em uma marcação, sendo que clicar no título do caixa, leva de volta para o SAPL na tela de consulta da matéria legislativa: Agradeço o interesse do Juliano Rafael Bringer Nunes de Domingos Martins-ES que pediu compartilhamento deste implementação. Produzi este documento bem corrido, vão desculpando aí as falhas... qualquer dúvida... pode entrar em contato... ============================== Leandro Roberto - (64) 9995-3850 Câmara Municipal de Jataí - (64) 3636-0816 Departamento de Tecnologia de Informação e Comunicação http://www.camarajatai.go.gov.