As especificações dos formatos de dados ArcGIS * .lyr e * .mxd são publicadas?

15

Os formatos binários dos arquivos * .lyr e * .mxd são publicados?

Scott Wisniewski
fonte
talvez faça essas duas partes (ou pergunte a outra): Existem projetos trabalhando para fazer engenharia reversa dos formatos?
27510 Julie

Respostas:

26

Eles não são publicados, e você provavelmente não deve fazer engenharia reversa e ainda espera cookies gratuitos na ESRI UC, mas são basicamente arquivos no formato OLE2 Compound Document, como documentos do MS Word e Excel. Com uma boa ferramenta para abri-los (por exemplo, http://www.gemboxsoftware.com/CompoundFile.htm ), você pode acessar a parte de hackers rapidamente. Com um olhar atento e um pouco de conhecimento do modelo de objetos do ArcObjects, você estará lendo dados interessantes rapidamente. Eu até ouvi rumores de pessoas criando arquivos LYR do zero usando código não ESRI.

Sebastian Good
fonte
1
Suponho que você possa fazer isso com um grande esforço, mas, ainda assim, consideraria essa implementação muito frágil pelas razões mencionadas na minha resposta.
Petr Krebs
@petr uma implementação de engenharia reversa é estável em correlação direta com as necessidades dos fornecedores para manter a compatibilidade com versões anteriores.
214108 #
Bom argumento, Matt. Enquanto as extensões personalizadas o impedem de uma implementação verdadeiramente completa, geralmente descobrir fontes de dados e opções simples de renderização é suficiente para fazer o que você deseja fazer. O formato não muda rapidamente pelos motivos de Matt.
Sebastian Good
17

A resposta é não.

JasonBirch
fonte
4
Teria sido mais curto, mas tem que colocar em pelo menos 15 caracteres :)
JasonBirch
3

Não é e acho que, por natureza, não pode ser, pois um .mxd é essencialmente composto por ArcObjects (barras de ferramentas, mapas, camadas, renderizadores, símbolos etc.) serializados pelo mecanismo IPersistStream padrão.

Com o ecossistema aberto do ArcObjects, onde um mapa pode conter muitos componentes personalizados, cada um com sua própria serialização, sem mencionar as alterações nos dados serializados entre as versões dos componentes, infelizmente não consigo imaginar como isso seria possível.

Petr Krebs
fonte
-3

se você alterar a extensão .lyr para .zip ou .7z e abrir com 7Zip (testado na versão 9.20), poderá encontrar 3 arquivos: - Camada - LayerLargeImage (basta adicionar .bmp para vê-la) - LayerSmallImage (basta adicionar. bmp para vê-lo)

Não faço ideia de como abrir o arquivo "Camada", mas uma etapa está concluída.

ZarcoDarkson
fonte