Опубликованы ли спецификации формата данных ArcGIS * .lyr и * .mxd?

15

Опубликованы ли двоичные форматы файлов * .lyr и * .mxd?

Скотт Вишневски
источник
возможно сделайте это двумя частями (или спросите другого): есть ли какие-либо проекты, работающие, чтобы перепроектировать форматы?
Мэтт Уилки

Ответы:

26

Они не публикуются, и вы, вероятно, не должны их перепроектировать и все еще ожидаете бесплатных файлов cookie в ESRI UC, но в основном это файлы формата составного документа OLE2, такие как документы MS Word и Excel. С хорошим инструментом для взлома их (например, http://www.gemboxsoftware.com/CompoundFile.htm ) вы можете довольно быстро добраться до хакерской части. Зорким взглядом и небольшим знанием объектной модели ArcObjects вы будете читать интересные данные в кратчайшие сроки. Я даже слышал слухи о том, что люди создают файлы LYR с нуля, используя не-ESRI-код.

Себастьян Гуд
источник
1
Я полагаю, что вы могли бы сделать это с огромными усилиями, но, тем не менее, я бы счел такую ​​реализацию очень хрупкой по причинам, указанным в моем ответе.
Петр Кребс
@petr реализация с обратной инженерией стабильна в прямой зависимости от потребностей поставщиков для обеспечения обратной совместимости.
Мэтт Вилки
Хороший вопрос, Мэтт. В то время как пользовательские расширения не позволят вам реализовать действительно законченную реализацию, обычно для определения того, что вы хотите сделать, достаточно определить источники данных и простые параметры рендеринга. Формат не меняется быстро по причинам Мэтта.
Себастьян Гуд
17

Ответ - нет.

JasonBirch
источник
4
Это было бы короче, но нужно было бы ввести не менее 15 символов :)
JasonBirch
3

Это не так, и я предполагаю, что по натуре этого не может быть, поскольку .mxd по существу состоит из ArcObjects (панелей инструментов, карт, слоев, средств визуализации, символов и т. Д.), Сериализованных через стандартный механизм IPersistStream.

С открытой экосистемой ArcObjects, где карта может содержать множество пользовательских компонентов, каждый из которых имеет свою собственную сериализацию, не говоря уже об изменениях в сериализованных данных между версиями компонентов, я не могу себе представить, как это возможно, к сожалению.

Петр Кребс
источник
-3

если вы измените расширение .lyr на .zip или .7z и откроете его с помощью 7Zip (протестировано с версией 9.20), вы можете найти 3 файла: - Layer - LayerLargeImage (просто добавьте .bmp, чтобы увидеть его) - LayerSmallImage (просто добавьте. BMP, чтобы увидеть это)

Не знаю, как открыть файл «Слой», но шаг сделан.

ZarcoDarkson
источник