Ir para o conteúdo

 Voltar a Geral - usuá...
Tela cheia

Ajuda com JOIN

10 de Janeiro de 2012, 10:20 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 24 vezes

Bom dia a todos,

Já faz alguma tempo que tenho venho aprendendo o i3Geo e programação MAPFILE, agora surgiu a necessidade de criar um JOIN e após 3 dias de pesquisa e trabalho não consegui realizar tal ligação, já tentei pelo DBF, CSV e MySQL mas não obtive sucesso, acredio que esteja errando por um detalhe por isso precisaria de um exemplo “aplicável” para tentar identificar o meu erro, abaixo envio o meu código do LAYER. Será que alguém poderia me ajudar nesse problema? Grato pela compreensão.

 LAYER
   NAME "Eixos"
   TYPE LINE
   STATUS DEFAULT
   DATA "c:/ms4w/apache/htdocs/i3geo/aplicmap/Shapes/eixo/eixo.shp"
    METADATA
   "CLASSE" "SIM"
   "TEXTO"     "NAO"
   "ITENS"     "NUM,teste"
   "ITENSDESC" "NUM,teste" 
   
   "TEMALOCAL" "SIM" 
   "TEMA"      "EIXO"
   "IDENTIFICA" "SIM"
   "ESCONDIDO" "NAO"
  END

  CLASS
   NAME "Eixos"
    STYLE
    WIDTH 1
    COLOR 0
   END
  END
    
  JOIN
   NAME "teste_join"
   TABLE "C:\ms4w\Apache\htdocs\i3geo\aplicmap\Shapes\eixo\teste_join3.dbf"
   FROM "FID_trecho"
   TO "NUM"
   TYPE ONE-TO-ONE
  END
  
 END # layer

Autor: Pedro Pires Gazzana


66 comentários

  • 04f1e660b0aa64c4b4491da31b6b3356?only path=false&size=50&d=404Edmar Moretti(usuário não autenticado)
    10 de Janeiro de 2012, 15:27

     

    O JOIN do Mapserver não funciona como normalmente se esperaria, sendo útil apenas quando se usa o Mapserver no modo CGI.

    Para o relacionamento entre tabelas com shapefiles uma solução é o uso do OGR como método de conexão:

    maps​erve​r.or​g/in​put/​vect​or/s​hape​file​s.ht​ml

    Vc pode também tentar o uso do sqlite para fazer a ponte entre os arquivos shapefile e dbf para possibilitar o uso de SQL e assim obter o "JOIN".

    • 555d0a9b95b53f37f3943943fbe4e190?only path=false&size=50&d=404Pedro Pires Gazzana(usuário não autenticado)
      10 de Janeiro de 2012, 18:10

       

      Edmar,

      Fiquei mais confuso sobre o funcionamento.

      Eu preciso popular um shape “vazio” com informações que irei buscar de um banco de dados ou um arquivo, pesquei no site do mapserver sobre o OGR e pelo que pude perceber existe diversas formas de conexão, entre elas o SQLite ou MySQL que acredito que atenderiam a minha necessidade de informação, porém não conseguir entender o funcionamento, teria como você me dar um simples exemplo de como poderia fazer essa ligação?

      Muito obrigado pela sua atenção.

      • 04f1e660b0aa64c4b4491da31b6b3356?only path=false&size=50&d=404Edmar Moretti(usuário não autenticado)
        13 de Janeiro de 2012, 0:47

         

        Sua pergunta inicial foi sobre JOIN. Para realizar o relacionamento entre tabelas diferentes utilizando o formato shapefile, vc pode usar o OGR, como nesse exemplo:

        LAYER
        NAME "Parks_cov"

        TYPE POLYGON

        CONNECTIONTYPE OGR

        CONNECTION "data/shppoly"

        DATA "SELECT eas_id, idlink.Name FROM poly LEFT JOIN idlink ON poly.eas_id = idlink.eas_id"

        STATUS ON

        CLASSITEM "idlink.Name"

        CLASS
        ...
        END
        END

        Note que em CONNECTION é colocado o nome de um diretório e não de um único arquivo shapefile. Nessa forma de conexão, todos os shapefiles existentes no diretório podem ser utilizados no SQL, permitindo a junção de tabelas.

        Se vc pode usar um banco de dados o ideal é que você opte pelo Postgis.

         

         

         

        • 555d0a9b95b53f37f3943943fbe4e190?only path=false&size=50&d=404Pedro Pires Gazzana(usuário não autenticado)
          13 de Janeiro de 2012, 9:40

           

          Compreendi porém a minha junção deve ser feita entre um shape e uma outra tabela, seja em formato dbf, csv ou até mesmo no sqllite e não entre dois shapes. Usando o exemplo que você mencionou também seria possível caso eu coloque essa tabela no mesmo diretório?

           Muito obrigado

        • 555d0a9b95b53f37f3943943fbe4e190?only path=false&size=50&d=404Pedro Pires Gazzana(usuário não autenticado)
          13 de Janeiro de 2012, 17:18

           

          Prezado Edmar,

          Tente fazer realizar a conexão conforme vc mencionou anteriormente, funcionou quase perfeitamente. Por exemplo se utilizo a query: SELECT ESTADO FROM estados funciona sem problema, porém quando tento fazer o Join SELECT ESTADO FROM estados LEFT JOIN locali ON estados.ESTADO = locali.ESTADO ocorre um erro: CGI / FastCGI e redireciona a pagina para uma mensagem de Internal Server Error. Você saberia me dizer qual o motivo desse erro?

          Obrigado

          • 04f1e660b0aa64c4b4491da31b6b3356?only path=false&size=50&d=404Edmar Moretti(usuário não autenticado)
            23 de Janeiro de 2012, 19:09

             

            Não sei lhe dizer. Vc já tentou não usar o LEFT JOIN, ficaria:

             SELECT ESTADO FROM estados WHERE estados.ESTADO = locali.ESTADO

