Algum guru do ArcObjects poderia me dizer quais são essas linhas verdes no meu Layout de Página e o que fazer ou não fazer para que elas não apareçam? Veja a imagem em anexo.
Eu usei o ArcObjects do Python. Meu script é converter grades e gratículas de quadros de dados em gráficos. Como resultado, recebo o elemento de grupo do qual preciso extrair elementos únicos (texto, linhas etc.) para brincar com eles. No entanto, após esta operação (que é realizada para três grades separadas), recebo essas misteriosas linhas verdes, que não fazem parte do GraphicContainer. Na verdade, as linhas verdes aparecem somente após a conversão e a extração de uma gratícula (WGS).
Há algumas orientações aqui sobre como se livrar deles, o que funciona (recortar e colar ou excluir e recuperar todos os elementos da página). No entanto, eu ainda gostaria de evitá-los em primeiro lugar. Além disso, após algumas configurações de recorte e colagem, percebi que as linhas verdes desaparecem quando esses 3 elementos da imagem (canto inferior direito) são excluídos e restaurados.
Código suspeito de ser responsável por isso:
pGCL.Reset() #reset graphics containere
pElem = pGCL.Next()
while pElem:
pEP3 = CType(pElem, esriCarto.IElementProperties3)
if pEP3.Name == '' and pEP3.Type == 'Group':
pGE = CType(pElem, esriCarto.IGroupElement3)
pGE_no = pGE.ElementCount
for i in range(pGE_no):
if pGE.ElementCount > 0:
pGEe = pGE.Element[0]
pGCL.MoveElementFromGroup(pGE, pGEe, 0)
else: break
pElem = pGCL.Next()
Sei que há alguma discussão em andamento, se o GIS.SE é o local apropriado para essas questões técnicas e específicas de software. Peço desculpas por isso, no entanto, não encontrei resposta satisfatória em nenhum outro lugar.
Respostas:
Esta linha parece suspeita para mim:
Se você remover o i-ésimo elemento do grupo, incremente i no próximo elemento, na verdade, não é o elemento i + 1. Isso pode causar confusão.
Para superar isso, tente fazer um loop para trás, inicie em pGE_no e diminua i.
Atualizar
Além disso, como você está percorrendo todos os elementos no contêiner de gráficos, adicionar um novo elemento ao nível superior do contêiner enquanto você está próximo pode ser outra causa de confusão. Em vez disso, talvez faça uma lista de todos os agrupamentos e faça um loop na chamada da lista (em vez do recipiente gráfico)
MoveElementFromGroup
. Se você tiver grupos aninhados, as coisas ficarão um pouco mais complicadas, você precisará começar com as folhas e podá-las novamente.fonte
Parece semelhante a guias e réguas.
no entanto, não é possível fazê-los parar e dobrar. (raio).
A linha persiste se você alternar para a visualização de dados?
Isso pode indicar se há algo "ligado" na exibição do layout ou nos seus dados.
Eu tive alguma anomalia que fez algo semelhante quando um par inválido (coordenadas) fazia parte de um recurso de linha.
Você pode tentar executar o geomtery de reparo nos seus dados para ver se isso foi removido.
fonte