====== Especificação funcional: Coordenadas====== ===== Resumo ===== O cadastro registra as coordenadas que informam a localização de qualquer ponto na superfície terrestre. Ele permite cadastrar um ponto, uma linha ou um polígono que contém as coordenadas necessárias para a demonstração da feição no mapa. ===== Descrição ===== O sistema deverá permitir incluir, alterar e excluir coordenadas e características para um logradouro, um bairro , um distrito e um ponto de atendimento. O sistema deverá disponibilizar uma maneira de exportar as coordenadas para o Google Earth. |< 100% 19% 60% 7% 7% 7%>| ^ Campo ^ Descrição ^ Tipo ^ Tamanho ^ Obrigatório? ^ |Descrição |Descrição da feição | texto | 60 | Sim | |Tipo |Informa se as coordenadas referenciam um ponto, um polígono ou uma linha | Enumerado | -- | Sim | |Sistema de coordenadas |Sistema em que as coordenadas foram medidas (graus ou UTM) | Enumerado | -- | Sim | |Zona UTM |Informa a zona e o designador da zona de acordo com o plano cartesiano, quando aplicável | Enumerado | -- | Sim | |Coordenadas |Lista com as coordenadas(latitude, longitude e altitude) da feição | -- | -- | Sim | |Características |Lista de atributos (nome/valor) de cada feição | -- | -- | Não | |Modo de altitude |Define se a altitude é absoluta, relativa ao solo ou ao nível do mar | Texto | 25 | Sim | |Alongar até o solo |Determina se uma feição que não seja presa ao solo terá as laterais alongadas até o solo no mapa | Sim/não | -- | Sim | |Cora da linha/rótulo |Cor das linhas, do contorno dos polígonos e dos rótulos dos marcadores no mapa | Texto | 20 | Sim | |Cora da área/marcador |Cor de preenchimento dos polígonos e dos marcadores no mapa | Texto | 20 | Sim | |Largura das linhas |Largura das linhas e dos contornos dos polígonos no mapa de 0 a 100 pixels | Inteiro | -- | Sim | |Opacidade das linhas |Opacidade das linhas no mapa de 0 a 100% | Inteiro | -- | Sim | |Opacidade das áreas |Opacidade das áreas dos polígonos no mapa de 0 a 100% | Inteiro | -- | Sim |´ |Caminho do ícone |Localização do ícone personalizado (local ou URL) | Texto | 260 | Não | ==== Localização ==== As coordenadas podem ser importadas de arquivos shape (.shp) ou KML (.kml). Por padrão, as coordenadas importadas de um arquivo shape serão consideradas como UTM. As coordenadas importadas de um arquivo KML serão consideradas como graus. O usuário deve poder informar o sistema de coordenadas correto antes de salvar as feições para que o sistema interprete as coordenadas ao exibir as feições no mapa. Internamente, todas as coordenadas devem ser convertidas para UTM antes de serem gravadas no banco de dados, caso estejam em outro sistema de coordenadas. Se as coordenadas estiverem em graus mas o usuário informar que estão um UTM, nenhuma alteração será feita ao salvar os dados. Porém os marcadores não serão exibidos corretamente no mapa. Para corrigir, basta alterar o cadastro mudando o sistema de coordenadas para graus. Mas se as coordenadas estiverem em UTM e o usuário informar que estão em graus, o sistema fará a conversão para UTM antes de salvar os dados e as coordenadas geradas serão inválidas. Não será possível reverter para as coordenadas originais e os marcadores também não serão exibidas corretamente no mapa. === Ajustar coordenadas === Na lista de pontos da feição, devem ser mostradas as distâncias entre os pontos consecutivos. Quando a feição sendo editada tiver mais de um ponto, ou seja, for uma linha ou polígono, será possível ajustar as coordenadas dos pontos em função da distância entre eles. O usuário vai poder selecionar um ponto, a partir do segundo, e definir a que distância exata ele deve ficar do ponto anterior, digitando um valor em metros. O sistema deve então recalcular a coordenada do ponto selecionado, mantendo o mesmo ângulo em relação ao ponto anterior. ==== Características ==== Lista as características atribuídas a feição de um logradouro, um bairro, um distrito ou um ponto de atendimento. Cada característica tem um nome e um valor. Essas características serão apresentadas no mapa quando as coordenadas forem exportadas para o mapa. O usuário deve poder incluir, alterar e excluir características da feição sendo editada. Na importação de arquivos shape, todos o atributos lidos devem ser importados como características. Na importação de arquivos KML, o sistema deve importar como características o nome e a descrição de cada feição, quando estiverem presentes no arquivo. O usuário deve ter a opção de selecionar dentre as características do arquivo importado qual será usada como descrição das feições selecionadas. ==== Estilo/cor ==== Permite que o usuário defina a aparência de exibição de um ponto, polígono ou linha. Um ponto permite que seja informada uma cor para o rótulo e outra para o marcador. Um polígono permite que seja informada uma cor para a linha e outra para a área. Também é possível definir a opacidade das linhas e da área separadamente. Para um linha podem ser personalizadas a cor, a largura e a opacidade da mesma. Além das coordenadas, o sistema deve importar também, quando presentes, os estilos associados a cada feição. Nos arquivos KML, é possível personalizar o ícone, as cores do marcador, das linhas, da área, a opacidade das linhas e polígonos e a largura das linhas. O estilo de cada feição, seja importado de um arquivo, definido pelo usuário ou pelas preferências do usuário (veja abaixo) deve ser o mesmo a ser exibido quando a feição for exibida no mapa. Para personalizar o ícone da feição, o sistema deve contar com um conjunto de ícones predefinidos e que serão mostrados ao usuário para que ele escolha um. ==== Altitude ==== A altitude é medida em metros. Cada ponto pode ter altitude diferente dos outros quando importado de um arquivo mas, quando uma feição for editada pelo sistema, o usuário poderá definir uma altitude para a feição e o valor informado será replicado para todos os pontos que ela contem. **Valor padrão : 0m** O modo de altitude determina se a feição é absoluta ou medida em relação ao solo ou ao nível do mar. Numa feição presa ao solo ou ao nível do mar a altitude é ignorada. Os mesmos modos presentes no Google Earth podem ser selecionados. Os valores possíveis são: * Presa ao solo * Presa ao fundo do mar * Relativo ao solo * Relativo ao nível do mar * Absoluta **Valor padrão : presa ao solo** A opção de alongar até o solo determina como uma feição que não é presa ao solo é desenhada no mapa. Se a feição tiver uma altitude maior que zero, ela será apresentada com linhas verticais ligando cada vértice ao solo. **Valor padrão : não (desmarcado)** ==== Visualização no mapa ==== As feições podem ser visualizadas através das telas de consulta de endereços e pontos de atendimento. Nas telas de consulta o sistema possibilita a visualização de coordenadas de entidades associadas ao cadastro. Exemplo: um logradouro pode ter vínculo com um ou mais bairros e cada bairro terá vínculo com um distrito. Com isso o sistema permite o usuário visualizar o logradouro, os bairros e os distritos no mapa. Outro exemplo seria o dos pontos de atendimento, que está vinculado a um logradouro e a um bairro e este bairro está vinculado a um distrito. Então o sistema poderá exibir o ponto de atendimento, o logradouro, o bairro e o distrito no mapa. Além disso podemos filtrar os dados no grid para visualizar somente os registros filtrados que possuem coordenadas cadastradas. ===== Configurações e preferências do usuário ===== * **Tipo de feição**: O sistema deve permitir que o usuário configure um tipo de feição padrão. * **Zona UTM**: O sistema deve permitir que o usuário configure uma zona e um designador padrão para as coordenadas. * **Estilos das feições**: O sistema deve permitir que o usuário configure as cores padrão, a largura das linhas e a opacidade das feições cadastradas. Ver [[softwares:geoservicos:requisitos:configuracoes:preferencias_usuario#coordenadas|Preferências do usuário]]. ===== Pontos de verificação ===== ==== Cadastro ==== * O sistema não deverá incluir características idênticas na lista de características. * Os campos Nome e Valor de cada caraterística são obrigatórios e devem conter no máximo 256 caracteres. * Os campos //Tipo// e //Sistema de coordenadas// são obrigatórios; * Para coordenadas em UTM a zona UTM e obrigatória. * Para coordenadas em UTM a zona UTM deve estar entre 1 e 60, inclusive. * É necessário informar ao menos uma coordenada. * Um feição do tipo ponto não pode ter mais de uma coordenada; * Uma feição do tipo linha não pode ter menos de duas coordenadas; * Uma feição do tipo polígono não pode ter menos de três coordenadas; * A latitude e a longitude devem ter uma precisão de 10 casas decimais, tanto ao editar quanto ao exportar dados para o mapa; * Para coordenadas em graus a latitude deve estar entre -90 e 90 graus; a longitude deve estar entre -180 e 180 graus; * Para coordenadas em UTM a latitude deve estar entre 0 e 9999999,99 m; a longitude deve estar entre 160.000 e 830.000 m. Esses são, aproximadamente, os limites que cabem dentro de uma zona UTM no equador. Valores muio próximos desses limites podem não ser mostrados corretamente no mapa, pois os limites reais dependem da latitude. * Caso o usuário carregue os dados de um arquivo, o sistema deve permitir a inclusão ou alteração dos dados originais. * O sistema não deve permitir a importação de arquivos com extensões que não sejam ".shp" ou ".kml". * O sistema não deve permitir a importação de arquivos kml com multigeometria, quando há mais de uma feição para um único marcador. Neste caso, o sistema deve exibir uma mensagem e interromper o carregamento do arquivo. * Coordenadas importadas de arquivos shape devem ser interpretadas por padrão como UTM; coordenadas lidas de arquivos kml devem ser interpretadas por padrão como graus; * Caso o usuário selecione uma característica a ser utilizada como descrição no momento da importação, cada feição importada deve ter sua descrição com o valor da característica selecionada. * Novas feições incluídas manualmente ou importadas de um arquivo, em qualquer módulo do sistema, deverão ter as definições do usuário para a cor e o estilo. * Na importação de arquivos kml, o modo de altitude de cada feição deve corresponder ao conteúdo do arquivo. * Quando o usuário limpar todos os dados de uma feição, o tipo, zona UTM, cor e estilo das feições devem ser revertidos para os valores das preferências do usuário. O ícone também deve ser apagado. * Quando o usuário definir uma nova distância entre dois pontos, esta distância deve ser positiva e não deve ultrapassar 1000m. ==== Visualização ==== * A tela de opções de visualização deve habilitar as opções de acordo com o módulo selecionado e a visão selecionada. - **Módulo de endereços**: Caso a visão logradouro esteja seleciona a tela de opções deverá exibir as opções de distrito e bairros habilitadas e selecionadas, a opção de logradouro deverá estar desabilitada e selecionada e a opção de ponto de atendimento deverá estar desabilitada e não selecionada. Caso a visão selecionada seja bairro, o sistema deverá exibir apenas a opção de distrito habilitada e selecionada, a opção de bairro deverá estar desabilitada e selecionada e as demais opções estarão desabilitadas e não selecionadas. Caso a visão e distritos esteja selecionada o sistema deverá exibir a opção de distrito desabilitada e selecionada e as demais opções deverão estar desabilitadas e não selecionadas. - **Módulo de pontos de atendimento**: O sistema deverá manter a opção de ponto de atendimento desabilitada e selecionada e as demais opções habilitadas e selecionadas para que o usuário possa selecionar quais dados exibir no mapa. * Os estilos de cada feição devem ser exibidas corretamente no mapa, de acordo com o tipo da feição. * A altitude, o modo de altitude e a opção de alongar até o solo no mapa devem corresponder ao que foi informado no sistema para cada feição. ===== Observações ===== Limitações: o sistema não reconhece arquivos KMZ. Uma possível solução é abri-los num descompactador de arquivos e extrair o arquivo kml compactado. ~~DISCUSSION|Sugira mudanças, aponte falhas ou contribua de alguma forma aqui:~~