acesso à versão beta do i3geosaude

19 de Março de 2015, 10:03, por Desconhecido

Prezados amigos, 



comunidade i3geosaude

7 de Janeiro de 2015, 10:22, por Desconhecido

Prezados Colaboradores,



Primeira Reunião do Grupo de Trabalho do i3Geo ocorre no dia 20 de novembro

6 de Novembro de 2013, 17:46, por Desconhecido

Na manhã do dia 20 de novembro, junto ao Seminário Anual do SISP, acontecerá a 1a. Reunião do Grupo de Trabalho da solução i3Geo, para tratar de necessidades de melhoria ou adaptação da solução disponível no Portal SPB, para uso pela Administração Pública Federal. Os anseios dos dirigentes de TI do Sistema de Administração de Recursos de Tecnologia da Informação – SISP, em busca de soluções disponíveis no Portal do SPB que atendam às necessidades da Administração e de cada Órgão em específico, foram objeto de discussão em reuniões da Comissão de Coordenação do Sistema ao longo de 2013. A formação do Grupo de Trabalho do i3Geo é resultado das atividades já realizadas até o momento entre os órgãos integrantes do SISP na reflexão, modelagem e aprimoramento do conceito e da finalidade do Software Público para a Administração Pública e para a Sociedade.



Testes com o i3Geo (Geosaúde) em Manaus

24 de Setembro de 2013, 11:39, por Desconhecido

Projeto do Departamento de Monitoramento e Avaliação do SUS (DEMAS) do Ministério da Saúde, iniciou os testes e implantação do i3Geo, distribuição "Geosaúde", na Secretaria Municipal de Saúde de Manaus.



Funai cria Portal de mapas baseado em tecnologias livres (i3Geo)

1 de Agosto de 2011, 18:27, por Desconhecido

Autor: Edmar Moretti