Acho que o procedimento pode ser assim: Uma função com os seguintes passos.
1 - Selecione os poligonos que intesectam o box da linha ou a propria linha. Vc deve definir isso, pois os resultados poderam ser diferentes. 2 - Una os poligonos; ST_Union 3 - Pegue o anel exterior; ST_ExteriorRing 4 - Faça a diferença; ST_Difference. O anel deve ser o primeiro parametro da função. O resultado deve ser uma coleção 5 - Verifique qual elemento tem menor comprimento e retorne ele. Espero ter ajudado, Com os melhores cumprimentos. Diego Moreira Carvalho Em 16 de agosto de 2011 09:40, Marco Afonso <[email protected]> escreveu: > > Boa tarde, > Gostaria de saber se existe uma forma de, dado um ponto inicial A e um ponto > final B, chegar a uma LINESTRING (a mais curta) que contorne N poligonos que > possam existir entre estes dois pontos. > Conheço a solução pgRouting... mas gostava de saber se apenas com operações > entre geometrias (ST_SymDifference, ST_Intersection, ST_LineMerge, etc...) > seria possível chegar a uma linha que contornasse poligonos... > Encontrei este método para dividir poligonos > http://trac.osgeo.org/postgis/wiki/UsersWikiSplitPolygonWithLineString > Apartir destes resultados, penso que seria possível order por comprimento do > perímetro e fazer ST_SymDifference + ST_LineMerge da linha inicial... mas > ainda não cheguei a uma query que funcionasse... ou talvez não seja possível > de todo... > Obrigado > > > > > _______________________________________________ > Portugal mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/portugal > _______________________________________________ Portugal mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/portugal
