Resolveu? Diego Moreira Carvalho
Em 19 de agosto de 2011 09:13, Diego Moreira <[email protected]>escreveu: > O método ST_Line_Interpolate_Point retorna um ponto ao longo de uma linha > dado uma porcentagem do comprimento desta linha.... se passarmos sempre 0.5, > teremos sempre o meio da linha... independente do numero de vértices que ela > tem, > Agora eu acho que resolve > > > "UPDATE passeios SET rua = > (SELECT FID_ FROM eixos_rua ORDER BY > ST_Distance(*ST_Line_Interpolate_Point(eixos_rua.wkb_geometry, > 0.5)* , passeios.wkb_geometry) ASC LIMIT 1)" > > > Diego Moreira Carvalho > > > > > Em 19 de agosto de 2011 08:54, Pedro Costa <[email protected]> > escreveu: > > > Exactamente, neste caso estou a mudar a unha, mas sabes alguma maneira > mais > > rápida? > > > > Obrigado > > > > > > > > On 19-08-2011 12:50, Diego Moreira wrote: > > > > Provavelmente os mal atribuídos estao relacionados a ruas que tem somente > > dois ou tres pontos.... da para resolver... > > > > Em 19/08/2011 06:47, "Pedro Costa" <[email protected]> escreveu: > >> Caro Diego, > >> > >> Funcionou... Obrigado pela ajuda. > >> Apesar de tudo alguns passeios ainda são mal atribuídos, mas melhorou > >> bastante... > >> > >> Com os melhores cumprimentos, > >> > >> Pedro Costa > >> > >> > >> > >> > >> > >> Em 18-08-2011 20:04, Diego Moreira escreveu: > >>> Acho que vai dar certo, o pg numa divisão do tipo 3/2 retorna 1, > >>> retornaria 1.5 se fosse 3.0/2... > >>> Então... acho que vai funcionar. > >>> > >>> Diego Moreira Carvalho > >>> > >>> > >>> > >>> Em 18 de agosto de 2011 16:00, Diego Moreira <[email protected] > >>> <mailto:[email protected]>> escreveu: > >>> > >>> NumPoints(geometry) > >>> > >>> Encontra e Retorna o número de pontos na primeira linha na > >>> geometria. Retorna NULO se não há nenhuma linha na geometria. > >>> > >>> PointN(geometry,integer) > >>> > >>> Retorna o enésimo ponto na primeira linha na geometria. > >>> Retorna NULO se não há nenhuma linha na geometria. > >>> > >>> "UPDATE passeios SET rua = > >>> (SELECT FID_ FROM eixos_rua ORDER BY > >>> ST_Distance(PointN(eixos_rua.wkb_geometry, > >>> NumPoints(eixos_rua.wkb_geometry)/2) , passeios.wkb_geometry) ASC > >>> LIMIT 1)" > >>> > >>> > >>> Sera que isso dá certo? caso não, o problema é que a função PointN > >>> espera receber um inteiro, mas o resultado da divisão por 2 > >>> retorna um numero tipo 3.5 > >>> > >>> Diego Moreira Carvalho > >>> > >>> > >>> > >>> Em 18 de agosto de 2011 15:49, Pedro Costa <[email protected] > >>> <mailto:[email protected]>> escreveu: > >>> > >>> É exactamente por isso Diego. Mas sabes como faço para > >>> determinar a contagem de pontos em sql? > >>> > >>> Obrigado > >>> > >>> > >>> > >>> > >>> On 18-08-2011 19:40, Diego Moreira wrote: > >>>> Boa tarde Pedrom > >>>> > >>>> Acredito que tal problema ocorre porque as vezes a > >>>> estremidade da rua adjacente a que deveria ser escolhida é > >>>> mais próxima. Acho que o problema pode ser resolvido da > >>>> seguinte forma: > >>>> > >>>> Pego o ponto n/2 do eixo da rua: se a rua tem dez pontos pego > >>>> o 5 ponto, e executo aquela mesma sql, só que com este ponto, > >>>> e não com a geometria(eixos_rua.wkb_geometry). > >>>> > >>>> Acho que deve resolver. > >>>> > >>>> Espero ter ajudado. > >>>> > >>>> Diego Moreira Carvalho > >>>> > >>>> > >>>> > >>>> Em 18 de agosto de 2011 11:39, Pedro Costa > >>>> <[email protected] <mailto:[email protected]>> > >>>> escreveu: > >>>> > >>>> Pessoal é o seguinte, eu tenho duas tabelas no pgadmin > >>>> (passeios e ruas), e quero que o campo rua dos passeios > >>>> seja prenchido pela rua correspondente. Isto pode > >>>> fazer-se em função da distância, como o João Carvalho me > >>>> ajudou: > >>>> > >>>> "UPDATE passeios SET rua = (SELECT FID_ FROM eixos_rua > >>>> ORDER BY > >>>> ST_Distance(eixos_rua.wkb_geometry,passeios.wkb_geometry) > >>>> ASC LIMIT 1)" > >>>> > >>>> No entanto em muitos casos a rua escolhida não é a > >>>> correspondente, esta query não é muito eficiente neste > >>>> caso. Alguém sabe uma maneira diferente em que seja > >>>> escolhida a rua que está mais próxima "em toda a sua > >>>> extensão"? > >>>> Podem ver a imagem em anexo para perceberem melhor, as > >>>> linhas verdes são os passeios e as vermelhas os eixos de > >>>> rua. Alguém tem alguma ideia que possa ajudar? > >>>> > >>>> Obrigado > >>>> > >>>> _______________________________________________ > >>>> Portugal mailing list > >>>> [email protected] <mailto:[email protected]> > >>>> http://lists.osgeo.org/mailman/listinfo/portugal > >>>> > >>>> > >>>> > >>>> > >>>> _______________________________________________ > >>>> Portugal mailing list > >>>> [email protected] <mailto:[email protected]> > >>>> http://lists.osgeo.org/mailman/listinfo/portugal > >>> > >>> > >>> _______________________________________________ > >>> Portugal mailing list > >>> [email protected] <mailto:[email protected]> > >>> http://lists.osgeo.org/mailman/listinfo/portugal > >>> > >>> > >>> > >>> > >>> > >>> _______________________________________________ > >>> Portugal mailing list > >>> [email protected] > >>> http://lists.osgeo.org/mailman/listinfo/portugal > > > > > > _______________________________________________ > > Portugal mailing list > > [email protected] > > http://lists.osgeo.org/mailman/listinfo/portugal > > > > > > _______________________________________________ > > Portugal mailing list > > [email protected] > > http://lists.osgeo.org/mailman/listinfo/portugal > > > > > >
_______________________________________________ Portugal mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/portugal
