Les spécifications de format de données ArcGIS * .lyr et * .mxd sont-elles publiées?

15

Les formats binaires des fichiers * .lyr et * .mxd sont-ils publiés?

Scott Wisniewski
la source
peut-être faire ces deux parties (ou en demander une autre): Existe-t-il des projets de rétro-ingénierie des formats?
matt wilkie

Réponses:

26

Ils ne sont pas publiés, et vous n'êtes probablement pas censé les désosser et vous attendre à des cookies gratuits sur ESRI UC, mais ce sont essentiellement des fichiers au format OLE2 Compound Document, comme des documents MS Word et Excel. Avec un bel outil pour les ouvrir (par exemple http://www.gemboxsoftware.com/CompoundFile.htm ), vous pouvez accéder à la partie de piratage assez rapidement. Avec un œil attentif et une petite connaissance du modèle objet ArcObjects, vous lirez des données intéressantes en un rien de temps. J'ai même entendu des rumeurs selon lesquelles des gens créeraient des fichiers LYR à partir de zéro en utilisant du code non-ESRI.

Sebastian Good
la source
1
Je suppose que vous pourriez être en mesure de le faire avec un effort énorme, mais je considère néanmoins qu'une telle mise en œuvre est très fragile pour les raisons mentionnées dans ma réponse.
Petr Krebs
@petr une implémentation d'ingénierie inverse est stable en corrélation directe avec les besoins des fournisseurs pour maintenir la compatibilité descendante.
matt wilkie
Bon point Matt. Alors que les extensions personnalisées vous empêcheront d'une implémentation vraiment complète, il suffit généralement de trouver des sources de données et des options de rendu simples pour faire ce que vous voulez faire. Le format ne change pas rapidement pour les raisons de Matt.
Sebastian Good
17

La réponse est non.

JasonBirch
la source
4
Cela aurait été plus court, mais il faudrait mettre au moins 15 caractères :)
JasonBirch
3

Ce n'est pas le cas et je suppose que cela ne peut pas l'être par nature, car un .mxd est essentiellement composé d'ArcObjects (barres d'outils, cartes, couches, rendus, symboles, etc.) sérialisés via le mécanisme IPersistStream standard.

Avec l'écosystème ArcObjects ouvert, où une carte peut contenir de nombreux composants personnalisés avec chacun leur propre sérialisation, sans parler des changements dans les données sérialisées entre les versions des composants, je ne peux malheureusement pas imaginer comment cela serait possible, malheureusement.

Petr Krebs
la source
-3

si vous changez l'extension .lyr en .zip ou .7z et que vous l'ouvrez avec 7Zip (testé avec la ver 9.20), vous pouvez trouver 3 fichiers: - Layer - LayerLargeImage (ajoutez simplement .bmp pour le voir) - LayerSmallImage (ajoutez simplement. bmp pour le voir)

Aucune idée sur la façon d'ouvrir le fichier "Layer", mais une étape est effectuée.

ZarcoDarkson
la source