Ошибка структуры файла map

Ниже я привожу первую часть перевода документа Stefan Hajnoczi (оригинал документа и исходные коды на GitHub). Как видно из названия темы, он описывает формат .map файлов и методы чтения и обработки информации полученной из них. Текст был переведён машинным переводом и в дальнейшем я придал ему более менее удобочитаемый вид, а так же исправил некоторые неточности и ошибки (но я не гарантирую, что их больше нет). На данный момент отредактировано половина перевода и в дальнейшем я планирую выложить переведённый и дополненный документ одним файлом. Я надеюсь кому-то эта информация будет полезной.

.MAP файлы
описание формата файла,
алгоритмы и код
Stefan Hajnoczi
[email protected]

Содержание:
Часть 1
Отказ от ответственности
Вступление
.MAP файлы

Формат .MAP файлов
Дизайн парсера .MAP
Преобразуем браш в полигоны
Расчет координат текстуры
Часть 2
Сортировка вершин
Выполнение конструктивного объединения твердотельной геометрии на всех брашах(CSG)
Классификация полигона относительно плоскости
Разбиение полигона плоскостью
Исходный код
Специальная благодарность
Библиография / Ссылки

Отказ от ответственности


Хотя я (Stefan Hajnoczi) много поработал над этой статьей, я не могу гарантировать, что в ней нет ошибок. Я не несу ответственности за любой ущерб или проблемы, вызванные кодом, предоставленным в этой статье (как скомпилированным двоичным, так и исходным кодом).
Я никоим образом не являюсь сотрудником iD Software или Valve Software, и этот документ не является официальным руководством по WorldCraft (Hammer editor) или любому из описанных форматов файлов. По этой причине я не могу гарантировать точность предоставленной информации.
Чтобы понять эту статью, вы должны быть знакомы с WorldCraft 3.3, C ++, векторами и плоскостями. Наконец, я также хотел бы сказать, что много кода, имеющего дело с файлами .MAP и .WAD, можно найти в Half-Life SDK (

).

Вступление
После того, как вы создали карту в WorldCraft, выберите меню File|Export to .MAP, чтобы сохранить карту как файл .MAP. Сохраненный файл .MAP содержит все браши (brash – включают в себя геометрию всех полигонов на уровне, имена и ориентацию текстур) и объекты (entity – объект, сущность, подразделяются на brush-based, model-based и невидимые (логические) объекты) уровня. Поскольку вы создаете свой собственный движок, вам потребуется написать свои собственные инструменты для компиляции карты. Первым шагом к созданию пользовательских инструментов компиляции является анализ .MAP файла для получения списка всех объектов, свойств объектов и полигонов. К сожалению, разобрать .MAP файлы непросто. В этом документе представлен обзор того, как это сделать, а также описание каждого шага. Если вы загрузите этот документ, в него будет включен исходный код моего парсера .MAP файлов.
Как я всему этому научился? Я просто перерыл всю доступную информацию о WorldCraft. К сожалению, многое повторялось, в то время как немаловажные детали отсутствовали. Мне пришлось самому разбираться с форматом .MAP файла, потому что та немногая информация о нем в Интернете была устаревшей. Вот почему я составил этот документ. Я надеюсь, что этот документ предоставит исчерпывающую информацию о том, как модифицировать WorldCraft, чтобы использовать его с вашим собственным движком. Несколько человек помогли мне на этом пути, и я хотел бы поблагодарить этих людей в разделе особой благодарности.

Формат .MAP файлов
Я думаю, что лучший способ изучить формат .MAP файла это сразу перейти к простому примеру. Это пример .MAP файла, содержащего только поле:
{
«classname» «worldspawn«
«mapversion» «220«
«wad» «\games\half-life\cstrike\cstrike.wad;\games\half-life\valve\halflife.wad«
{
( 0 64 64 ) ( 64 64 64 ) ( 64 0 64 ) BCRATE02 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 0 0 0 ) ( 64 0 0 ) ( 64 64 0 ) BCRATE02 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 0 64 64 ) ( 0 0 64 ) ( 0 0 0 ) BCRATE02 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 64 64 0 ) ( 64 0 0 ) ( 64 0 64 ) BCRATE02 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 64 64 64 ) ( 0 64 64 ) ( 0 64 0 ) BCRATE02 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 64 0 0 ) ( 0 0 0 ) ( 0 0 64 ) BCRATE02 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
}
}

Фигурные скобки (‘{‘ и ‘}‘) помещаются вокруг каждого объекта, отсюда и фигурная скобка в начале файла. Все в .MAP файле является частью объекта. Очевидными объектами являются двери, огни, старты игрока и т.д., поскольку они в WorldCraft называются объектами. Однако даже геометрия базового уровня, которая, казалось бы, не является частью объектов, на самом деле является таковой. Каждый объект может состоять из двух вещей: свойств и брашей. Свойства состоят из имени (выделено зеленым цветом), которое сообщает вам, какой это тип свойства и его значения (выделено розовым цветом). Свойства помогают хранить не геометрические данные об объекте. Они включают в себя такие пункты, как здоровье, для монстра, или имя файла звука, используемого при срабатывании чего-либо. Браши заключены в фигурные скобки (‘{‘ и ‘}‘). Браши представляют собой фактическую геометрию уровня. Они включают в себя стены, полы, столы и т. д. (все, что состоит из полигонов). Каждый браш состоит из четырех или более граней. Грань — это плоскость, название текстуры и информация о текстуре. Я расскажу о брашах более подробно позже.
У каждого объекта обязательно должно быть свойство: имя класса (classname). Имя класса указывает, какой тип объекта описывается. Например это может быть: «classname» «worldspawn», «classname» «light”, или «classname» «button”. Имя класса — это первое свойство любого объекта.
Worldspawn это объект, который должен присутствовать в каждом .MAP файле. Worldspawn — является первым объектом в любом .MAP файле. Он содержит все браши, которые не являются какими-либо специальными объектами. В типичном уровне Worldspawn содержит стены, полы, потолки и т.д. Независимо от того, насколько велик или мал уровень, он должен иметь один Worldspawn. Worldspawn содержит не только геометрию уровня, но также информацию о версии .MAP файла и имена используемых .WAD файлов. Версия .MAP файла указывается в свойстве mapversion. Здесь мы рассматриваем 220 версию .MAP файлов используемых в WorldCraft 3.3. Используемые .WAD файлы перечислены в свойстве wad, они разделяются точкой с запятой (‘;’).
Браши состоят из четырех или более граней. Нет ограничений на количество брашей, которые могут быть в объекте. Браши всегда выпуклые, что является очень полезным свойством (в будущем мы в этом убедимся). Вместо того, чтобы описываться как набор полигонов, браши описываются как набор граней.
Давайте рассмотрим, как именно определяются браши. (Говоря о «линии», я буду иметь в виду строки текста в определении браша.) Каждая линия определяет одну плоскость (плоскость — это бесконечно тонкий, бесконечно большой «лист» в трехмерном пространстве), который, по сути, определяет одну плоскость грани. Грань браша это область на плоскости грани ограниченная вместе взятыми плоскостями граней браша. Пример описания структуры грани:

( x1 y1 z1 ) ( x2 y2 z2 ) ( x3 y3 z3 ) TEXTURE_NAME [ tx1 ty1 tz1 toffs1 ] [ tx2 ty2 tz2 toffs2 ] rotation scaleX scaleY

Чтобы определить одну фактическую плоскость, необходимо задать три точки (обозначенные как x1, y1, z1, x2, y2, z2 и x3, y3, z3). Они должны располагаться по часовой стрелке, если смотреть на внешнюю сторону плоскости, то есть на сторону, которая направлена наружу от браша, и эти точки должны лежать на поверхности плоскости. Они также должны отличаться друг от друга и не лежать на одной линии — при соединении они должны образовывать три угла треугольника. (Часто бывает достаточно трех вершин грани, представленных этой плоскостью.)
После этих трех точек идет определение, как будет текстурирована грань, находящаяся на этой плоскости. Первая часть говорит сама за себя — TEXTURE_NAME название текстуры — но следующую часть довольно сложно как объяснить, так и понять. Для определения ориентации текстур используется пара осей. Они задают плоскость пространства текстуры грани. Представьте себе плоскую поверхность, покрытую текстурой, с двумя осями, лежащими на этой поверхности, это и есть плоскость текстуры. Затем она проецируется на плоскость грани. Это означает, что если вы хотите, чтобы текстура имела идеальный масштаб на грани, оси должны образовывать плоскость, параллельную плоскости грани, иначе вы получите растяжение текстуры.
2228.png

Эти оси определены координатами tx1 / y1 / z1 и tx2 / y2 / z2, что дают два вектора, которые определяют направление «вправо» и «вверх» относительно текстуры — так что, если вы хотите переместиться «вправо» на 1 единицу, вам нужно сместиться по направлению первой оси на 1 единицу. Смещение «вниз» на 2 единицы перемещение в обратном направлении вдоль второй оси на 2 единицы. Насколько текстура смещена по этим осям, определяется параметрами toffs1 и toffs2, измеряемыми в условных единицах WorldCraft.
Последние три параметра довольно просты, но вот rotation — странный. Вопреки тому, что вы думаете, он не определяет, на сколько нужно повернуть текстуру; он определяет, на сколько она УЖЕ была повернута. Это сделано для того, чтобы Worldcraft мог соответствующим образом вращать оси текстуры, а это означает, что если вы хотите написать программу для поворота текстуры на 45 градусов, вам нужно будет добавить 45 к rotation (чтобы показать WorldCraft, что она повернута на 45 градусов) и повернуть обе оси текстуры на 45 градусов.
К счастью, параметры scaleX и scaleY очень просты. Они определяют, насколько текстура растянута по осям UV. Значение больше 1 растягивает, меньше 1 сжимает, отрицательное значение то же самое в зеркальном отображении.
Типичный .MAP файл состоит из одного большого мира и множества (200+) объектов, являющимися огнями, дверьми, переключателями, триггерами и т.д. Следующий пример .MAP файла описывает несколько объектов и брашей. Это простенький уровень Counter-Strike, который я сделал на скорую руку. В нем есть одна комната, свет, цель и место спавна игрока. Не сосредотачивайтесь на том, что каждый объект делает или означает, лучше сосредоточьтесь на синтаксисе .MAP файла.

{
«classname» «worldspawn»
«MaxRange» «4096»
«mapversion» «220»
«wad» «\games\half-life\cstrike\cstrike.wad;\games\half-life\valve\halflife.wad»
{
( 0 0 256 ) ( 0 256 256 ) ( 256 256 256 ) AAATRIGGER [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 0 256 224 ) ( 0 256 256 ) ( 0 0 256 ) AAATRIGGER [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 256 0 224 ) ( 256 0 256 ) ( 256 256 256 ) AAATRIGGER [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 256 256 224 ) ( 256 256 256 ) ( 0 256 256 ) AAATRIGGER [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 0 0 224 ) ( 0 0 256 ) ( 256 0 256 ) AAATRIGGER [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 0 256 224 ) ( 0 0 224 ) ( 256 0 224 ) C1A0_W2 [ 1 0 0 0 ] [ 0 -1 0 160 ] 0 2 1.6
}
{
( 0 256 0 ) ( 0 0 0 ) ( 256 0 0 ) AAATRIGGER [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 0 0 32 ) ( 0 0 0 ) ( 0 256 0 ) AAATRIGGER [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 256 256 32 ) ( 256 256 0 ) ( 256 0 0 ) AAATRIGGER [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 0 256 32 ) ( 0 256 0 ) ( 256 256 0 ) AAATRIGGER [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 256 0 32 ) ( 256 0 0 ) ( 0 0 0 ) AAATRIGGER [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 0 0 32 ) ( 0 256 32 ) ( 256 256 32 ) C1A0_LABFLRB [ 1 0 0 0 ] [ 0 -1 0 128 ] 0 2 2
}
{
( 0 0 224 ) ( 0 0 32 ) ( 0 256 32 ) AAATRIGGER [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 0 256 224 ) ( 0 256 32 ) ( 32 256 32 ) AAATRIGGER [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 32 0 32 ) ( 0 0 32 ) ( 0 0 224 ) AAATRIGGER [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 0 0 224 ) ( 0 256 224 ) ( 32 256 224 ) AAATRIGGER [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 0 256 32 ) ( 0 0 32 ) ( 32 0 32 ) AAATRIGGER [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 32 256 224 ) ( 32 256 32 ) ( 32 0 32 ) C1A0_W1D5 [ 0 1 0 0 ] [ 0 0 -1 26.6667 ] 0 2 1.2
}
{
( 256 256 224 ) ( 256 256 32 ) ( 256 0 32 ) AAATRIGGER [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 224 256 32 ) ( 256 256 32 ) ( 256 256 224 ) AAATRIGGER [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 256 0 224 ) ( 256 0 32 ) ( 224 0 32 ) AAATRIGGER [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 224 256 224 ) ( 256 256 224 ) ( 256 0 224 ) AAATRIGGER [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 224 0 32 ) ( 256 0 32 ) ( 256 256 32 ) AAATRIGGER [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 224 0 224 ) ( 224 0 32 ) ( 224 256 32 ) C1A0_W1D5 [ 0 1 0 0 ] [ 0 0 -1 26.6667 ] 0 2 1.2
}
{
( 32 256 32 ) ( 224 256 32 ) ( 224 256 224 ) AAATRIGGER [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 32 224 224 ) ( 32 256 224 ) ( 224 256 224 ) AAATRIGGER [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 224 256 32 ) ( 32 256 32 ) ( 32 224 32 ) AAATRIGGER [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 32 224 32 ) ( 32 256 32 ) ( 32 256 224 ) BCRATE02 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 224 256 224 ) ( 224 256 32 ) ( 224 224 32 ) BCRATE02 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 224 224 32 ) ( 32 224 32 ) ( 32 224 224 ) C1A0_W1D5 [ 1 0 0 -21.3333 ] [ 0 0 -1 26.6667 ] 0 1.5 1.2
}
{
( 224 0 32 ) ( 32 0 32 ) ( 32 0 224 ) AAATRIGGER [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 224 0 224 ) ( 32 0 224 ) ( 32 32 224 ) AAATRIGGER [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 32 32 32 ) ( 32 0 32 ) ( 224 0 32 ) AAATRIGGER [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 32 0 224 ) ( 32 0 32 ) ( 32 32 32 ) BCRATE02 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 224 32 32 ) ( 224 0 32 ) ( 224 0 224 ) BCRATE02 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 32 32 32 ) ( 224 32 32 ) ( 224 32 224 ) C1A0_W1D5 [ 1 0 0 -21.3333 ] [ 0 0 -1 26.6667 ] 0 1.5 1.2
}
}
{
«classname» «info_player_start» «angles» «0 0 0»
«origin» «64 64 80»
}
{
«classname» «light» «_light» «255 255 128 200»
«target» «Light01.Target» «targetname» «Light01» «origin» «128 128 208»
}
{
«classname» «info_target» «targetname» «Light01.Target» «origin» «128 128 32»
}

Дизайн парсера .MAP файлов
Теперь, когда вы знакомы с форматом .MAP файлов, мы можем начать размышлять о том, как мы собираемся писать синтаксический анализатор .MAP файла. Результатом синтаксического анализа .MAP файла должен быть список объектов. У каждого объекта должен быть набор свойств и полигонов. Обратите внимание, что это не сильно отличается от .MAP файлов. Проблема в том, что вместо хранения геометрии в виде списка полигонов, .MAP файлы состоят из брашей, которые являются выпуклыми многогранниками, определяемые плоскостями. Таким образом, задача парсера .MAP файлов — загрузить .MAP файл в память, преобразовать браши в набор полигонов и в уточненный список объектов.
Система координат, которую использует WorldCraft, выглядит так:
1631453640370.png
Чтобы преобразовать координаты WorldCraft в левостороннюю систему координат, вам необходимо: поменять местами у и z компоненты каждой координаты.
Вы спросите, как можно создать сложные здания и объекты, если браши являются выпуклыми полигонами. Во-первых, как вы уже знаете, каждый объект может содержать более одного браша. Если поставить рядом два выпуклых многогранника, можно образовать более сложный вогнутый многогранник. Однако внутри самого объекта образуются скрытые полигоны.
Чтобы помочь вам понять, о чём идёт речь, представьте, что два кубика поставлены рядом друг с другом, так что они соприкасаются. Они образуют прямоугольный многогранник, который на одной из осей длиннее, чем на других, однако две соприкасающиеся стороны окажутся внутри нового объекта. Во-первых, хранить эти полигони — пустая трата памяти, потому что их невозможно увидеть. Во-вторых, такая геометрия может быть недопустимой для компиляции BSP. Вот картина ситуации, которую я описываю:
1631453693297.png
Эта проблема может быть решена с помощью операции объединения Constructive Solid Geometry (CSG). CSG операция удалит любые полигони внутри объекта и позволит вам соединить два многогранника, удалив при этом любую ненужную геометрию.
Еще одна проблема, с которой мы сталкиваемся при написании парсера .MAP файлов, — это точность. С самого начала я решил использовать тип данных double вместо float. Это позволяет повысить точность. Тем не менее, появляются неточности округления, и в конечном итоге при сравнении координат могут возникнуть ошибки. Для борьбы с этой проблемой вводится epsilon. Вместо проверки точных значений, таких как ноль, вы проверяете, что значение находится в определенном диапазоне от нуля. Это необходимо, нравится вам это или нет. В этой статье я не использовал epsilon в псевдокоде, потому что он зависит от вашего типа данных, а также от масштаба и размеров вашего уровня. Чтобы понять, как и когда они используются, просмотрите исходный код, особенно математические процедуры и процедуры классификации. «Нечеткие» сравнения могут использоваться не только при сравнении двух чисел, но и при сравнении двух векторов. Например, чтобы проверить, равны ли два нормализованных вектора, a ∙ b≈1. Пример реализации этого в псевдокоде:

Код:

double    Angle = a.Dot ( b ) - 1;

if ( ( Angle > -epsilon ) && ( Angle < epsilon ) )
{
    …they are equal…
}

Ниже перечислены основные шаги в синтаксическом анализе .MAP файла, для того, чтобы убедиться, что вы все поняли.
Загрузить .MAP файл в память
Создать полигоны из брашей
Выполнить объединение CSG для каждой браша в объекте
Сохранить список объектов в любом формате, который вам нравится

Превращаем браш в набор полигонов
Когда список объектов находится в памяти, первая задача — преобразовать браш в полигоны. Это можно сделать двумя способами. Первый метод пересечение 3-х плоскостей. Этот метод быстрый и требует относительно небольшой код. Второй метод — создать огромные потенциальные полигони вдоль плоскости каждой грани, а затем соединить их друг с другом. Мне лично этот метод не нравится, поэтому я решил использовать первый.
Псевдокод для превращения браша в массив полигонов:

Код:

For i = 0 to NumberOfFaces – 1
{
    For j = 0 to NumberOfFaces – 1
    {
        For k = 0 to NumberOfFaces – 1
        {
            if ( i != j != k )
            {
                Polys[ i ].AddVertex ( GetIntersection ( i,  j, k ) );
            }
        }
    }
}

Это упрощенный код, в нём пропущена функция GetIntersection, которая вычисляет пересечение трех плоскостей. Кроме того, эта версия неоптимизированная. Наконец, есть еще одна проблема, о которой я расскажу вам позже. Вот как это работает: каждая комбинация из 3 плоскостей граней проверяется на пересечение. Полученные вершины сохраняются в полигонах, соответствующих плоскостям граней, образовавшим пересечение. Ниже приведена формула пересечения трех плоскостей:
1631455581473.png
Каждая плоскость состоит из нормали n и расстояния от плоскости до начала координат d. Это логично, поскольку все эти переменные происходят из уравнения плоскости ax + by + cz + d = 0 (или, более компактно n ∙ x + d=0). Обратите внимание: если знаменатель равен 0, пересечения нет (плоскости параллельны). Псевдокод для поиска пересечения трех плоскостей:

Код:

bool GetIntersection ( n1, n2, n3, d1, d2, d3, &p  )
{
    double denom = n1.Dot ( n2.Cross ( n3 ) );

    if ( denom == 0 )
    {
        return false;
    }

    p = -d1 * ( n2.Cross ( n3 ) ) – d2 * ( n3.Cross ( n1 ) ) – d3 * ( n1.Cross ( n2 ) ) / denom;

    return true;
}

Функция возвращает true и устанавливает p, если было пересечение. В противном случае возвращается false.

Существует распространенная ошибка, которую необходимо решить, когда используется метод пересечения трех плоскостей. Взгляните на следующую ситуацию:
1631455673127.png
Здесь видно, что будет создана дополнительная точка в месте пересечения трёх плоскостей. К сожалению, эта точка не является частью объекта. Первая пересекаемая плоскость — это горизонтальная линия. Вторая плоскость — это диагональная линия. Третья плоскость — это еще одна плоскость, которую нельзя увидеть в двухмерном представлении. Хотя есть пересечение, точка лежит за пределами объекта. Причина этой ошибки в том, что вертикальная плоскость справа не используется в тесте на пересечение. Вот еще один вид того же объекта (на этот раз в 3D):
1631455736663.png
Синими линиями обозначена модель, которая нам требуется. Красными обозначено место, где образуется недопустимая точка пересечения. Теперь, когда вы, надеюсь, разобрались в проблеме, я покажу вам её решение.
Перед добавлением точки к полигону необходимо убедиться, что точка не находится за пределами объекта. Это можно легко проверить, так как все браши выпуклые, а это значит, что если какая-либо точка находится перед любой из плоскостей браша, она находится за пределами модели. Подумайте, насколько это актуально для любого выпуклого браша. Усовершенствованный псевдокод:

Код:

Faces – массив всех граней браша
Создаём массив полигонов Polys содержащий количество элементов равное количеству граней

for i = 0 to NumberOfFaces – 1
{
    for j = 0 to NumberOfFaces – 1
    {
        for k = 0 to NumberOfFaces – 1
        {
            if ( i != j != k )
            {
                illegal = false;
                newVertex = GetIntersection ( i, j , k );

                for m = 0 to NumberOfFaces – 1
                {
             
                    if ( DotProduct ( Faces[ m ].normal, newVertex ) + Faces[ m ].d > 0 )
                    {
                        illegal = true;
                    }
                }

                if ( illegal == false )
                {
                    Polys[ i ].AddVertex ( newVertex );
                }
            }
        }
    }
}

Можно ещё оптимизировать код, но это может зависеть от структуры данных. Во-первых, вместо того, чтобы сравнивать каждый элемент со всеми другими элементами массива Faces во всех возможных комбинациях, нужно в первом цикле перебирать элементы от 0 до NumberOfFaces — 3, в двух других циклах перебирать элементы от i до NumberOfFaces — 2 и от j до NumberOfFaces — 1 соответственно. Во-вторых, не добавлять новую вершину только к одному полигону за раз, ее можно добавлять ко всем трем полигонам сразу. Оптимизированный псевдокод выглядит так:

Код:

Faces – массив всех граней браша
Создаём массив полигонов Polys содержащий количество элементов равное количеству граней

For i = 0 to NumberOfFaces – 3
{
    For j = i to NumberOfFaces – 2
    {
        For k = j to NumberOfFaces – 1
        {
            if ( i != j != k )
            {
                legal = true;
                newVertex = GetIntersection ( i, j , k );

                for m = 0 to NumberOfFaces – 1
                {
                    // Проверяем находится ли точка за пределами браша
                    if ( DotProduct ( Faces[ m ].normal, newVertex ) + Faces[ m ].d > 0 )
                    {
                        legal = false;
                    }
                }
            
                if ( legal )
                {
                    Polys[ i ].AddVertex ( newVertex ); // Добавляем точку
                    Polys[ j ].AddVertex ( newVertex ); // к 3 полигонам
                    Polys[ k ].AddVertex ( newVertex ); // за раз
                }
            }
        }
    }
}

На этом заканчивается превращение браша в набор полигонов. Следующим шагом будет вычисление координат текстуры для каждой вершины.

Расчет координат текстуры
Вычислить координаты текстуры для любого полигона совсем несложно. Я просто предоставлю формулы:
1631455951954.png
t_u и t_v — две координаты текстуры. v ⃑ — вершина, для которой вычисляется координата текстуры. n_u и n_v — нормали осей текстуры. w и h — ширина и высота текстуры соответственно. S_u и S_v — масштаб текстуры. O_u и O_v — смещение или сдвиг текстуры. Чтобы определить размеры используемой текстуры, вам нужно будет найти текстуру в одном из .WAD файлов, используемых уровнем. Посмотреть, как реализовать это в коде можно в моей статье о .WAD файлах.
Проблема с координатами текстур в том, что они не нормализованы. Под нормализацией я подразумеваю значение координат как можно более близкое к 0. Некоторые видеокарты могут не справляться с очень большими координатами текстуры. Если вы посмотрите на координаты текстуры, сгенерированные с использованием этой формулы, вы увидите, что они верны (если у вас включен перенос текстуры), но их нужно поместить в диапазон от –1 до +1.
Способ сделать это — найти координату, наиболее близкую к 0. U и V нормализуются отдельно. Однако если координата находится в диапазоне от –1 до +1, то эти координаты уже нормализованы. Нормализация выполняется на уровне полигона. Принцип заключается в том, чтобы найти координату текстуры, ближайшую к 0 (но не в диапазоне от –1 до +1), а затем вычесть ее округленное ближайшее к 0 значение из всех текстурных координат полигона текущей оси. Эту операцию необходимо проделать как с осью U, так и с осью V. Реальный код C ++ вы можете просмотреть в моих исходниках (https://github.com/stefanha/map-files).
Псевдокод нормализации:

Код:

float Nearest_u = poly.verts[ 0 ].u;
float Nearest_v = poly.verts[ 0 ].v;
bool NeedNormalise_u = true;
bool NeedNormalise_v = true;

for i = 0 to NumberOfVertices - 1
{
    if ( NeedNormalise_u )
    {
        if ( poly.verts[ i ].u > 1 )
        {
            if ( poly.verts[ i ].u < Nearest_u)
            {
                Nearest_u = poly.verts[ i ].u;
            }
        }
        else if ( poly.verts[ i ].u < -1 )
        {
            if ( poly.verts[ i ].u > Nearest_u)
            {
                Nearest_u = poly.verts[ i ].u;
            }
        }
        else
        {
            Nearest_u = 0;
            NeedNormalize_u = false; // координаты уже нормализованны
        }
    }

    if ( NeedNormalise_v )
    {
        if ( poly.verts[ i ].v > 1 )
        {
            if ( poly.verts[ i ].v < Nearest_v)
            {
                Nearest_v = poly.verts[ i ].v;
            }
        }
        else if ( poly.verts[ i ].v < -1 )
        {
            if ( poly.verts[ i ].v > Nearest_v)
            {
                Nearest_v = poly.verts[ i ].v;
            }
        
        }
        else
        {
            Nearest_v = 0;
            NeedNormalize_v = false; // координаты уже нормализованны
        }
    }
}

if ( NeedNormalize_u )
{
    if ( Nearest_u > 0 )
    {
        Nearest_u = floor ( Nearest_u ); // Округляем до ближайшего меньшего числа
    }
    else
    {
        Nearest_u = ceil ( Nearest_u ); // Округляем до ближайшего большего числа
    }
}

if ( NeedNormalize_v )
{
    if ( Nearest_v > 0 )
    {
        Nearest_v = floor ( Nearest_v ); // Округляем до ближайшего меньшего числа
    }
    else
    {
        Nearest_v = ceil ( Nearest_v ); // Округляем до ближайшего большего числа
    }
}

for i = 0 to NumberOfVertices - 1
{
    poly.verts[ i ].u = poly.verts[ i ].u – Nearest_u;
    poly.verts[ i ].v = poly.verts[ i ].v – Nearest_v;
}

Иногда система Windows отображает сообщения об ошибках поврежденных или отсутствующих файлов Map.exe. Подобные ситуации могут возникнуть, например, во время процесса установки программного обеспечения. Каждая программа требует определенных ресурсов, библиотек и исходных данных для правильной работы. Поэтому поврежденный или несуществующий файл Map.exe может повлиять на неудачное выполнение запущенного процесса.

Файл был разработан Microsoft для использования с программным обеспечением Windows. Здесь вы найдете подробную информацию о файле и инструкции, как действовать в случае ошибок, связанных с Map.exe на вашем устройстве. Вы также можете скачать файл Map.exe, совместимый с устройствами Windows 8.1, Windows 8, которые (скорее всего) позволят решить проблему.

For Windows
Совместим с: Windows 8.1, Windows 8

Популярность пользователя

Исправьте ошибки Map.exe

  • 1 Информация о файле Map.exe
  • 2 Ошибки, связанные с файлом Map.exe
  • 3 Как исправить ошибки, связанные с Map.exe?
    • 3.1 Сканирование на наличие вредоносных программ
    • 3.2 Обновление системы и драйверов
    • 3.3 Инструмент проверки системных файлов
    • 3.4 Восстановление системы
  • 4 Скачать Map.exe
    • 4.1 Список версий файла Map.exe

Информация о файле

Основная информация
Имя файла Map.exe
Расширение файла EXE
Описание Map
Программного обеспечения
программа Map
Программного обеспечения Windows
автор Microsoft
Версия программного обеспечения 8.1
подробности
MIME тип application/octet-stream
Тип файла Executable application
система Win32
Авторские права Copyright © 2014

Map.exe

Наиболее распространенные проблемы с файлом Map.exe

Существует несколько типов ошибок, связанных с файлом Map.exe. Файл Map.exe может находиться в неправильном каталоге файлов на вашем устройстве, может отсутствовать в системе или может быть заражен вредоносным программным обеспечением и, следовательно, работать неправильно. Ниже приведен список наиболее распространенных сообщений об ошибках, связанных с файлом Map.exe. Если вы найдете один из перечисленных ниже (или похожих), рассмотрите следующие предложения.

  • Map.exe поврежден
  • Map.exe не может быть расположен
  • Ошибка выполнения — Map.exe
  • Ошибка файла Map.exe
  • Файл Map.exe не может быть загружен. Модуль не найден
  • невозможно зарегистрировать файл Map.exe
  • Файл Map.exe не может быть загружен
  • Файл Map.exe не существует

Map.exe

Error

Не удалось запустить приложение, так как отсутствует файл Map.exe. Переустановите приложение, чтобы решить проблему.

OK

Проблемы, связанные с Map.exe, могут решаться различными способами. Некоторые методы предназначены только для опытных пользователей. Если вы не уверены в своих силах, мы советуем обратиться к специалисту. К исправлению ошибок в файле Map.exe следует подходить с особой осторожностью, поскольку любые ошибки могут привести к нестабильной или некорректно работающей системе. Если у вас есть необходимые навыки, пожалуйста, продолжайте.

Как исправить ошибки Map.exe всего за несколько шагов?

Ошибки файла Map.exe могут быть вызваны различными причинами, поэтому полезно попытаться исправить их различными способами.

Шаг 1.. Сканирование компьютера на наличие вредоносных программ.

Virus Scan

Файлы Windows обычно подвергаются атаке со стороны вредоносного программного обеспечения, которое не позволяет им работать должным образом. Первым шагом в решении проблем с файлом Map.exe или любыми другими системными файлами Windows должно быть сканирование системы на наличие вредоносных программ с использованием антивирусного инструмента.

Если по какой-либо причине в вашей системе еще не установлено антивирусное программное обеспечение, вы должны сделать это немедленно. Незащищенная система не только является источником ошибок в файлах, но, что более важно, делает вашу систему уязвимой для многих опасностей. Если вы не знаете, какой антивирусный инструмент выбрать, обратитесь к этой статье Википедии — сравнение антивирусного программного обеспечения.

Шаг 2.. Обновите систему и драйверы.

Windows Update

Установка соответствующих исправлений и обновлений Microsoft Windows может решить ваши проблемы, связанные с файлом Map.exe. Используйте специальный инструмент Windows для выполнения обновления.

  1. Откройте меню «Пуск» в Windows.
  2. Введите «Центр обновления Windows» в поле поиска.
  3. Выберите подходящую программу (название может отличаться в зависимости от версии вашей системы)
  4. Проверьте, обновлена ​​ли ваша система. Если в списке есть непримененные обновления, немедленно установите их.
  5. После завершения обновления перезагрузите компьютер, чтобы завершить процесс.

Помимо обновления системы рекомендуется установить последние версии драйверов устройств, так как драйверы могут влиять на правильную работу Map.exe или других системных файлов. Для этого перейдите на веб-сайт производителя вашего компьютера или устройства, где вы найдете информацию о последних обновлениях драйверов.

Шаг 3.. Используйте средство проверки системных файлов (SFC).

System File Checker

Проверка системных файлов — это инструмент Microsoft Windows. Как следует из названия, инструмент используется для идентификации и адресации ошибок, связанных с системным файлом, в том числе связанных с файлом Map.exe. После обнаружения ошибки, связанной с файлом %fileextension%, программа пытается автоматически заменить файл Map.exe на исправно работающую версию. Чтобы использовать инструмент:

  1. Откройте меню «Пуск» в Windows.
  2. Введите «cmd» в поле поиска
  3. Найдите результат «Командная строка» — пока не запускайте его:
  4. Нажмите правую кнопку мыши и выберите «Запуск от имени администратора»
  5. Введите «sfc / scannow» в командной строке, чтобы запустить программу, и следуйте инструкциям.

Шаг 4. Восстановление системы Windows.

Windows Recovery

Другой подход заключается в восстановлении системы до предыдущего состояния до того, как произошла ошибка файла Map.exe. Чтобы восстановить вашу систему, следуйте инструкциям ниже

  1. Откройте меню «Пуск» в Windows.
  2. Введите «Восстановление системы» в поле поиска.
  3. Запустите средство восстановления системы — его имя может отличаться в зависимости от версии системы.
  4. Приложение проведет вас через весь процесс — внимательно прочитайте сообщения
  5. После завершения процесса перезагрузите компьютер.

Если все вышеупомянутые методы завершились неудачно и проблема с файлом Map.exe не была решена, перейдите к следующему шагу. Помните, что следующие шаги предназначены только для опытных пользователей

Загрузите и замените файл Map.exe

Последнее решение — вручную загрузить и заменить файл Map.exe в соответствующей папке на диске. Выберите версию файла, совместимую с вашей операционной системой, и нажмите кнопку «Скачать». Затем перейдите в папку «Загруженные» вашего веб-браузера и скопируйте загруженный файл Map.exe.

Перейдите в папку, в которой должен находиться файл, и вставьте загруженный файл. Ниже приведен список путей к каталогу файлов Map.exe.

  • Windows 8.1: C:\Program Files\WindowsApps\Microsoft.BingMaps_2.1.3230.2048_x86__8wekyb3d8bbwe\
  • Windows 8: 1: C:\Program Files\WindowsApps\Microsoft.BingMaps_2.1.3230.2048_x86__8wekyb3d8bbwe\

Если действия не помогли решить проблему с файлом Map.exe, обратитесь к профессионалу. Существует вероятность того, что ошибка (и) может быть связана с устройством и, следовательно, должна быть устранена на аппаратном уровне. Может потребоваться новая установка операционной системы — неправильный процесс установки системы может привести к потере данных.

Список версий файлов

For Windows 8.1

Имя файла
Map.exe

система
Windows 8.1

Размер файла
1851904 bytes

Дата
2014-11-21

Подробности файла
MD5 5209272b88a6c12f55d02823186066bb
SHA1 3ec7c5ee37f9c850a5ffb886fce3db9fce354865
SHA256 b82e71104baf57afb42b1e4e545c336820c82a0e7d97759ca03420de4bbd7dc9
CRC32 76b7198b
Пример расположения файла C:\Program Files\WindowsApps\Microsoft.BingMaps_2.1.3230.2048_x86__8wekyb3d8bbwe\

For Windows 8

Имя файла
Map.exe

система
Windows 8

Размер файла
600432 bytes

Дата
2012-07-26

Подробности файла
MD5 aae8788d7f249247003bb12237875d40
SHA1 5bb4ad4205083fa346b5573b644c9dd76337f219
SHA256 38845958b6710e069235021e681531f14943c68ed7b82444c51f5ec083484a0d
CRC32 50cbf784
Пример расположения файла 1: C:\Program Files\WindowsApps\Microsoft.BingMaps_2.1.3230.2048_x86__8wekyb3d8bbwe\

Description
If we restored a process in a new pid&mnt namespace, and this process got an «fd» transferred from another process(in a different mnt namespace). CRIU dump(in the same namespace with the target process) will be failed due to can’t lookup the mnt_id.

Steps to reproduce the issue:

  1. Write a program that uses an «fd» transferred from another process, and mmap it.
  2. Use CRIU to dump it and then restore it in a new pid&mnt namespace.
  3. After the restore, the program got an «fd» transferred from another process(which is in a differnt mnt namespace) and mmap it.
  4. Try to use CRIU checkpoint again(in the same pid&mnt namespace), it failed due to following error:
Error: Can't lookup mount=20 for fd=-3 path=/mapped_file
Error: Collect mappings (pid: 2990436) failed with -1
Error: Dumping FAILED.

Describe the results you received:
Failed to checkpoint after restoring it in a new pid&mnt namespace.

Describe the results you expected:
Successfully checkpoint the prcess.

Additional information you deem important (e.g. issue happens only occasionally):

Actually, I have dive deep into this problem and found the root casue. When CRIU tries to dump a file map. It will open the /proc/pid/map_files/vma_start-vma_end(which should link to the real file path) and got the vm_file_fd, then read mnt_id from /proc/self/fdinfo/vm_file_fd. In the case I described above it will get the mnt_id same with the original process(The one open the file and transfer the fd to the target process), instead of the mnt_id that we should see in the new mnt namespace.

Now I have a process restored in a new pid&mnt namespace:

root      8900  0.2  0.1 10050540 19436 pts/4  Sl+  16:58   0:00 java A1 1

Enter its namespace and check the file map:

nsenter -t 8900 -m -p
# ps aux | grep java
root      8667  0.2  0.1 10050540 19436 pts/4  Sl+  16:58   0:00 java A1 1

# lsof -p 8667
java    8667 root    6u   REG              0,19       0  4554167 /mapped_file
# ls -l /proc/8667/map_files/ | grep mapped_file
lrw-------. 1 root root 64 Jun 15 17:03 781600000-781800000 -> /mapped_file

Open the file map link and check fdinfo

# exec 100< /proc/8667/map_files/781600000-781800000
# cat /proc/$$/fdinfo/100
pos:    0
flags:  0100000
mnt_id: 20

20 is actually the mnt_id from the host mnt namespace.

If I open the real file path and check the fdinfo:

# exec 101< /mapped_file
# cat /proc/$$/fdinfo/101
pos:    0
flags:  0100000
mnt_id: 92

This one is correct.

I made a patch to use the real file path instead of the /proc/pid/maps_files/ seems to work well. Worried if I missed something:

diff --git a/criu/proc_parse.c b/criu/proc_parse.c
 index 0842a0e13..679e992ed 100644
 --- a/criu/proc_parse.c
 +++ b/criu/proc_parse.c
 @@ -375,6 +375,8 @@ static int vma_get_mapfile(const char *fname, struct vma_area *vma, DIR *mfd,
  {
         char path[32];
         int flags;
 +       char real_name[PATH_MAX];
 +       int ret;

         /* Figure out if it's file mapping */
         snprintf(path, sizeof(path), "%"PRIx64"-%"PRIx64, vma->e->start, vma->e->end);
 @@ -426,7 +428,20 @@ static int vma_get_mapfile(const char *fname, struct vma_area *vma, DIR *mfd,
                  */
                 flags = O_RDONLY;

 -       *vm_file_fd = openat(dirfd(mfd), path, flags);
 +       /*
 +        * When the process got the fd transfered from another process and maps it,
 +        * Then open the /proc/pid/map_files/vma_start-vma_end will get the mnt_id
 +        * same with the original process who opens it, even the target process now
 +        * is in a different mnt namespace.
 +        * Tried to use the real file path works well
 +        */
 +       ret = readlinkat(dirfd(mfd), path, real_name, sizeof(real_name) - 1);
 +       if (ret < 0) {
 +               *vm_file_fd = openat(dirfd(mfd), path, flags);
 +       } else {
 +               real_name[ret] = '\0';
 +               *vm_file_fd = open(real_name, flags);
 +       }
         if (*vm_file_fd < 0) {
                 if (errno == ENOENT)
                         /* Just mapping w/o map_files link */

CRIU logs and information:

CRIU full dump/restore logs:

Output of `criu —version`:

Output of `criu check —all`:

Additional environment details:


Часть 1

Одной из основных программ, используемых в картографии, является MapInfo. Программа обладает как минусами, так и плюсами, но сейчас я не буду на них останавливаться. Просто примем как данность, что MapInfo широко используется и большое количество людей ежедневно задается вопросом «а как сделать то или это».

В принципе, программа обладает развитой справкой, в которой можно найти ответ на почти любой ПРАВИЛЬНО заданный вопрос. Однако, умение правильно задать вопрос приходит далеко не сразу. На первых порах большинство пользователей сталкиваются с проблемами, связанными, во-первых, с недопониманием идеологии ГИС-программы, во-вторых – с незнанием функциональных возможностей MapInfo. Такие или подобного уровня проблемы в других программных продуктах(AutoCad, CorelDRAW, etc.) решаются обилием книг серии «Что-то там для чайников». При всем их, зачастую, невысоком качестве, они решают основную проблему начинающего пользователя — снимают большую часть «глупых» вопросов.

Для MapInfo таких книг нет, или, по крайней мере, я не встречал. Ни официальных, ни «самодеятельных». Официальный представитель MapInfo в России, фирма «ЭСТИ МАП», на вопросы о вероятности выпуска некого учебника по программе туманно отмалчивается.

Приходится закрывать эту лакуну самостоятельно.

За время работы с MapInfo и поддержки пользователей в разных организациях у меня вырисовался круг вопросов, которые задают новички чаще всего. В данной статье я попробую просуммировать эти вопросы и составить небольшой FAQ по Mapinfo.

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

UPD: Вторая часть FAQ по ГИС MapInfo здесь.


GIS MapInfo FAQ

  • Я рисую, а у меня ничего не появляется.
  • Панель инструментов постоянно куда-то «улетает».
  • Как импортировать точки из текстового файла?
  • Как построить полигон/полилинию по существующим точкам?
  • Что за серые строки в окне списка?
  • Как расцепить/сцепить точки смежных объектов?
  • Почему опции в меню «Объекты» серые?
  • Чем отличаются опции из меню «Объекты» и из меню «Таблица»?
  • Надоело каждый раз указывать проекцию.
  • Как узнать текущую проекцию?
  • Как сцепить все смежные точки объектов?
  • Как сделать полигон с «дыркой»?
  • Как узнать количество всех объектов?
  • Как посчитать площадь/длину объектов?
  • Как соединить/разъединить таблицы?
  • Как быстро сделать слой редактируемым?
  • Как увидеть все узлы объекта?
  • Как добавить/удалить узел объекта?
  • Как выбрать объекты, лежащие друг под другом?
  • Быстрое создание полигонов.
  • Постоянно выбирается верхний слой. Как избавиться?
  • Как включить линейки прокрутки?
  • Как показать только часть карты?
  • Почему не обновляется колонка?
  • Как выбрать все линии (полигоны, текст, символы)?
  • Рабочий набор не открывается. Что делать?
  • Как автоматически пронумеровать объекты?
  • Почему не виден растр?
  • Почему при перемещении объект искажается?
  • При экспорте окна сохраняется только видимая часть карты, а мне нужна вся.
  • Как узнать границы растра в окне привязки?
  • Как проще привязать растр?
  • Как присоединить фотографию к объекту?
  • Что лучше – надпись или подпись?
  • Какие файлы надо копировать, чтобы передать заказчику?
  • Как узнать координаты вершин полигона?
  • Как отсортировать записи в таблице?
  • Почему программа пишет, что таблица уже открыта?
  • Как сделать подпись в несколько строк?
  • Я пытаюсь перенести объект, а он увеличивается!
  • Как узнать координаты курсора?
  • Как выбрать все точки внутри полигона?
  • Не удаляется полигон!
  • Как подписать объект из нескольких колонок?
  • При обновлении колонки пишет в ячейки «FF»
  • Как проверить карту на ошибки?
  • Я открываю, а на карте ничего нет. Как это?
  • В отчете слишком много листов. Можно установить их количество?
  • Где можно почитать о MapInfo?
  • Где скачать программы для MapInfo?

Я рисую, а у меня ничего не появляется.

Вариант 1. Ни один слой не является редактируемым.
Правый клик по полю карты открывает контекстное меню. Выбираем «Управление слоями». В списке открытых слоев выбираем чек в колонке с изображением карандаша напротив требуемого слоя. Жмем OK.

Вариант 2. Редактируемый объект находится за пределами границ рабочей области.
Т.е., к примеру, в слое указаны размеры координатной системы по X от 0 до 1000 метров, а объект располагается на отметке 5000. Одним из проявлений этой проблемы является обрыв и строго горизонтальное либо вертикальное расположение объекта по завершении редактирования — часть объекта находится в границах рабочей области, часть вышла за них и спроецирована на линию границы.
Необходимо изменить границы рабочей области. Самый простой способ – сделать копию файла. Идем в меню: «Файл» → «Сохранить копию». Если у нас загружено несколько таблиц, в открывшемся окне указываем – какую именно карту будем сохранять, и нажимаем «Новое имя».

В появившемся окне выбора имени файла, в правом нижнем углу, находим кнопку «Проекции».

В окне выбора проекции указываем требуемую проекцию (наиболее распространено План-схема, метры) и в следующем окне уже можем вводить новые координаты границы рабочей области.

Обратите внимание, что копия таблицы будет сохранена на диск, но не откроется автоматически.

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

Панель инструментов постоянно куда-то «улетает».

Перетащите Панели Инструментов на их законное место. Сделайте правый клик мышкой по Панели Инструментов. В появившемся окне выберите чек «Запомнить».

Как импортировать точки из текстового файла?

Для начала текстовый файл должен отвечать следующим критериям: содержать форматированный текст (т.е. поля должны быть разделены неким символом-разделителем, лучше всего – табуляцией) и разделителем целой и дробной части координаты должна выступать точка. Расширение файла должно быть txt или csv:

Далее открываем текстовый файл в MapInfo (в окне выбора файла указываем тип ASCII или csv). В окне диалога импорта указываем символ-разделитель (несколько символов-разделителей подряд обрабатываются как один) и наличие строки заголовка. Обратите внимание: если в текстовом файле строка заголовка присутствует, но при импорте это не указано, построение точек будет невозможно.

В результате в MapInfo открывается окно списка с данными. Для построения точек идем в меню «Таблица» → «Создать точечные объекты».

В окне диалога «Создать точечные объекты» указываем:

¤ Создать точки в таблице – указываем имя требуемой таблицы. Несмотря на открытый в MapInfo текстовый файл, точечные объекты будут созданы именно в той таблице, которую Вы укажите.
¤ Извлечь координаты … – указываем колонки с координатами X и Y.
¤ Координату умножить на … – в случае необходимости производим арифметические операции с координатами.
¤ Переписать существующие точки – при выборе этой опции точки с совпадающими именами будут переписаны, при отказе – добавлены в конец файла.
¤ Проекция – в случае нового файла указываем проекцию и границы рабочей области.

После нажатия кнопки ОК точки созданы. Однако окно карты пока что неактивно. Для визуализации карты идем в меню «Окно» → «Новая карта» и в открывшемся окне указываем слои карты, которые хотим показать.

Как построить полигон/полилинию по существующим точкам?

Выделяем точки, по которым требуется построить объект, следим за тем, чтобы слой, на который хотим поместить объект, был редактируемым, идем в меню «Объекты» → «Оконтурить объекты». В открывшемся диалоговом окне выбираем опцию «Создать один контур для всех объектов».

Обратите внимание, что этот способ создает полигон по крайним точкам выборки. Таким образом, создание полилинии или сложного полигона требует дополнительного ручного редактирования.

Что за серые строки в окне списка?

Эти?

«Серые» строки в окне списка появляются при удалении объектов. Т.е. объект удален, но только визуально, в базе данных он по прежнему содержится(и может, кстати, быть извлечен!). Для того, чтобы окончательно удалить запись, надо упаковать данные: меню «Таблица» → «Изменить» →«Упаковать».

В диалоговом окне указываем, какую таблицу и какой тип данных необходимо упаковать (табличные данные, графику или и то, и другое) и нажимаем ОК.

Обратите внимание – после выполнения упаковки окажутся закрытыми все связанные списки, а в окнах карты удалится слой таблицы. Для восстановления визуализации необходимо либо добавить нужное окно через меню «Окно» → «Новая карта»  «Новый список» или воспользоваться менеджером слоев (в окне существующей карты).

Как расцепить/сцепить точки смежных объектов?

Если нужно, чтобы узлы смежных объектов обрабатывались раздельно (или, наоборот, вместе),необходимо изменить настройку режимов карты. Идем в опцию меню «Настройки» →«Режимы».

В открывшемся диалоговом окне выбираем категорию «Окно Карты» и выбираем опцию «Совмещать при перемещении»:

Результат при выборе той или иной опции будет следующим:

Почему опции в меню «Объекты» серые?

«Серые» (неактивные) пункты меню означают, что данные опции недоступны. Для того, чтобы использовать эти функции, необходимо:

  1. сделать слой редактируемым;
  2. выбрать редактируемый объект;
  3. сделать его изменяемым.

Для того, чтобы сделать объект изменяемым, идем в меню «Объекты» →«Выбрать изменяемый объект». Если все сделано правильно, объект изменит стиль выделения.

После того, как выбран изменяемый объект, необходимо выбрать объект, по которому будут производится изменения. Пункты меню станут активными. Для приведенного выше примера будут доступны такие действия, как:

  • Разрезать – разделит изменяемый объект на 2 смежных по границе с выделенным;
  • Удалить часть – удалит попадающую в зону перекрытия часть изменяемого объекта;
  • Удалить внешнюю часть – удалит не попадающую в зону перекрытия часть изменяемого объекта.

Для того, чтобы снять изменяемость с объекта, необходимо выполнить команду «Объекты»→ «Освободить изменяемый объект»

Чем отличаются опции из меню «Объекты» и из меню «Таблица»?

Действительно, в версии MapInfo старше 8.0 в пунктах меню «Объекты» и «Таблица»3 команды имеют одинаковое название: «Буферные зоны», «Полигоны Вороного» и «Зоны транспортной доступности». Различие их вытекает из названий родительского меню. Команды из меню «Объекты» применимы для выделенных объектов, а команды из меню «Таблица» – для всех объектов указанной таблицы.

Надоело каждый раз указывать проекцию.

Для того, чтобы каждый раз при создании новой таблицы и при импорте точечных объектов не указывать одну и ту же проекцию, необходимо настроить значения проекций по умолчанию. Делается это в меню «Настройка» → «Режимы» → «Окно карты» → «Проекции по умолчанию».

Также по умолчанию можно настроить и пути сохранения таблиц и рабочих наборов: «Настройка»→ «Режимы» → «Каталоги».

Как узнать текущую проекцию?

Необходимо различать проекцию текущего окна карты и исходную проекцию таблицы. Изменить проекцию таблицы можно только пересохранив ее под другим именем в нужной проекции. В то же время достаточно легко изменить проекцию окна карты: меню «Карта» → «Режимы», опция «Проекция». Данное изменение будет действовать только для текущего сета работы и не сохраняется в файл при закрытии.

Внимание! Если в рабочем наборе открыто несколько таблиц с разными проекциями, окно карты примет проекцию последней открытой таблицы и распространит принципы и геометрию этой проекции на все остальные слои.

Чтобы узнать исходную проекцию таблицы, выбираем «Таблица» → «Изменить» →«Перестроить» → «Проекция».

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

Как сцепить все смежные точки объектов?

Если требуется сцепить смежные точки существующих объектов, можно воспользоваться инструментом «Совмещение и генерализация» (меню «Объекты»).

К примеру, имеется 2 полигона, для которых необходимо создать общую границу:

Выделяем объекты, в диалоговом окне инструмента выставляем чек «Совмещение узлов разных объектов» и в поле «Расстояние» вводим радиус захвата смежных узлов (чем радиус больше, тем больше узлов будут совмещены в один и тем больше, как следствие, искажение объекта). Нажимаем ОК.

Результат работы инструмента:

Кстати, использование этого инструмента имеет довольно интересное следствие, которое можно использовать. Например, есть два перекрывающихся объекта:

Выделяем объекты, вызываем инструмент «Совмещение…» и в поле «Расстояние» указываем 0. После чего выполняем раскомбинирование объектов («Объекты» →«Разъединить») и получаем:

Для наглядности полученные объекты перемещены относительно друг друга:

Как сделать полигон с «дыркой»?

Для того, чтобы создать полигон с вырезанной площадью (полигон с «дыркой»), необходимо:

  1. Создать контур внешнего полигона.
  2. Создать контур внутреннего полигона.
  3. Выделить (выбрать) внешний полигон.
  4. Сделать внешний полигон изменяемым (меню «Объекты» → «Выбрать изменяемый полигон»)
  5. Выделить (выбрать) внутренний полигон.
  6. Удалить часть полигона («Объекты» → «Удалить часть»)
  7. Удалить внутренний полигон.

Как узнать количество всех объектов?

Для того, чтобы узнать количество всех объектов в таблице, нужно воспользоваться командой «Статистика». Идем в меню «Запрос» → «Статистика колонки», в открывшемся диалоговом окне указываем таблицу, по которой необходимо рассчитать статистику.

Нажимаем ОК. В окне «Статистика колонки» находим позицию «Количество» – это и будет требуемая информация.

Как посчитать площадь/длину объектов?

Напрямую узнать площадь/длину всех объектов таблицы нельзя. Для того, чтобы получить эту информацию, необходимо выполнить несколько промежуточных действий.

В данном примере мы вычислим площадь всех кадастровых участков:

Для начала нам необходимо подготовить нашу таблицу для записи получаемой информации (в данном случае – площади). Для этого мы вызываем диалог «Перестройка структуры таблицы» (опции меню «Таблица» → «Изменить» →«Перестроить», в окне выбора указываем, какую таблицу собираемся изменять).

В открывшимся окне, используя кнопки «Добавить поле» добавляем поле, в которое будем записывать площадь по каждому из участков. Обратите внимание: для численных данных (площадь, длина, количество и т.д.) тип поля должен быть либо «Целое» (данные округлятся до целого числа), либо «Вещественное» – наиболее часто используемый тип поля, либо «Десятичное». В последнем случае можно (и нужно!) указать количество разрядов десятичного числа. Использование остальных типов полей для занесения числовых значений, скорее всего, вызовет ошибку.

В нашем примере мы создаем поле «Area» и присваиваем ему тип «Вещественное». После нажатия кнопки ОК изменяемая таблица исчезнет из открытых окон карты и списков.

Таким образом, поле для занесения информации подготовлено. Теперь надо это поле заполнить. Делается это так: меню «Таблица» → «Обновить колонку», и в открывшемся диалоговом окне заполняем поля следующим образом:

Обновить таблицу – указываем, в какую таблицу будем записывать данные;
Обновить колонку – указываем имя созданного нами поля;
Значения извлечь из – в данном случае, т.к. работаем с одной таблицей, дублируем имя изменяемой таблицы;
Значение – тут самая хитрость. Для составления формулы заполнения ячеек поля необходимо либо воспользоваться конструктором выражений (кнопка «Составить»), либо вручную записать: для вычисления площади «Area(obj, «sq m»)», для вычисления длины объектов – «ObjectLen(obj, «m»)». Обратите внимание, что по умолчанию конструктор выражений предлагает единицы вычисления километры («km»). Для вычисления, к примеру, в метрах необходимо исправить выражение вручную.

После нажатия кнопки ОК в открывшимся окне списка мы увидим, что колонка «Area» заполнилась значениями площади по каждому объекту.

Теперь, для того чтобы просуммировать данные по колонке, достаточно просто зайти в окно статистики(меню «Запрос» → «Статистика колонки», указав нужную таблицу и колонку для вычисления) и в поле «Сумма» будет указана, в нашем случае – общая площадь всех участков.

Как соединить/разъединить таблицы?

Собственно, соединить таблицы (выборки) несложно. Достаточно выполнить команду меню «Таблица»→ «Добавить записи в таблицу», в диалоговом окне указать таблицу-источник и таблицу-получателя и после нажатия кнопки ОК данные таблицы-источника добавятся в конец таблицы-получателя.

Разъединяются таблицы по несколько иному сценарию. В исходной таблице, содержащей объединенные данные, определяются и выделяются объекты для сохранения в файл. После чего выборка сохраняется: меню «Файл»→ «Сохранить копию». В окне «Создать копию» выбираем слой Selection или Query (последний представляет из себя выборку, сформированную запросом и различается порядковым номером: Query1, Query2, Query3 и т.д.).

После нажатия кнопки «Новое имя» откроется стандартный диалог сохранения файла MapInfo.

Операция «выделить объекты – сохранить копию» повторяется столько раз, сколько необходимо создать файлов.

Как быстро сделать слой редактируемым?

Для того, чтобы сделать слой редактируемым, необязательно каждый раз вызывать менеджер слоев. Внизу окна MapInfo расположена строка состояния. Третья слева вкладка отображает название выбранного слоя, а вторая слева отображает название текущего редактируемого. При левом клике мышью по нему откроется список всех слоев. Выбрав требуемый, вы сделаете его редактируемым.

Как увидеть все узлы объекта?

Увидеть узлы объекта можно 2 способами.

Вариант 1. Сделать слой редактируемым, выделить объект и включить режим «Узлы»
на панели инструментов. При этом варианте видимость узлов присваивается только для выделенного объекта и сбрасывается при снятии выделения.

Вариант 2. Правым кликом по полю карты или соответствующей кнопкой на панели инструментов вызвать окно «Управление слоями». В этом окне выделить слой, для которого требуется показать узлы и либо двойным кликом по названию слоя в списке, либо нажав кнопку «Оформление», вызвать диалоговое окно «Оформление».

Отметив опцию «Показ узлов» мы добьемся следующего эффекта:

Обратите внимание – при варианте 2 узлы только отображаются, но не редактируемы.

Как добавить/удалить узел объекта?

Для добавления/удаления и, вообще, редактирования узлов объекта необходимо выполнить следующие действия:

  1. Сделать слой редактируемым
  2. Выделить редактируемый объект
  3. Включить режим редактирования узлов
  4. Левым кликом мыши выделить редактируемый узел.

В режиме редактирования узлов доступны следующие действия:

  • Перемещение узла (удерживая нажатой левую кнопку мыши)
  • Удаление узла (клавиши DELETE и BACKSPACE)
  • Добавление узла (выделенная кнопка на панели инструментов)

Для удаления/перемещения узлов поддерживается мультивыделение. Для выделения нескольких узлов используйте клавишу SHIFT. При включенном режиме совмещения узлов(клавиша S) и при попадании добавляемого узла в зону совмещения новый узел будет «притянут» к существующему.

Как выбрать объекты, лежащие друг под другом?

Используйте при выделении клавишу CTRL. Перекрывающиеся объекты будут выбираться циклически, начиная с самого верхнего.

Быстрое создание полигонов.

Несколько советов:

Используйте режим совмещения узлов (клавиша S в латинской раскладке клавиатуры).

Используйте при создании объекта режим дигитайзера:

  • клавиша D (в латинской раскладке клавиатуры) включает режим.
  • выбор 2 точек существующего объекта при нажатой клавише SHIFT обходит новым объектом все узлы существующего по кратчайшей траектории;
  • выбор 2 точек существующего объекта при нажатой клавише CTRL обходит новым объектом все узлы существующего по наибольшей траектории.

Используйте инструменты работы с объектами (слияние, разрезание, удаление части и создание буферных зон) для получения промежуточных (или конечных объектов). Комбинирование промежуточных объектов зачастую, а особенно для объектов с большим количеством узлов, рациональнее создания их «с нуля».

Постоянно выбирается верхний слой. Как избавиться?

Отключите его доступность. В окне «Управление слоями» выделите в списке нужный слой и снимите выделения с колонки «Доступность».

Слой останется видимым, но его объекты нельзя будет выбрать.

Как включить линейки прокрутки?

По умолчанию линейки прокрутки в окне карты MapInfo отключены. Для того, чтобы включить линейки прокрутки для текущего сеанса работы, необходимо зайти в меню «Карта» →«Режимы» и включить опцию «Линейки прокрутки».

Для того, чтобы включить показ линеек прокрутки по умолчанию надо зайти в меню «Настройки»→ «Режимы» → «Окно Карты» и включить опцию «Линейки прокрутки».

Как показать только часть карты?

Вариант 1. Сделать объекты, которые надо скрыть, невидимыми. Для этого выберите объекты, вызовите их свойства (клавиша F7 или соответствующая кнопка панели инструментов) и в поле типа заливки/линии/символа выберите «N». Например, так:

Вариант 2. Сделать слой-«маску». Создайте новый слой, в нем создайте, к примеру, прямоугольник с размерами, несколько превышающими границы всех объектов – собственно, маску. Следом создайте контур видимости – полигон, внутрь которого попадают отображаемые объекты. Удалите часть по контуру видимости из маски (выделить прямоугольник, клавиши CTRL+E, выделить контур, меню «Объекты»→ «Удалить часть»), удалите сам контур видимости. В свойствах объекта или в оформлении слоя установите для региона следующие характеристики:

Сохраните получившийся слой и установите его верхним в менеджере слоев (клавиши CTRL+L). Если требуется, снимите доступность с слоя (колонка с изображением указателя).

Вариант 3. Использовать область врезки. Выберите все объекты, которые должны быть отображены или создайте окаймляющий полигон в, например, косметическом слое(очень удобно для этих целей использовать команду «Объекты» →«Оконтурить объекты») и выделите его. В меню «Карта» выберите опцию «Выбрать область врезки». Для включения режима невидимости используйте команду «Показать врезку», для снятия, соответственно – «Скрыть врезку».

Обратите внимание – область врезки не сохраняется в файлах данных. Таким образом, для последующего использования врезки ее необходимо сохранять в Рабочий набор.

Почему не обновляется колонка?

Если при обновлении колонки программа выдает сообщение «Преобразовать данные не удалось» и обновляемая колонка не изменяется, то причина, скорее всего, в несоответствии типов данных. Т.е., к примеру, колонка-источник имеет тип данных «Символьное», а колонка-получатель – «Целое».

Лучше всего, если обе колонки, и источник, и получатель, будут иметь один тип данных. Но в то же время возможны следующие переходы:

  • Любой тип – в символьное;
  • Любое число – в логическое (значения T (истина) <> 0 или F (ложь) = 0);
  • Любое число – в любое число (с потерями по разрядам).

Кстати, последнюю особенность можно использовать, когда требуется, к примеру, получить округленные данные – записывать дробные числа в поле целого типа.

Как выбрать все линии (полигоны, текст, символы)?

Для того чтобы выбрать объекты одного типа, необходимо воспользоваться функцией STR()языка запросов.

Откройте конструктор запросов MapInfo (меню «Запрос» → «Выбрать»)и, указав таблицу, в которой будет произведен поиск, введите в поле условия следующие конструкции:

Str$(obj)=»region» для выбора полигонов
Str$(obj)=»point» для выбора точек
Str$(obj)=»line» для выбора линий
Str$(obj)=»polyline» для выбора полилиний
Str$(obj)=»text» для выбора текста
Str$(obj)=»arc» для выбора дуг
Str$(obj)=» ellipse» для выбора окружностей
Str$(obj)=»rect» для выбора прямоугольников
Str$(obj)=»roundrect» для выбора скругленных прямоугольников

Эти конструкции сочетаются как друг с другом, так и с другими конструкциями. Например, запрос типа
Str$(obj)=»region» And Area(obj, «sq m»)>2000 выберет из таблицы все полигоны площадью большей чем 2000 кв. м.

Рабочий набор не открывается. Что делать?

Для того, чтобы сказать, почему не открывается рабочий набор, надо знать, какое сообщение выдает при этом программа. Я попробую перечислить самые частые проблемы:

1.    Сообщение об ошибке типа:

Причина. Подобное сообщение выводится если рабочий набор подготовлен в более поздней версии MapInfo, нежели используемая.

Решение. Откройте рабочий набор при помощи любого текстового редактора (например, «Блокнота»). 2-ая строка будет иметь вид:

!Version 900

Т.е. набор подготовлен в версии MapInfo 9.0. Исправьте версию на текущую или более низкую, например, так:

!Version 550

Сохраните файл и откройте рабочий набор снова.

2.    При попытке открыть рабочий набор появляется диалоговое окно выбора файла с предложением указать путь к некой таблице.

Причина. В рабочем наборе прописан неверный путь к файлу.

Решение. Укажите путь к файлу в открывшемся окне выбора файла ;) ! Если у Вас такого файла нет, укажите любой другой файл (желательно не из числа уже открываемых в наборе). Потом, после открытия набора, этот файл можно будет удалить (меню «Файл» → «Закрыть таблицу»).

Обратите внимание! Пути в рабочем наборе могут быть как абсолютные (полный путь, включая буквы диска), так и относительные. Если все файлы рабочего набора расположены в том же каталоге, что и сам набор, либо ниже – пути пропишутся как относительные. Такой рабочий набор можно безбоязненно переносить из каталога в каталог (с файлами таблиц, естественно), не опасаясь. Если же возникнет необходимость отредактировать пути к файлам рабочего набора вручную, это можно сделать также в любом текстовом редакторе. Редактируются строки вида:

Open Table «sample» As sample Interactive

3.    Сообщение об ошибке типа:

Причина. Изменена структура файла данных, открываемого в рабочем наборе.

Решение. В строке сообщения, после имени рабочего набора, указывается цифра – номер строки рабочего набора, на которой произошла ошибка. Откройте рабочий набор в текстовым редакторе и перейдете к указанной строке. Закомментируйте ее (поставьте знак апострофа первым символом в строке). Например, так:

‘ Visibility On

Сохраните файл и попробуйте открыть рабочий набор снова. Если сообщение об ошибке не исчезло, закомментируйте предыдущую строку, и так далее, пока сообщение не перестанет появляться. В конечном итоге у Вас должно получится что-то вроде:

‘ With Num
‘ Parallel On Auto On Overlap Off Duplicates On Offset 2
‘ Visibility On

Именно строка «With Num» и была ошибочной – колонки Num в открываемой таблице не существовало.

Как автоматически пронумеровать объекты?

Для того, чтобы автоматически пронумеровать все объекты в таблице (выборке), можно воспользоваться функцией RowId.

Вызовите диалоговое окно обновления колонки («Таблица» → «Обновить колонку»), в полях «Обновить таблицу» и «Значения извлечь из» укажите имя рабочей таблицы, в поле «Обновить колонку» укажите имя колонки, в которую надо записать полученные данные. В поле значение впишите имя функции RowId. Функцию можно комбинировать с арифметическими действиями, например, так:

RowId + 1000

Указанная конструкция пропишет номера объектов по порядку, типа 1001, 1002, 1003 и т.д.

Если Вы не хотите, чтобы по результатам обновления открывалось новое окно списка, снимите выделение с опции «Результат в Список».

Почему не виден растр?

Скорее всего, потому что включена опция генерализации карты.

Откройте менеджер слоев и, либо двойным щелчком по слою растра, либо нажатием на кнопку «Оформление» (предварительно выбрав слой растра), откройте диалоговое окно оформления слоя.

Снимите выделение с опции «Масштабный эффект» → «Показывать в пределах». Теперь растр в окне карты будет отображаться при любом масштабе.

Что делать если таких подгруженных растров много? Сохраните рабочий набор (меню «Файл» →«Сохранить рабочий набор») и откройте его в текстовом редакторе (например, в «Блокноте»).Найдите конструкцию типа:

Zoom (…, …) Units «m» Off
contrast 50
brightness 50
alpha 255
transparency off
color 0
grayscale off

и удалите признак «Off» из команды Zoom. Т.е. должно получится:

Zoom (…, …) Units «m»

Почему при перемещении объект искажается?

Наиболее вероятная причина трансформации объектов при перемещении – неверно выбранная проекция таблицы. Если при создании таблицы была выбрана любая сферическая проекция (как наиболее типичный пример «Долгота/Широта»), то и все геометрические построения будут производиться также – на сфере. Наименее подверженной искажениям является проекция «План-схема».

Также надо учитывать, что необязательно сама редактируемая таблица создана в сферической проекции. Если один из загруженных в окно карты слоев (чаще всего – последний загруженный) имеет проекцию, к примеру, «Долгота/Широта», то и все окно карты может принять эту проекцию.

Узнать проекцию текущего окна карты можно из окна «Режимы окна Карты» (меню «Карта» → «Режимы»), опция «Проекции».

Также одной из причин искажений объектов карты могут быть слишком широко заданные границы рабочей области таблицы. Известная особенность MapInfo – чем больше диапазон минимума и максимума координат рабочей области, тем ниже точность вычисления по этому слою. Старайтесь задавать граничные координаты с минимальным допуском.

При экспорте окна сохраняется только видимая часть карты, а мне нужна вся.

Чтобы экспортировать в растр всю карту в нужном масштабе, а не только ее видимую в окне Карты часть, воспользуйтесь возможностями Отчета.

Для создания нового отчета выберите пункт меню «Окно» → «Новый отчет». В появившимся диалоговом окне выберите опцию «Чистый лист».

После нажатия кнопки ОК появится окно отчета. Размер листа отчета зависит от настроек печати (меню «Настройки» → «Режимы» → «Принтер», опция «Предпочтительный для MapInfo» — настройки по умолчанию или меню «Файл»→ «Настройки печати» — для текущего сеанса работы).

Используя инструмент «Рамка»

панели инструментов Отчета рисуем прямоугольник произвольных размеров. Появится окно настройки фрейма (рамки).

Подбирая параметры (повторно окно настройки фрейма вызывается либо двойным кликом по полю фрейма, либо нажатием клавиши F7), добиваемся наилучшего вида и расположения карты в окне:

Опция Назначение
Окно В выпадающем списке выбирается окно — источник данных (в нашем случае – карта)
Границы
Центр
Высота
Ширина
Указываются граничные координаты фрейма и его размеры. Отсчет начинается от левого верхнего угла отчета. Единицы измерения выставляются в: «Настройки» → «Режимы» → «Системные» → «Единицы измерения», опция «Для отчета»).
Масштаб Указывается требуемый масштаб
Изменять масштаб карты При выбранной опции масштаб окна карты будет меняться в зависимости от проставленного выше значения при сохранении размеров фрейма.
Изменять размер рамки При выбранной опции масштаб окна карты будет неизменным. Изменятся будет размер фрейма в зависимости от проставленного выше значения масштаба.

Также на объект фрейм распространяются настройки вида

(аналогично полигону). Т.е. можно, к примеру, сделать невидимой рамку фрейма.

Если оказалось, что размеры фрейма превышают размеры листа, то можно либо изменить настройки печати, либо изменить количество листов (меню «Отчет» → «Режимы показа», опция «Размер отчета»), либо вообще ничего не предпринимать. Для экспорта окна это некритично.

После настройки окна отчета его уже можно экспортировать «Файл» → «Экспортировать окно»)точно также, как и окно Карты (и любое другое окно MapInfo).

Как узнать границы растра в окне привязки?

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

Выделите точку привязки в списке (или создайте новую) и нажмите «Правка». В открывшемся диалоговом окне отредактируйте поля «X на растре» и «Y на растре»:

— левый верхний угол – X= 0, Y= 0;
— правый верхний угол – X= ширина изображения в пикселях, Y= 0;
— правый нижний угол – X= ширина изображения в пикселях, Y= высота изображения в пикселях;
— левый нижний угол – X= ширина изображения в пикселях, Y= 0.

Размеры изображения в пикселях можно узнать, к примеру, наведя курсов на файл в окне проводника. Информация отобразится в строке состояния. Но можно поступить иначе. Введите в требуемое поле(«X/Y на растре») некую заведомо большую величину (999999999) и нажмите ОК. MapInfo выдаст сообщение об ошибке, типа «Введите число в диапазоне от 0 до n». Вот эта n и будет искомой величиной ширины/высоты растра.

Как проще привязать растр?

Если имеется карта с нанесенными объектами, по которым необходимо привязать (совместить) растр, то регистрация изображения довольна проста.

Технология следующая:

Открываем растровое изображение («Файл» → «Открыть», в поле «Тип файлов» выбираем строку «Растр»)

В диалоговом окне нажимаем кнопку «Регистрировать». Откроется окно регистрации растра.

Важно! В обязательном порядке указываем проекцию и единицы измерения привязки! По умолчанию в MapInfo выставлена проекция «Долгота/Широта» и единицы – градусы. Лучше, за исключением особых случаев, использовать плоскую СК – «План-схема». Единицы измерения выбираются в зависимости от задач: сантиметры, метры, километры и т.д.

Далее необходимо найти как в открытом окне карты, так и в поле привязки совпадающие элементы. Используйте для перемещения в окне привязки линейки прокрутки и кнопки масштабирования. Переход между окнами (карты и регистрации) осуществляется просто перемещением курсора в требуемое окно.

После того, как совпадающие элементы визуально определены, остается совместить координаты карты и изображения. Можно пойти 2 путями:

  1. Нажимаем на кнопку окна регистрации «Извлечь из карты». Курсор принимает вид маленького крестика. Наводимся на объект в окне карты и щелкаем по нему. Ничего не меняя в появившемся окне, жмем ОК. После этого, выделив появившуюся запись в списке точек привязки, наводимся на соответствующий объект в поле привязки и щелкаем еще раз. На объекте появится красный символ с номером точки. Повторяем процедуру не менее 3 раз, используя кнопку «Добавить» окна регистрации (при 3 точках привязки изображение регистрируется, при большем их количестве также возможно вычисление погрешности привязки).
  2. Наводимся на объект в поле привязки и щелкаем по нему. Ничего не меняя в появившемся окне, жмем ОК. После этого, выделив появившуюся запись в списке точек привязки, переходим в окно карты: меню «Таблица» → «Растр» → «Совместить с картой». Наводимся на соответствующий объект в окне карты и щелкаем по нему. Повторяем процедуру не менее 3 раз, используя кнопку «Добавить» окна регистрации растра.

Растр привязан.

Как присоединить фотографию к объекту?

Для того, чтобы присоединить фотографию к некому объекту, необходимо воспользоваться инструментом«Геолинк»
.

Но для начала необходимо соответствующим образом подготовить данные. Т.к. геолинк представляет собой, по сути, ссылку (текстовую строку с данными, в нашем случае – путь и имя фотографии), требуется создать поле таблицы, ячейки которого будут содержать эти ссылки.

Идем в меню «Таблица» → «Изменить» → «Перестроить». Выбираем нужную таблицу и в открывшемся диалоговом окне создаем новое поле (кнопка «Добавить») с типом Char (Символьное). Необходимо также изменить поле «Знаков», т.е. длину строки — максимальное количество символов, которое может поместиться в ячейке. Нажимаем ОК.

Обратите внимание! После изменения структуры таблицы она (таблица) исчезает из всех представлений (окна карты, списка). Для восстановления визуализации данных либо добавьте таблицу в существующее окно карты через Менеджер Слоев (CTRL+L, кнопка «Добавить»), либо создайте новое окно карты или списка (меню «Окно» → «Новое …»).

После того, как таблица подготовлена, можно заполнять ее данными. Данные можно ввести в ячейки как в окне списка, так и в окне карты, при помощи инструмента «Информация»
.

Например, так:

После того, как все необходимые данные внесены, можно включить режим геолинка. Открываем окно «Управление слоями», выделяем необходимую таблицу в списке таблиц и нажимаем кнопку «Геолинк».

В окне настроек Геолинка указываем поле, содержащие ссылки и то, где геолинк будет активирован – либо на самих объектах, либо на их подписях, либо и там и там. Выбор чека «Размещение файла относительно таблицы» позволяет использовать относительные пути файлов (т.е. не D:aaabbbsample.bmp, а просто sample.bmp, при условии, что сама таблица также находится в том же каталоге, что и линкуемые данные).

Чтобы при каждом открытии таблицы не настраивать Геолинк заново, выберите чек «Сохранять настройки в разделе метаданных таблицы».

Настроив Геолинк, можно приступать к испытаниям. На Панели инструментов выбираем
,
щелкаем им по объекту и в новом окне откроется требуемое изображение.

Собственно, каким же образом можно линковать не только фотографии, но и любые другие данные: документы, таблицы, запросы и т.д. – все, что пожелаете.

Что лучше – надпись или подпись?

Разница между надписью и подписью, если кратко, заключается в том, что надпись – это объект, а подпись – это визуализация одной из характеристик объекта.

Чуть более развернуто.

Надпись, та что создается инструментом «Текст»

– точно такой же объект, как и символ, линия или регион. При добавлении надписи на слой карты в таблице (окно «Список») появляется новая запись, при удалении надписи информация теряется безвозвратно (команду «Отменить» здесь не рассматриваем).

Подпись же – это текстовое представление той или иной информации об объекте: данные по одной или нескольким колонкам семантики объекта, его характеристика (длина, площадь, цвет) и пр. При удалении подписи из представления (окно «Карта») информация не пропадаем и ее всегда можно восстановить, перезагрузив таблицу или воспользовавшись инструментом «Подпись»

Одним из немаловажных моментов практического применения является то, что надпись при масштабировании окна карты не меняет своих размеров, а подпись не меняет размеров шрифта. Т.е. если мы вдвое уменьшим масштаб карты (1:1000 → 1:2000), то надпись также уменьшится 2 раза, а подпись останется неизменной.

Кроме того, большое количество объектов (надпись – объект!) существенно «затормаживает» прорисовку карты. Подписи же практически не влияют на скорость. При больших объемах данных это может оказаться очень существенно.

Основным же доводом «за» более широкое использование подписей является то, что подпись более технологична. При нанесении 1 надписи и 1 подписи время, затраченное на формирование подписи, будет, пожалуй, существенно большим (подготовить структуру таблицы, перезагрузить ее, внести данные и оформить визуализацию). Однако, при возрастании объемов, время, затраченное на нанесение надписей, увеличивается линейно: (время затраченное на нанесение 1 надписи) * (количество надписей). Для подписей же ситуация меняется незначительно: (время на подготовку таблицы) + (время на визуализацию подписей) + (время на формирование данных). К тому же, при формировании подписей можно применять выражения и запросы, что, при подготовленной таблице, сводит процесс подписывания всего слоя к минимуму.

Оба метода подписывания (или надписывания) объектов применяются, однако надо всегда четко представлять, какой из них в данной ситуации будет эффективнее.

Какие файлы надо копировать, чтобы передать заказчику?

В общем случае эти файлы можно разбить на 3 категории:

  1. файлы данных
  2. файлы рабочих наборов (файлы настроек отображения информации)
  3. файлы поддержки

Файлы данных – это, собственно, и есть сами файлы с графической и семантической информацией. Попробуем кратко описать основные форматы файлов данных и их комбинации.

  • *.TAB – обязательный файл MapInfo. Текстовый файл, ASCII формат, содержит описание таблицы данных.
  • *.DAT – бинарный файл, содержит семантическую информацию.
  • *.MAP – бинарный файл, содержит графическую (векторную) информацию.
  • *.ID – файл ссылок, связка между семантикой и графикой.
  • *.IDX – файл индексов, необязательный.

Таким образом, стандартный набор файлов некой таблицы MapInfo содержит 4 или 5 файлов. Однако, если в таблице отсутствует графическая информация, файлы с расширениями *.MAP и *.ID не создаются.

Также возможны варианты с файлом *.DAT. Если данные загружались в MapInfo из внешнего файла(текстовый файл, файл Excel, растровое изображение или поверхность и т.д.), вместо файла с расширением *.DAT будет исходный внешний файл (*.txt, *.xls, *. *.tif, *.jpg, *.grd и т.д.).

В случае присоединения Базы Данных Access к набору еще добавится файл *.AID.

Файлы рабочих наборов (файлы настроек отображения информации). Здесь все просто– это файлы с расширением *.WOR. Единственно, что проверьте перед передачей рабочих наборов – все ли пути в файле прописаны как относительные?

Файлы поддержки – это файлы, которые использует программа (MapInfo) для корректного отображения информации и которых может не быть на стороннем компьютере. Их также вида: файлы стилей линий, файлы стилей заливки и шрифты.

Если вы используете модифицированные стили линий или заливок(стандартные довольно убоги и часто дорабатываются при помощи соответствующих программ), обязательно приложите и их:

  • {Program Files}MapInfoProfessionalXXXMSRES{..}.DLL – заливка
  • Documents and Settings{User}Application DataMapInfoMapInfoProfessionalXXXMAPINFOW.PEN – линии

Если используются нестандартные шрифты, не входящие в поставку Windows, стоит приложить и их, а также этот файл:

  • Documents and Settings{User}Application DataMapInfoMapInfoProfessionalXXXMAPINFOW.FNT – символы

Как узнать координаты вершин полигона?

Никак. Встроенного инструмента для этого в MapInfo не существует.

Можно воспользоваться одной из многочисленных утилит от сторонних разработчиков, например, из пакета RUSUTIL от компанией «ЭСТИ МАП», что поставляется вместе в дистрибьютивом русской версии MapInfo. Или более развитый инструментарий – «Инструментарий для MapInfo» от команды GT4MI. Но он платный.

Также можно использовать экспорт в обменный формат mid/mif. Файл с расширением mid содержит семантическую информацию, а с расширением mif – графическую. Выделите объект, координаты узлов которого требуется узнать, и экспортируйте (меню «Таблица» -→ »«Экспорт») таблицу Selection в «Формат обмена MapInfo (*.mif)».

Откройте файл с расширением mif в любом текстовом редакторе («Блокнот») и получите форматированный список координат узлов объекта.

Как отсортировать записи в таблице?

Впрямую отсортировать записи в таблице нельзя. Можно лишь отсортировать записи выборки.

Вызвав окно «Выбрать» из меню «Запрос» → «Выбрать», укажите таблицу, записи которой требуется отсортировать. Поле «Условие», если нет каких-либо особых показаний, можно оставлять пустым. В поле «Упорядочить по колонке» укажите колонку, по которой будет происходить сортировка (только в порядке возрастания, к сожалению). В зависимости от того, какое представление результатов выборки желаете получить (табличное или графическое), проставьте опции «Результат в список» и «Результат в карту». Еще можно изменить стандартное имя результирующей таблицы – по умолчанию Selection.

После того, как выборка сформируется, ее можно сохранить: меню «Файл» →«Сохранить копию». В диалоговом окне выбора таблицы для сохранения укажите Selection (если выделение еще не снято), либо Query с последним номером.

Если требуется отсортировать с неким сложным условием, допустим, по 2 колонкам, либо в обратном порядке, придется воспользоваться SQL-запросом из меню «Выбрать». Так, нижеприведенный пример сортирует данные из таблицы sample по колонке ID в обратном порядке:

Надо заметить, что использование языка запросов SQL существенно усиливает функционал MapInfo.

Кроме того, не следует пренебрегать и возможностью сохранять и загружать запросы – создав самостоятельно или с чьей-то помощью SQL-запрос, не обязательно его запоминать. Можно просто загрузить и использовать.

Почему программа пишет, что таблица уже открыта?

Очевидно, потому что она (таблица) открыта.

Для того, чтобы действительно ЗАКРЫТЬ таблицу, недостаточно просто щелкнуть крестик в правом верхнем углу. Так Вы закрываете только окно визуализации таблицы (нескольких таблиц). Т.е. таблица (карта или список) перестают быть видимой, но, тем не менее, остается загруженной.

Закрывает же таблицу команда «Закрыть таблицу» или «Закрыть все» (меню «Файл»). При выборе команды «Закрыть таблицу», в случае, если открытых таблиц больше одной, программа предложит выбрать – какую таблицу закрыть. Команда «Закрыть все» закрывает все открытые таблицы, видимые и невидимые, во всех открытых окнах.

Как сделать подпись в несколько строк?

При формировании выражения подписывания используйте для разделения данных по строкам функцию Chr$(n), где n – целое число.

Функция Chr (charcode) возвращает символ, соответствующий определённому коду. Код переноса строки – 10 (возврат каретки) или 13 (новая строка). Код пробела – 32. Код длинного тире – 151. И т.д.

Вот пример выражения:

«Участок «+Str$(ID)+Chr$(10)+String$(5, Chr$(151))+Chr$(10)+Area+» га»

А вот его результат:

Я пытаюсь перенести объект, а он увеличивается!

«Графиня, Вы не за то схватились!» – вскричал граф.

Скорее всего, Вы ухватили мышкой не сам объект, а один из черных квадратов, что его окружают при выделении. Именно они и отвечают за изменение размеров объекта.

В общем же случае – изменение геометрии объекта при перемещении может быть связано либо с сферической системой координат, либо с превышением границ рабочей области.

Как узнать координаты курсора?

В левом нижнем углу окна карты MapInfo, в первой панели на строке состояния по умолчанию отображается масштаб представления карты. Если щелкнуть по нему мышкой, откроется список, в котором есть опция «Положение курсора»:

Выберите ее и в этой панели будут отображается координаты перемещения курсора.

Как выбрать все точки внутри полигона?

Используйте инструмент «Выбор-в-области»

на Панели Инструментов.

Щелкните по полигону этим инструментом по окаймляющему полигону и все точки, что находятся внутри него, будут выбраны. Для добавления/удаления объектов к/из выборки используйте любой инструмент выбора при нажатой клавише SHIFT.

Не удаляется полигон!

Да, такое случается. Объект (необязательно полигон, просто чаще всего подобная неприятность происходит именно с этим элементом) виден на карте, иногда его можно выделить, иногда нет и – что самое неприятное – никак нельзя удалить.

Что это? По всей видимости, это – ошибочный объект. Объект, содержащий такие ошибки топологии, что программа отказывается с ним работать. Не будем вдаваться в подробности, почему так происходит, нам надо просто его удалить.

Если этот объект выделяется – хорошо, выделим его. Если нет – хуже, но тоже не смертельно. Берем инструмент «Выбор-в-рамке» (к примеру, можно любой другой площадной инструмент выделения) и выделяем все объекты вокруг нашего, включая и его самого. Затем, удерживая нажатой клавишу SHIFT, инструментом «Выбор» (одиночный выбор) аккуратно снимаем выделение со всех объектов, кроме ошибочного.

Когда в выборке останется только один ошибочный объект, переходим в окно Списка (меню «Окно» → «Новый список» → имя таблицы с данными). Находим выделенную строку (помечена черным квадратом в начале) и жмем Delete (или «Удалить» в меню «Правка»). Выделенная строка удалится (станет серой), а с ней уйдет и неправильный объект.

Как подписать объект из нескольких колонок?

Для того, чтобы сформировать подпись объекта не из одной колонки, а из нескольких, необходимо воспользоваться опцией «Выражение» из списка «Из колонки» диалогового окна «Подписывание».

Открываем менеджер окон (CRTL+L), выделяем слой, по которому мы хотим добавить подписи, проставляем чек в «Подписывание» (изображение желтого ярлыка) и нажимаем кнопку «Подписи». При нажатии на поле с подписью «Из колонки» выпадает список доступных в данном слое колонок. Самой нижней записью будет дополнительная опция «Выражение». При выборе этой опции откроется стандартный конструктор запросов.

Пользуясь записями из списков в правой части конструктора, можно формировать выражения для подписывания объектов. Так, если надо подписать объект данными из колонки ID и Char, выражение будет следующим:

ID+Char

Однако, тут есть определенные нюансы. При формировании выражений необходимо учитывать согласованное преобразование типов данных. Так, если и колонки ID и Char имеют числовой тип данных (Integer, Float и т.д.), то результатом выше приведенной формулы будет сумма данных соответствующих ячеек: 1+2=3. Если колонки имеют символьный тип (Char), то результатом выражения уже будет слияние: «1»+»2″=»12″.

Если же колонки имеют разный тип данных (в примере ID – целое, Char – символьное), то при нажатии кнопки ОК программа может выдать сообщение об ошибке: «Несовпадение типов данных в выражении». Чтобы избежать этого, всегда используйте явное преобразование типов, используя функции:

Str$() – преобразовывает исходные данные к символьному виду;
Val() – преобразовывает исходные данные к числовому виду.

Т.е., в нашем случае, где ID – целое, Char – символьное правильно сформированным выражение будет:

Str$(ID)+Char

Если вы не уверены в правильности построения выражения, можно нажать кнопку «Проверить». Программа проверит выражение на ошибки и сообщит результат проверки.

При обновлении колонки пишет в ячейки «FF»

Несовпадение типов данных.

Вы пытаетесь обновить колонку, имеющую численный тип (целочисленный – Int, вещественное – Float, десятичный – Decimal), присваивая ячейкам значения символьного типа (текст).В ряде случаев это может пройти успешно – если текст представляет собой цифры (0,1,2, …, 9). Но, если записываемое значение содержит символы, не относящиеся к этому ряду (в том числе и запятую, т.к. разделителем целой и дробной части может выступать только точка), то программа запишет в значение ячейки FF (255, или «Истина» в HEX формате) для значений и 0 («Ложь» – для пустых, с нулевой длинной, строк).

Как проверить карту на ошибки?

Предлагаемый здесь способ комплексной проверки созданной карты на наличие ошибок – не более чем пример для частного случая. Использовать следует общую схему, а не конкретные действия.

Итак, у нас есть только что созданный слой. Предположим, что на этом слое расположены только полигоны. Полигоны выбраны как самый сложный объект – у текста и символа ошибок топологии не бывает, у полилиний ошибки хотя и есть, но там задача несравненно проще и также укладывается в приведенную схему.

Еще раз обращаю Ваше внимание: на слое (в выборке) – ТОЛЬКО полигоны. Обрабатывать совместно элементы различных типов MapInfo не умеет. Да это и не самый правильный подход. В большом количестве ГИС точечные, линейные и площадные объекты не могут быть совмещены на одном слое. MapInfo предоставляет такую возможность, однако злоупотреблять этим не стоит. Итак, каждому типу элементов – свой слой.

Какие ошибки топологии мы можем предположить?

1. Недоввод. При малом масштабе кажется, что все нормально, на самом же деле узлы различных объектов на совпадают. В результате между полигонами образуется пустота. Суммарная площадь всех регионов выборки будет меньше заявленной.

2. Перехлест. Обратная предыдущей ситуация, узлы смежных объектов не совпадают, заходя за границы смежного объекта. Суммарная площадь всех регионов выборки будет больше заявленной.

3. Самопересечение. В результате ошибок при создании объектов, в их геометрии наблюдаются искажения: двойные узлы, «восьмерки», самоповторы. Площадь по таким регионам может либо считаться неверно, либо вообще не посчитается.

Предлагаемая методология проверки слоя на ошибки такова:

  • проверяем выборку на наличие ошибок;
  • исправляем вручную грубые ошибки;
  • корректируем топологию автоматически;
  • повторяем все действия заново до тех пор, пока проверка показывает наличие ошибок.

Теперь по этим пунктам чуть подробнее.

Важно! Перед началом работы рекомендую сохранить копию таблицы. Так как мы вмешиваемся, зачастую, довольно грубо, в структуру данных, таблица может быть не исправлена, а испорчена.

Итак, проверяем выборку на наличие ошибок.

Прежде всего делаем изменяемым косметический слой. Если изменяемым будет слой с данными, автоматическая проверка внесет в него исправления сразу, что нежелательно. После выбираем все объекты на слое (к примеру, инструментом «Выбор-в-рамке» или запросом). Далее идем в меню «Объект» и выбираем «Проверка топологии». В окне проверки выбираем все опции. В поле «Максимальная площадь» раздела «Обнаружение пустот» прописываем число или заведомо большее суммарной площади всех регионов, или, если в слое должны присутствовать пустоты – площадь, сопоставимую с минимальной площадью Ваших пустот:

Нажимаем ОК.

В результате на косметический слой будут нанесены объекты, указывающие на местоположение и тип ошибок. Анализируем ошибки, с чем-то соглашаемся, с чем-то – нет. Грубые ошибки (ошибки оператора), исправляем руками, после чего очищаем косметический слой.

На этом этапе основная задача – выявить наличие ошибок как таковых и выявить наличие недовводов, пустот, а также определить минимальную/максимальную площадь пустот.

На следующем этапе корректируем топологию автоматически. Это происходит в 2 приема: при помощи инструмента «Коррекция топологии» и инструмента «Совмещение и генерализация» (меню «Объект»).

Сначала используем «Совмещение». Делаем слой с объектами редактируемым, выбираем все (или только нужные) объекты, и Вызываем диалоговое окно «Совмещение и генерализация». Проставляем все опции и заполняем поля параметров, исходя из:

  • Совмещение узлов разных объектов – речь идет о случаях перехлеста и недоввода, описанных выше. Примерно прикидываем, сколько у нас может быть расстояние минимальное расстояние между «правильными» (находящимися на своем штатном месте) узлами и в поле «Расстояние до промежуточных узлов» ставим значение меньше расчетного.
  • Аналогичным образом убираем последствия «дрожания рук»: сдвоенные узлы, «петли» и перехлесты – раздел «Разреживание узлов/генерализация». В поле «Максимальное расстояние» проставляем число, аналогичное предыдущему (раздел «Совмещение узлов»).
  • В раздел «Удаление избыточных полигонов», в поле «Максимальная площадь» проставляем значение, меньшее, чем минимальная площадь ваших регионов.

Жмем ОК и после обработки карты переходим к «Коррекции топологии»:

Также выбираем все опции, площадь удаляемых полигонов проставляем как половинную (или меньшую)от указанной в прошлом шаге, жмем ОК и ждем результатов обработки.

В принципе, эти 2 инструмента в чем-то дублируют друг друга и дают схожие результаты. Показания к выбору одного или другого инструмента или их комбинации весьма расплывчаты и базируются на субъективной оценке ситуации (опыте).

Теперь, когда все проверки и корректура пройдены, мы сталкиваемся с довольно забавным, но весьма неприятным фактом. Внося исправления в топологию в автоматическом режиме мы, увы, порождаем новые ошибки. Тех же самых видов, что уже описывались, однако в гораздо меньшем количестве. Поэтому – делаем редактируемым косметический слой, выбираем объекты, идем в меню «Объект»→ «Проверка топологии», т.е. повторяем все действия заново.

И так повторяется до тех пор, пока при очередной проверке программа не выдаст сообщение:

Важно! Еще раз прошу учесть, что предлагаемый здесь метод проверки – не догма и не панацея. Это лишь пример того, как можно действовать, чтобы достичь нужных ВАМ результатов.

Я открываю, а на карте ничего нет. Как это?

Ну, прежде всего, возможно, там действительно ничего нет!

Чтобы проверить наличие объектов в таблице, откройте, к примеру, окно Списка (меню «Окно» → «Новый список» – Имя таблицы). Если в открывшемся списке нет ни одной записи (серые не в счет), значит ответ найдет. Если же данные очевидно присутствуют, переходим к следующему предположению.

Если объекты созданы с атрибутом «невидимый», то их и не увидишь. Для того, чтобы исключить такую возможность, возвращаемся в окно Карты и через «Управление слоями» (CTRL+L или правый клик по полю карты → «Управление слоями», выбираем в списке нужную таблицу, жмем кнопку «Оформление») выбираем опцию «Единообразное оформление». Собственно, в поле отображения атрибутов сразу можно глянуть – какие графические элементы (символы, линии, полигоны) присутствуют в таблице. Присваиваем каждому элементу какой-нибудь стиль и цвет, желательно поярче. Жмем ОК.

Ничего не появилось? Переходим к следующему шагу.

Если граничные координаты рабочей области таблицы велики по сравнению с размерами объекта, возможно, мы просто не туда смотрим. Чтобы поправить эту ситуацию, берем инструмент «Показать по другому» (лупа с вопросительным знаком на панели инструментов) и выставляем некий масштаб, подходящий под наши объекты. Выделяем все (меню «Запрос»→ «Выбрать» → указываем таблицу и не надо список → ОК). Далее – меню «Запрос» → «Найти выборку» → «В текущем окне карты»(или CTRL+G). Центр окна карты должен переместиться на нашу выборку.

Ничего нет? Попробуйте поиграть с масштабом. Увеличить → выбрать → найти выборку. Уменьшить → выбрать → найти выборку.

Если и после этого ничего не видно, значит, таблица повреждена и для работы не пригодна.

В отчете слишком много листов. Можно установить их количество?

Да, конечно.

Для того, чтобы изменить количество отображаемых листов в окне отчета, вызовите диалоговое окно «Режимы показа Отчета» (меню «Отчет» →«Режимы показа»):

В полях «Ширина» и «Высота» отдела «Размер Отчета» установите требуемое количество страниц.

Если же Вам надо напечатать не все страницы отчета, а лишь несколько из них, то при вызове диалога печати в разделе «Печатать» укажите диапазон страниц, например:1-1 или 2-5 и т.д. Нумерация страниц в Отчете ведется слева-направо, сверху-вниз.

Где можно почитать о MapInfo?

Не так уж и много мест, где это можно сделать.

  • Электронный учебник по MapInfo UPD: сохраненная копия
  • FAQ по MapInfo от «ЭСТИ МАП» UPD: сохраненная копия
  • Коллекция ссылок на документацию по MapInfo
  • Украинская группа пользователей MapInfo UPD: ресурс недоступен
  • MapInfo на Narode
  • FAQ по геоинформационным системам
  • Краткий учебный курс по ГИС UPD: ресурс недоступен

Также можно поискать ответ на свой вопрос по форумам:

  • Форум команды GT4MI
  • Форум Geomatik’и UPD: сохраненная копия
  • Форум на Narod’e
  • Форум на Ru-Board’e

Где скачать программы для MapInfo?

К сожалению, большая часть утилит для MapInfo, что представлена в Internet, «размазана» тонким слоем по разным сайтам. Было несколько замечательных порталов, но, по неведомым мне причинам, сгинули в никуда. Единственное, что могу предложить, это старые, добрые:

  • Сайт «ЭСТИ МАП», официального представителя MapInfo в России
  • Неофициальный сайт пользователей MapInfo в Украине
  • Сайт Александра Ульянова
  • Инструментарий для MapInfo

Также, надеюсь, через некоторое время получится сформировать в некий единый архив ту коллекцию утилит, что собралась у меня.

Внимание!
На сайте выложена коллекция утилит для MapInfo. Посмотреть и скачать утилиты можно по адресу:

http://www.glab2007.narod.ru/d/mu.html

Впрочем, не стоит забывать и набор утилит из диска официальной поставки MapInfo — каталог RUSUTIL.

Slinger писал(а):Борис, спасибо за утилиту. Сейчас более менее внятно потестил:

1) Взял исходник, решил, что в id 441 объект. Пробил это в .dat, получил рабочую таблицу, после чего упаковал, исключив все ошибки.

2) Взял исходник, прогнал через recovery, получил 492 объекта. Упаковал таблицу, дабы не морочаться со стилями, которые и так были, но не отображались, потому что опять-таки соответствующие байты были побиты.

3) Обнаружил, что в восстановленной recovery таблице есть дубликаты объекты. Вычистил их, и объектов стало 472. Так же удалил дублирующий объект из моей таблицы. Соответственно объектов стало 440.

Итого — на 32 реально «работающих» объектов больше. Примечательно, что все они в колонке rec_status имеют префикс D. Что это кстати значит, Борис ?

И как программа переопределяет заново файл .id ? С помощью библиотеки Mitab ?

Я точно это не описал в README.TXT ? Если нет, то я поправлю как доберусь до программы, хотелось по быстрее выложить. :wink:
Буква D — означает, что запись была отмечена как удаленная. В DAT (DBF — атрибутика) — это единственное знание, кроме RowID. Для MAP есть следующие значения в 4-х символьном поле:
1-ы символ:
» » — запись не была отмечена удаленной; D — запись была отмечена удаленной.
2-ой — E — запись прочиталась с ошибкой (результат не предсказуем); U — неизвестный тип, запись прочитана нормально, но т.к. не известен размер заголовка этого типа, все записи до конца блока пропущены и не восстановлены.
3-й и 4-й — это внутренний номер типа геоданных. 2-х байтовое целое. Отличается от номера, который возвращает ObjectInfo()/

Нет я не использую никакой библиотеки, т.к. я не понял, что она делает. Я в свое время пытался в ней разобраться, но там очень путанные ссылки на абстрактные объекты и т.д. Поэтому я просто взял двоичные описания форматов, какие нашел в сети и воссоздал файлы по ним.
DAT = DBF III — только все данные хранятся в полях строк (ХЗ знаю почему). Но какие бы данные не были записаны в поле, оно помечено в DBF Как символьное. Тут проблем нет — формат много кратно описан, добавить в него строки или поля не представляет труда, равно как и исправить значения. В таблице, с которой начался разбор, файл DAT — битый, по какой то причине он укорочен в 49 или 56 (я уже не помню) записей. Из-за этого все, что далее не распознается MI, как объекты, хотя графическая часть MI — их отображает на экране.

MAP — описан скудно, но основные принципы и структуру, описали к 2007 году, правда в описании не оказалось типа 26, который и давал ошибку в программе версии 2011 года. Формат логичный, но многодельный, в нем даже есть внутренний индекс, который призван ускорить выборку, но этот раздел никто не описал. Хотя видимо он не является проблемой, т.к. FME Universal Translator (или его мини версия UT из утилит Mapinfo) прекрасно умеют создавать такой индекс. Кстати часть знаний была почерпнута из каких-то разделов документации по FME, вернее намеков в ней. Файл блочной структуры. Каждый блок имеет размер &H200 — волшебное число, блоки имеют несколько видов. Для программы главный — блок описания гео-объектов. В нем хранится номер RowID и ссылка на блок с геометрией объекта. Поле RowID — это просто порядковый номер записи в файле DAT, если он больше 0, если меньше — это то же RowID, но умноженный на -1. Исправив это номер получаем восстановленную запись с геометрией. Синхронно надо изменить запись в DAT, где удаление кодируется знаком «*» с начале записи. Так MAP ссылается на DAT — при каждом гео-объекте есть прямая ссылка на строчку с атрибутикой. Обратное неверно, т.к. был использован чужой формат DBF (спасибо, т.к. он описан на 200%), но в DBF не было предусмотрено место для ссылок, т.е. тип такой отсутствовал. Хотя это странно, т.к. по факту везде для ссылок использовано смещение записи от начала файла в виде длинного целого о 4-х байтах, можно было с тем же успехом внести ссылку в поля DBF. Но сделали по другому, видимо для скорости:
Создали файл ID он компактный, и видимо в эпоху ограниченной оперативной памяти, это было критично. Файл ID — это простой список ссылок на описание гео-объекта в файле MAP. 4-байта = смещение описания от начала файла MAP.
Все… Ничего больше. Просто последовательный список ссылок. 4 байта на число без разделителей. Как идут записи в DAT файле, ровно в таком порядке идут и ссылки. Это и позволило вам восстановить файл, просто добавив отсутствующие строки в файл DAT. Видимо, ID содержит ссылки только на неудаленные записи, иначе простое добавление в DAT не дало бы эффекта.
Спасибо создателям формата! Без смеха. Они заложили такую избыточность, что она позволяет воссоздать данные, просто перебирая их в двоичном виде.
Работа программы проста: она читает файл MAP и вычленяет из него блоки описания гео-объектов. Потом перебирает заголовки гео-объектов в этом блоке. Для каждого заголовка обязательно хранится тип и RowId. Дальше идут нюансы конкретного типа гео-объекта. Например, для точки вся информация хранится в заголовке, а для полилинии хранится ссылка на блок описания координат и количество точек в полилинии, если в ней 1 сегмент. За полилинии из 2 и более сегментов отвечает другой тип гео-объектов. Неизвестный тип = неизвестный размер записи, неизвестно где начинается описание СЛЕДУЮЩЕГО объекта, до конца блока вся информация не может быть прочитана. НО этот объект — прочитан и восстановлен! Вернемся к работе: сканируем информацию о гео-объектах. При каждом из них известный RowId (или номер записи, включая отмеченные как удаленные, от начала файла DAT) — вот по этому RowId и создаем запись в новый DAT, со служебной информацией — новый порядковый номер (RowID_new), старый RowId — Который был записан в MAP, его при обработке мы меняем на новый RowID (опять же просто номер по порядку, но уже в переборе MAP), смещение, и статус в исходном файле — удаленный да/нет и т.п. (см. выше).
Параллельно пишем к создаваемому DAT новый ID — адреса геообъектов. Поскольку геообъектов с удаленными может быть больше, чем в исходном файле, ID обычно больше исходного, но в случае когда пришлось пропустить объекты после неизвестного типа, их может быть и меньше. В этом случае спасти битые гео-объекты объекты можно именно так как удалось «руками» — надо добавить к DAT файлу недостающее количество записей и взять старый ID. Естественно, если и он не испорчен.
Восстановить случайно удаленные объекты, а это и было изначальной целью программы Recovery, таким образом не удасться. В случае Recovery — спасение геометрии — это просто бонус, происходящий из структуры файлов. :mrgreen:

Содержание

  1. Форумы GIS-Lab.info
  2. Проблема с установкой Mapinfo
  3. Проблема с установкой Mapinfo
  4. Re: Проблема с установкой Mapinfo
  5. Re: Проблема с установкой Mapinfo
  6. Re: Проблема с установкой Mapinfo
  7. Re: Проблема с установкой Mapinfo
  8. Re: Проблема с установкой Mapinfo
  9. Re: Проблема с установкой Mapinfo
  10. Re: Проблема с установкой Mapinfo
  11. Форумы GIS-Lab.info
  12. MapInfo 9.5.1 проблема и индексами
  13. MapInfo 9.5.1 проблема и индексами
  14. Re: MapInfo 9.5.1 проблема и индексами
  15. Re: MapInfo 9.5.1 проблема и индексами
  16. Форумы GIS-Lab.info
  17. Не запускается Мапинфо 🙁
  18. Не запускается Мапинфо 🙁
  19. Re: Не запускается Мапинфо 🙁
  20. Re: Не запускается Мапинфо 🙁
  21. Re: Не запускается Мапинфо 🙁
  22. Re: Не запускается Мапинфо 🙁
  23. Re: Не запускается Мапинфо 🙁
  24. Re: Не запускается Мапинфо 🙁
  25. Re: Не запускается Мапинфо 🙁
  26. Re: Не запускается Мапинфо 🙁
  27. Re: Не запускается Мапинфо 🙁
  28. Re: Не запускается Мапинфо 🙁
  29. Кто сейчас на конференции
  30. Перед установкой MapInfo Professional
  31. Работа с Просмотрщиком MapInfo 7.5 CD
  32. Установка MapInfo Professional 7.5
  33. Полная установка
  34. Как исправить не ошибки «Не найден Interop.mapinfo.dll»?
  35. Interop.mapinfo.dll

Форумы GIS-Lab.info

Геоинформационные системы (ГИС) и Дистанционное зондирование Земли

Проблема с установкой Mapinfo

Проблема с установкой Mapinfo

Сообщение Olga-Olga » 17 апр 2014, 15:46

Re: Проблема с установкой Mapinfo

Сообщение nadiopt » 17 апр 2014, 16:18

Re: Проблема с установкой Mapinfo

Сообщение Olga-Olga » 17 апр 2014, 16:31

Re: Проблема с установкой Mapinfo

Сообщение nadiopt » 17 апр 2014, 20:16

Re: Проблема с установкой Mapinfo

Сообщение Slinger » 17 апр 2014, 20:54

Забавный баг InstallShield’a. Возникает тогда, когда системе недостаточно прав для осуществления действия. Из решение я могу посоветовать следующее.

1) Запустить от имени администратора САМ инсталлятор. По идее он будет находится в «папка с mapinfo/install/MI_PRO». На инсталлере правой кнопкой — запустить от имени администратора. Если повезёт — всё сработает.

2) Не сработало. Тогда попробуем принудительно сказать инсталшилду, что устанавливать софт может любой. Для этого:

2.1. В Пуск-Выполнить набрать «dcomcnfg.exe» (без кавычек)
2.2. Службы компонентов — Компьютеры — Мой компьютер — Настройка DCOM.
2.3 Находите драйверы (или драйверы!) инсталшилда. Они должны называться InstallShield InstallDriver
2.4. Правой кнопкой — Свойства. Выбрать вкладку безопасность.
2.5 У всех трёх настроек (запуск, доступ и возможность менять настройки) нужно нажать кнопку Изменить, далее Настроить, затем добавить (если его нет в списке) пользователя с именем «Все» (без кавычек). После чего нажать ок.
2.6. Проделать это для всех настроек всех драйверов. Таким образом мы принудительно «всем» юзерам раздали полный доступ.

По идее второй способ должен прокатить. Наверное ))

з.ы. У меня стоят 7.5 и 8.5 и прекрасно уживаются. Win7 x64.

Re: Проблема с установкой Mapinfo

Сообщение nadiopt » 17 апр 2014, 21:26

Re: Проблема с установкой Mapinfo

Сообщение Olga-Olga » 18 апр 2014, 11:03

Re: Проблема с установкой Mapinfo

Сообщение Olga-Olga » 18 апр 2014, 11:07

Slinger писал(а): Забавный баг InstallShield’a. Возникает тогда, когда системе недостаточно прав для осуществления действия. Из решение я могу посоветовать следующее.

1) Запустить от имени администратора САМ инсталлятор. По идее он будет находится в «папка с mapinfo/install/MI_PRO». На инсталлере правой кнопкой — запустить от имени администратора. Если повезёт — всё сработает.

2) Не сработало. Тогда попробуем принудительно сказать инсталшилду, что устанавливать софт может любой. Для этого:

2.1. В Пуск-Выполнить набрать «dcomcnfg.exe» (без кавычек)
2.2. Службы компонентов — Компьютеры — Мой компьютер — Настройка DCOM.
2.3 Находите драйверы (или драйверы!) инсталшилда. Они должны называться InstallShield InstallDriver
2.4. Правой кнопкой — Свойства. Выбрать вкладку безопасность.
2.5 У всех трёх настроек (запуск, доступ и возможность менять настройки) нужно нажать кнопку Изменить, далее Настроить, затем добавить (если его нет в списке) пользователя с именем «Все» (без кавычек). После чего нажать ок.
2.6. Проделать это для всех настроек всех драйверов. Таким образом мы принудительно «всем» юзерам раздали полный доступ.

По идее второй способ должен прокатить. Наверное ))

з.ы. У меня стоят 7.5 и 8.5 и прекрасно уживаются. Win7 x64.

Источник

Форумы GIS-Lab.info

Геоинформационные системы (ГИС) и Дистанционное зондирование Земли

MapInfo 9.5.1 проблема и индексами

MapInfo 9.5.1 проблема и индексами

Сообщение Andry » 10 янв 2014, 06:59

Re: MapInfo 9.5.1 проблема и индексами

Сообщение Старый Йети » 10 янв 2014, 08:06

Добрый день.
попробую быть первым.

Итак, всё по-порядку.
Каков вопрос — таков ответ.
Что за операционная система?
Какая версия MapInfo стояла до этого?
Непонятно, что за набор «ugur.wor» — его состав, структура, местоположение.
Если у вас Windows XP.
1. Программка «проверка рабочих наборов» (WorkspaceResolver.MBX) должна находиться C:Program FilesMapInfoProfessionalTools
2. Программка «шаблоны отчетов» (LayoutTmplt.MBX) — там же.
3. Непонятно, что за ugur.wor — это ваш старый набор? Где вы его сохраняли до этого? Если же действительно в C:Program FilesMI. — печально. Многие «системщики» не напрягают себя «философскими знаниями» о местоположении рабочих файлов пользователя. В случае переустанановки систему «с нуля» — с форматированием диска С — тогда вы его вряд ли уже найдете. Тем не менее, с помощью этих же «системщиков» можно попытаться его восстановить — Флаг в руки и им и вам!
4. см. п. 3
5. см. на п. 3-4 — и не откроется.
Что делать?
1. В настройках MI указать подключаемые программы (mbx)
Меню: Программы-> Каталог программ-> Добавить . И добавляйте, всё, что считаете нужным из папки (c:Program FilesMapInfoProfessionalTools). Это если, конечно, ваши системщики удосужились установить tools’ы с дистрибутива MI
2. Таблицы, созданные в предыдущих версиях MI, для работы в более поздних требуется переиндексировать. Достаточно их переупаковать (Открыть необходимую таблицу. Далее через меню: Таблицы->Изменить->Упаковать. Всё, таблица переиндексирована, можно работать без лишних вопросов.
3. Рабочие наборы MI — текстовые файлы, открывайте в любом notepad’е и анализируйте что-где.

P.S. Да, и почитайте Руководство пользователя MI, не помешает.

Re: MapInfo 9.5.1 проблема и индексами

Сообщение Boris » 27 янв 2014, 17:57

Источник

Форумы GIS-Lab.info

Геоинформационные системы (ГИС) и Дистанционное зондирование Земли

Не запускается Мапинфо 🙁

Не запускается Мапинфо 🙁

Сообщение Olga_@@@ » 04 окт 2011, 11:15

Re: Не запускается Мапинфо 🙁

Сообщение reasonat » 04 окт 2011, 11:20

Re: Не запускается Мапинфо 🙁

Сообщение Olga_@@@ » 04 окт 2011, 11:33

Re: Не запускается Мапинфо 🙁

Сообщение reasonat » 04 окт 2011, 11:56

Re: Не запускается Мапинфо 🙁

Сообщение Olga_@@@ » 04 окт 2011, 12:00

Re: Не запускается Мапинфо 🙁

Сообщение reasonat » 04 окт 2011, 12:11

Re: Не запускается Мапинфо 🙁

Сообщение Olga_@@@ » 04 окт 2011, 12:19

Re: Не запускается Мапинфо 🙁

Сообщение Institor » 05 окт 2011, 03:58

Re: Не запускается Мапинфо 🙁

Сообщение rosima1978 » 06 окт 2011, 11:09

Re: Не запускается Мапинфо 🙁

Сообщение soneg » 09 ноя 2011, 09:03

Re: Не запускается Мапинфо 🙁

Сообщение Boris » 09 ноя 2011, 14:16

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя

  • На главнуюСписок форумов
  • Часовой пояс: UTC+03:00
  • Удалить cookies конференции
  • Пользователи
  • Наша команда
  • Связаться с администрацией

© GIS-Lab и авторы, 2002-2017. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов — ответственность авторов (подробнее).

Источник

Перед установкой MapInfo Professional

Прежде чем устанавливать MapInfo, запишите на видном месте (например, на первой странице Руководства пользователя MapInfo) серийный номер приобретенного Вами пакета. Заполните регистрационную карточку и отправьте ее в MapInfo Corporation. Если у Вас есть доступ в Интернет, то воспользоваться возможностью заполнить электронную регистрационную карточку в конце программы установки.

Установщик MapInfo Professional 7.5 определяет существующую версию или то, что какаялибо версия была установлена ранее. После этого установщик MapInfo 7.5 скопирует файлы MAPINFOW.WOR, STARTUP.WOR и MAPINFOW.PRF из системной папки операционной системы в Application DataMapInfoMapInfo.

Вспомогательные файлы являются неисполняемыми файлами данных, которые MapInfo Professional использует во время сеанса работы.

Работа с Просмотрщиком MapInfo 7.5 CD

При запуске Просмотрщика MapInfo 7.5 CD появятся разделы:

• Установка Программ : Из этой настройки можно установить MapInfo Professional в

составе: Поддержка СУБД и трансляторы, данные, документаця, Установка утилит (ECW Compressor, GPS и Meta Data Browser ).

• Что нового : Представляет список новых возможностей программы.

• Справочники : MapInfo Professional 7.5 обеспечено следующими электронными спра-

вочными документами: Руководство пользователя MapInfo Professional ( Полное ),

Справочник MapBasic, Crystal Reports User Guide , Инструкция по печати MapInfo Professional и Установка Adobe Acrobat Reader.

• Учебника MapInfo: Нажмите кнопку, и откроется учебник MapInfo Professional 7.5 в формате HTML.

• Другие продукты: Откроется информация о MapBasic, MapInfo Discovery и MapInfo Pro для SQL Server.

Внимание: Для установки программ соединения с удаленными базами данных, изпользуйте настройку Выборочная .

Установка MapInfo Professional 7.5

Предупреждение: Перед началом процедуры установки настоятельно рекомендуется выйти из всех программ под Windows и удалить все предыдущие версии

MapInfo Professional на Вашем компьютере.

Для запуска Установщика в системах NT/2000 и Windows XP у Вас должны быть права Администратора .

MapInfo Professional 7.5

© May 2004 MapInfo Corporation. All rights reserved.

Руководство пользователя MapInfo Professional 7.5 (Полное)

Глава 2: Установка, конфигурирование и начало

Если в вашей конфигурации под Windows не содержится группы для MapInfo, то в процессе установки такая будет создана. Если ваша конфигурация под Windows уже содержит группу MapInfo, то при установке новая иконка (ярлычок) MapInfo будет добавлена в уже имеющуюся группу.

Теперь предоставляет MapInfo Professional возможность доступа к служебным файлам каждому пользователю. Так называемая Пользовательская установка запускается первый раз при запуске MapInfo Professional, и каждый раз будет перезапускаться Установщик MapInfo Professional . Служебные файлы данных включают, помимо прочего, файл стилей линий, файлы пользовательских символов, файлы поддержки графики и шаблоны тематических легенд. Эти файлы позволяют пользователям сохранять свои настройки.

Для того, чтобы установить MapInfo:

1. Нажмите M AP I NFO P ROFESSIONAL – появится диалог «Добро Пожаловать». Нажмите Д АЛЕЕ для продолжения процесса установки.

2. Появляется диалог «Лицензионное соглашение». Примите условия соглашения и продолжайте установку. Появляется диалог «Сведения о пользователе».

3. Введите свое имя, название компании и серийный номер. Информация требуется для всех трех полей. Выберите Д АЛЕЕ , чтобы продолжить процесс установки. Появляется диалог «Тип установки».

4. Определите необходимую конфигурацию Вашей рабочей станции. Выберите один из следующих вариантов и потом нажмите Д АЛЕЕ .

• О ТДЕЛЬНОЕ РАБОЧЕЕ МЕСТО . Установка MapInfo производится на компьютере для одного пользователя без доступа к удаленным базам. В разделе Полная установка на странице 25 там есть инструкции для продолжения установки.

• П ОЛЬЗОВАТЕЛЬСКАЯ УСТАНОВКА . Выберите этот вариант установки, если понадобится поддержка соединений ODBC или Oracle Spatial. См. в разделе

Выборочная установка на странице 25 , где приведена инструкции для продолжения установки.

• С ЕТЕВОЙ СЕРВЕР . Выберите эту настройку, чтобы установить MapInfo Professional в сети. В разделе Установка MapInfo в сети на странице 27 , где приведена инструкции для продолжения установки. Такая установка не изменяет конфигурации сервера специально под запуск MapInfo; конфигурация сервера сводится только к тому, чтобы он мог работать для нескольких рабочих станций. После установки MapInfo Professional в сети следуйте инструкциям установки в разделе Выделение пользователей на странице 28 .

Внимание: После установки появится запрос: «Проверить наличие обновлений продукта на сайте?». Если у Вас есть соединение с Интернетом, нажмите «Да», и Вы попадете на страницу сайта MapInfo Corporation с информацией об обновлении программ.

Полная установка

Устанавливаются программные файлы для MapInfo Professional, Справочная система, Утилиты, Универсальный транслятор и Crystal Reports. ArcLink по умолчанию не выбирается.

Предупреждение: Перед тем как начать этот вариант установки, внимательно изучите раздел Установка MapInfo Professional 7.5 на странице 24 .

Чтобы произвести полную установку:

MapInfo Professional 7.5

© May 2004 MapInfo Corporation. All rights reserved.

Источник

Как исправить не ошибки «Не найден Interop.mapinfo.dll»?

Как правило, подобные ошибки DLL, связанные с MapInfo’, возникают в результате повреждения или отсутствия файлов interop.mapinfo.dll. Как правило, самый лучший и простой способ устранения ошибок, связанных с файлами DLL, является замена файлов. Мы также рекомендуем выполнить сканирование реестра, чтобы очистить все недействительные ссылки на interop.mapinfo.dll, которые могут являться причиной ошибки.

Типы Системные файлы, которые используют DLL, также известны в качестве формата Dynamic Link Library. Если вам нужно заменить файл interop.mapinfo.dll, вы можете найти версию %%os%% в нашей базе данных, перечисленной в таблице ниже. В некоторых случаях в настоящее время в нашей базе могут отсутствовать некоторые версии interop.mapinfo.dll, но их можно запросить, нажав на кнопку Request (Запрос) ниже. Если ниже отсутствует необходимая вам версия, мы рекомендуем обратиться непосредственно к Windows Software Developer.

Настоятельно рекомендуется выполнить проверку и убедиться в том, что файл был размещён в правильном каталоге. Тщательно следуйте настоящим инструкциям, чтобы устранить возникающую ошибку, связанную с файлом interop.mapinfo.dll, однако мы рекомендуем выполнить быструю проверку. Проверьте результат замены файла, запустив MapInfo’ и проверив выводится ли возникающая ранее ошибка.

Interop.mapinfo.dll Описание файла
Расширение файла: DLL
Группа:
Program: MapInfo’
Вер: 1.0.0.0
Создано: Windows Software Developer
File: interop.mapinfo.dll Запрос
Размер: 19456
SHA-1: 945acc2645fd1a407d8461197ac62233b269c3da
MD5: e2d5f9f5fd2515f3cdd30197b9ac8645
CRC32:

Идентификатор статьи: 1060310

Interop.mapinfo.dll

Выберите программное обеспечение

Источник

MapInfo Professional 7.5 Руководство пользователя (Полное)

Глава 8: Выборки по запросам

Запрос это математический вопрос, который задается базе данных для получения определенной информации. В MapInfo Professional есть два инструмента составления запросов – ЗАПРОС и SQL-ЗАПРОС.

SQL-Запрос о больницах в городе

Команда ВЫБРАТЬ позволяет создать выборку (подмножество записей) на основании информации из какой-либо таблицы MapInfo, например:

Какие клиенты сделали покупки на 2000000 рублей и более?

Кто из клиентов живет в Раменском районе?

Команда SQL-ЗАПРОС позволяет решать следующие задачи в MapInfo:

создавать вычисляемые колонки – колонки, значения в которых вычисляются на основании значений в уже существующих колонках;

обобщать данные таким образом, чтобы вместо сумм просматривать суммарные данные по таблице;

объединять две или более таблицы в одну новую таблицу;

показывать только те колонки и строки, которые Вас интересуют.

MapInfo Professional 7.5

© May 2004 MapInfo Corporation. All rights reserved.

246

MI_UG.PDF

MapInfo Professional 7.5 Руководство пользователя (Полное)

Глава 8: Выборки по запросам

Команда Выбрать

Команда ВЫБРАТЬ позволяет формулировать запросы к таблице. С ее помощью можно выбирать записи и сопоставленные им графические объекты по значениям их атрибутов. Таким образом, можно выделять в окне Карты или Списка объекты, удовлетворяющие определенному критерию. Результаты запросов можно сохранять в виде таблиц, просматривать в окнах Списков, Карт и Графиков.

Вкоманде ВЫБРАТЬ можно формулировать такие запросы, как:

Покажите все районы, где средний доход жителей превышает 6000000 рублей.

Покажите все районы, где средний возраст населения составляет 42 года.

Покажите все районы, где средний доход жителей превышает 6000000 рублей, а средний возраст населения составляет 42 года.

Покажите все записи о заказах, сделанных в июле и сентябре.

Покажите все города в Ярославской, Владимирской и Костромской областях, население которых превышает 100000 жителей.

При работе с окном Списка MapInfo выделяет записи (строки списка), удовлетворяющие заданному в запросе критерию. При работе с окном Карты выделяются соответствующие этим записям графические объекты. Если же Вы работаете с окнами обоих типов, то выделяются и записи, и графические объекты. Во всех случаях MapInfo автоматически создает рабочую таблицу с названием «Selection» («Выборка»), которая содержит результаты обработки запроса. Эту таблицу можно просматривать в окне Списка, Карты или Графика как любую другую таблицу. Кроме того, ее можно сохранить под другим именем командой

СОЗДАТЬ КОПИЮ.

Создание выражений

Чтобы выполнить поиск по запросу, необходимо задать логическое выражение, которое мы обычно используем, когда задаем вопросы. Например, имеется таблица о сдаваемом внаем жилье. Если Вы хотите создать временную таблицу жилья, стоимость аренды которого ниже $800 в месяц, следует задать выражение:

РЕНТА < 800

где РЕНТА – это название колонки, содержащей данные о ежемесячной арендной плате. Знак “<” означает «меньше чем».

MapInfo ищет в таблице все записи, которые удовлетворяют заданному условию, и помещает последние во временную таблицу, которую можно просматривать в окне Карты, Списка, Графика и производить над ней дальнейшие операции.

Можно производить арифметические операции над данными. Предположим, надо создать временную таблицу жилья, общая стоимость которого меньше $800. Общая стоимость образуется из арендной платы и ежемесячных коммунальных платежей. Задайте выражение:

РЕНТА + ПЛАТЕЖИ < 800

Таким образом MapInfo, складывает число из колонки РЕНТА с числом из колонки ПЛАТЕЖИ и сравнивает сумму с числом 800.

MapInfo Professional 7.5

© May 2004 MapInfo Corporation. All rights reserved.

247

MI_UG.PDF

MapInfo Professional 7.5 Руководство пользователя (Полное)

Глава 8: Выборки по запросам

Имеется два способа создания выражений. Во-первых, можно ввести выражение напрямую. Этот способ обычно быстрее при задании простых выражений. Второй способ состоит в том, что можно нажать кнопку СОСТАВИТЬ в диалоге “Выбрать” и построить выражение с помощью окошек в диалоге «Выражение». Такой способ обычно применяется начинающими пользователями или при построении сложных выражений.

Диалог «Выражение» содержит три окошка списка, с помощью которых можно составить выражение: Колонки, Операторы и Функции.

Колонки

Это окошко содержит список всех колонок таблицы, по которой будет производиться выбор. Если таблица содержит колонки, вычисленные по предыдущим запросам, то перечисляются и эти колонки.

Операторы

В этом окошке содержится перечень математических и логических операторов. Среди операторов – сложение, вычитание, умножение, деление, знаки «больше», «меньше» и «равно». С помощью этих символов можно создавать математические формулы.

Для примера, рассмотрим таблицу торговых агентов; среди них Вы хотите выбрать тех агентов, полный объем продаж у которых в месяц составляет в среднем $2000. Общий объем вычисляется как сумма продаж и комиссионных.

Пусть в таблице имеются две следующие колонки: ПРОДАЖИ, содержащая данные о годовом объеме продаж каждого агента, и КОМИССИЯ, содержащаяданные о годовом размере комиссионных каждого агента. Вы можете составить следующее выражение:

(ПРОДАЖИ + КОМИССИЯ) / 12 < 2000

Согласно выражению, MapInfo сложит число в колонке ПРОДАЖИ с числом из колонки КОМИССИЯ. Однако это дает общий годовой объем. Вы же хотите получить среднемесячный объем. Поэтому Вы делите сумму на 12. Полученное значение сравнивается с 2000.

В списке Операторы содержатся также логические операторы AND, NOT, OR и LIKE. Оператор LIKE может использоваться с двумя видами замещающих символов: ’%’ и ’_’. Символ ’%’ может быть заменен любым количеством других символов. Символ ’_’ замещается только одним другим символом.

MapInfo Professional 7.5

© May 2004 MapInfo Corporation. All rights reserved.

248

MI_UG.PDF

MapInfo Professional 7.5 Руководство пользователя (Полное)

Глава 8: Выборки по запросам

Функции

Это окошко содержит математические функции, имеющие один и более параметров и возвращающие значения. Эти функции применяются для получения значений элементарных функций над данными из какой-либо колонки. Например, abs(<number>) выдает абсолютное значение чисел из заданной колонки.

Например, метеоролог хочет выбрать все дни, когда температура в городе была на 10 градусов выше или ниже средней по стране. Для этого используется колонка СР_РАЗН, содержащая разницу температур в городе и в среднем по стране. Можно составить такое выражение:

СР_РАЗН < –10 Or СР_РАЗН > 10

Оно означает, что MapInfo должна выбрать все записи с разницей меньше -10 или больше +10. Однако выражение можно задать и по-другому:

abs(СР_РАЗН) > 10

Вэтом случае MapInfo будет выбирать все записи, абсолютное значение разницы в которых превосходит 10.

Окошко Функции содержит много других функций, в том числе функции площади, периметра, синуса, косинуса и дат. Полный список функций приведен в разделе Создание выражений в Главе 8 на странице 111.

Проверить

Эта кнопка дает команду проверить лексику и логику составленного выражения. Это полезно для проверки созданных новых выражений.

Выбор объектов с помощью команды Выбрать

Вобщих чертах процесс выбора объектов с помощью команды ВЫБРАТЬ выглядит так:

1.Выполните команду ЗАПРОС>ВЫБРАТЬ.

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

2.Чтобы увидеть результаты выборки, установите флажок Результат в список.

3.MapInfo Professional откроет окно Списка и поместит туда новую выборку.

MapInfo называет временные таблицы выборок «Query1», «Query2» и т.д. При выборе записей с помощью команд ВЫБРАТЬ и SQL-ЗАПРОС можно задать свое название таблицы выборки. Введите это название в окошко Поместить в таблицу. Таблицу запроса можно сохранить под другим именем на диске командой СОЗДАТЬ КОПИЮ.

MapInfo Professional 7.5

© May 2004 MapInfo Corporation. All rights reserved.

249

MI_UG.PDF

MapInfo Professional 7.5 Руководство пользователя (Полное)

Глава 8: Выборки по запросам

Пример: Выборка

MapInfo предоставляет простые средства выбора и поиска информации. Вы можете создавать выборки из баз данных с помощью команды ВЫБРАТЬ. Рассмотрим, как выбрать из таблицы WORLD страны с уровнем грамотности выше 90%.

1.Откройте таблицу WORLD.TAB.

2.Выполните команду ЗАПРОС > ВЫБРАТЬ. Появится диалог «Выбрать”.

3.Заполните окошки диалога «Выбрать»:

В окошке Выбрать записи из таблицы выберите World.

Нажмите кнопку СОСТАВИТЬ. Появится диалог «Выражение».

4.Заполните диалог «Выражение», как показано на рисунке выше.

Вокошке КОЛОНКИ выберите «Literacy«(грамотность).

Вокошке Операторы выберите «>» (больше).

Введите число 90.

Нажмите кнопку ПРОВЕРИТЬ, чтобы убедиться в правильности синтаксиса запроса. Нажмите в этом диалоге кнопку OK.

5.Нажмите OK, чтобы закрыть диалог «Выражение». Вновь появится диалог «Выбрать».

6.Проверьте, чтобы был установлен флажок Результат в Список.

7.MapInfo откроет окно Списка по результатам выбора. Выборка также будет выделена в окне «World Карта».

MapInfo Professional 7.5

© May 2004 MapInfo Corporation. All rights reserved.

250

MI_UG.PDF

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Slinger писал(а):Борис, спасибо за утилиту. Сейчас более менее внятно потестил:

1) Взял исходник, решил, что в id 441 объект. Пробил это в .dat, получил рабочую таблицу, после чего упаковал, исключив все ошибки.

2) Взял исходник, прогнал через recovery, получил 492 объекта. Упаковал таблицу, дабы не морочаться со стилями, которые и так были, но не отображались, потому что опять-таки соответствующие байты были побиты.

3) Обнаружил, что в восстановленной recovery таблице есть дубликаты объекты. Вычистил их, и объектов стало 472. Так же удалил дублирующий объект из моей таблицы. Соответственно объектов стало 440.

Итого — на 32 реально «работающих» объектов больше. Примечательно, что все они в колонке rec_status имеют префикс D. Что это кстати значит, Борис ?

И как программа переопределяет заново файл .id ? С помощью библиотеки Mitab ?

Я точно это не описал в README.TXT ? Если нет, то я поправлю как доберусь до программы, хотелось по быстрее выложить. :wink:
Буква D — означает, что запись была отмечена как удаленная. В DAT (DBF — атрибутика) — это единственное знание, кроме RowID. Для MAP есть следующие значения в 4-х символьном поле:
1-ы символ:
» » — запись не была отмечена удаленной; D — запись была отмечена удаленной.
2-ой — E — запись прочиталась с ошибкой (результат не предсказуем); U — неизвестный тип, запись прочитана нормально, но т.к. не известен размер заголовка этого типа, все записи до конца блока пропущены и не восстановлены.
3-й и 4-й — это внутренний номер типа геоданных. 2-х байтовое целое. Отличается от номера, который возвращает ObjectInfo()/

Нет я не использую никакой библиотеки, т.к. я не понял, что она делает. Я в свое время пытался в ней разобраться, но там очень путанные ссылки на абстрактные объекты и т.д. Поэтому я просто взял двоичные описания форматов, какие нашел в сети и воссоздал файлы по ним.
DAT = DBF III — только все данные хранятся в полях строк (ХЗ знаю почему). Но какие бы данные не были записаны в поле, оно помечено в DBF Как символьное. Тут проблем нет — формат много кратно описан, добавить в него строки или поля не представляет труда, равно как и исправить значения. В таблице, с которой начался разбор, файл DAT — битый, по какой то причине он укорочен в 49 или 56 (я уже не помню) записей. Из-за этого все, что далее не распознается MI, как объекты, хотя графическая часть MI — их отображает на экране.

MAP — описан скудно, но основные принципы и структуру, описали к 2007 году, правда в описании не оказалось типа 26, который и давал ошибку в программе версии 2011 года. Формат логичный, но многодельный, в нем даже есть внутренний индекс, который призван ускорить выборку, но этот раздел никто не описал. Хотя видимо он не является проблемой, т.к. FME Universal Translator (или его мини версия UT из утилит Mapinfo) прекрасно умеют создавать такой индекс. Кстати часть знаний была почерпнута из каких-то разделов документации по FME, вернее намеков в ней. Файл блочной структуры. Каждый блок имеет размер &H200 — волшебное число, блоки имеют несколько видов. Для программы главный — блок описания гео-объектов. В нем хранится номер RowID и ссылка на блок с геометрией объекта. Поле RowID — это просто порядковый номер записи в файле DAT, если он больше 0, если меньше — это то же RowID, но умноженный на -1. Исправив это номер получаем восстановленную запись с геометрией. Синхронно надо изменить запись в DAT, где удаление кодируется знаком «*» с начале записи. Так MAP ссылается на DAT — при каждом гео-объекте есть прямая ссылка на строчку с атрибутикой. Обратное неверно, т.к. был использован чужой формат DBF (спасибо, т.к. он описан на 200%), но в DBF не было предусмотрено место для ссылок, т.е. тип такой отсутствовал. Хотя это странно, т.к. по факту везде для ссылок использовано смещение записи от начала файла в виде длинного целого о 4-х байтах, можно было с тем же успехом внести ссылку в поля DBF. Но сделали по другому, видимо для скорости:
Создали файл ID он компактный, и видимо в эпоху ограниченной оперативной памяти, это было критично. Файл ID — это простой список ссылок на описание гео-объекта в файле MAP. 4-байта = смещение описания от начала файла MAP.
Все… Ничего больше. Просто последовательный список ссылок. 4 байта на число без разделителей. Как идут записи в DAT файле, ровно в таком порядке идут и ссылки. Это и позволило вам восстановить файл, просто добавив отсутствующие строки в файл DAT. Видимо, ID содержит ссылки только на неудаленные записи, иначе простое добавление в DAT не дало бы эффекта.
Спасибо создателям формата! Без смеха. Они заложили такую избыточность, что она позволяет воссоздать данные, просто перебирая их в двоичном виде.
Работа программы проста: она читает файл MAP и вычленяет из него блоки описания гео-объектов. Потом перебирает заголовки гео-объектов в этом блоке. Для каждого заголовка обязательно хранится тип и RowId. Дальше идут нюансы конкретного типа гео-объекта. Например, для точки вся информация хранится в заголовке, а для полилинии хранится ссылка на блок описания координат и количество точек в полилинии, если в ней 1 сегмент. За полилинии из 2 и более сегментов отвечает другой тип гео-объектов. Неизвестный тип = неизвестный размер записи, неизвестно где начинается описание СЛЕДУЮЩЕГО объекта, до конца блока вся информация не может быть прочитана. НО этот объект — прочитан и восстановлен! Вернемся к работе: сканируем информацию о гео-объектах. При каждом из них известный RowId (или номер записи, включая отмеченные как удаленные, от начала файла DAT) — вот по этому RowId и создаем запись в новый DAT, со служебной информацией — новый порядковый номер (RowID_new), старый RowId — Который был записан в MAP, его при обработке мы меняем на новый RowID (опять же просто номер по порядку, но уже в переборе MAP), смещение, и статус в исходном файле — удаленный да/нет и т.п. (см. выше).
Параллельно пишем к создаваемому DAT новый ID — адреса геообъектов. Поскольку геообъектов с удаленными может быть больше, чем в исходном файле, ID обычно больше исходного, но в случае когда пришлось пропустить объекты после неизвестного типа, их может быть и меньше. В этом случае спасти битые гео-объекты объекты можно именно так как удалось «руками» — надо добавить к DAT файлу недостающее количество записей и взять старый ID. Естественно, если и он не испорчен.
Восстановить случайно удаленные объекты, а это и было изначальной целью программы Recovery, таким образом не удасться. В случае Recovery — спасение геометрии — это просто бонус, происходящий из структуры файлов. :mrgreen:

Содержание

  1. Форумы GIS-Lab.info
  2. Проблема с установкой Mapinfo
  3. Проблема с установкой Mapinfo
  4. Re: Проблема с установкой Mapinfo
  5. Re: Проблема с установкой Mapinfo
  6. Re: Проблема с установкой Mapinfo
  7. Re: Проблема с установкой Mapinfo
  8. Re: Проблема с установкой Mapinfo
  9. Re: Проблема с установкой Mapinfo
  10. Re: Проблема с установкой Mapinfo
  11. Форумы GIS-Lab.info
  12. MapInfo 9.5.1 проблема и индексами
  13. MapInfo 9.5.1 проблема и индексами
  14. Re: MapInfo 9.5.1 проблема и индексами
  15. Re: MapInfo 9.5.1 проблема и индексами
  16. Форумы GIS-Lab.info
  17. Не запускается Мапинфо 🙁
  18. Не запускается Мапинфо 🙁
  19. Re: Не запускается Мапинфо 🙁
  20. Re: Не запускается Мапинфо 🙁
  21. Re: Не запускается Мапинфо 🙁
  22. Re: Не запускается Мапинфо 🙁
  23. Re: Не запускается Мапинфо 🙁
  24. Re: Не запускается Мапинфо 🙁
  25. Re: Не запускается Мапинфо 🙁
  26. Re: Не запускается Мапинфо 🙁
  27. Re: Не запускается Мапинфо 🙁
  28. Re: Не запускается Мапинфо 🙁
  29. Кто сейчас на конференции
  30. Перед установкой MapInfo Professional
  31. Работа с Просмотрщиком MapInfo 7.5 CD
  32. Установка MapInfo Professional 7.5
  33. Полная установка
  34. Как исправить не ошибки «Не найден Interop.mapinfo.dll»?
  35. Interop.mapinfo.dll

Форумы GIS-Lab.info

Геоинформационные системы (ГИС) и Дистанционное зондирование Земли

Проблема с установкой Mapinfo

Сообщение Olga-Olga » 17 апр 2014, 15:46

Re: Проблема с установкой Mapinfo

Сообщение nadiopt » 17 апр 2014, 16:18

Re: Проблема с установкой Mapinfo

Сообщение Olga-Olga » 17 апр 2014, 16:31

Re: Проблема с установкой Mapinfo

Сообщение nadiopt » 17 апр 2014, 20:16

Re: Проблема с установкой Mapinfo

Сообщение Slinger » 17 апр 2014, 20:54

Забавный баг InstallShield’a. Возникает тогда, когда системе недостаточно прав для осуществления действия. Из решение я могу посоветовать следующее.

1) Запустить от имени администратора САМ инсталлятор. По идее он будет находится в «папка с mapinfo/install/MI_PRO». На инсталлере правой кнопкой — запустить от имени администратора. Если повезёт — всё сработает.

2) Не сработало. Тогда попробуем принудительно сказать инсталшилду, что устанавливать софт может любой. Для этого:

2.1. В Пуск-Выполнить набрать «dcomcnfg.exe» (без кавычек)
2.2. Службы компонентов — Компьютеры — Мой компьютер — Настройка DCOM.
2.3 Находите драйверы (или драйверы!) инсталшилда. Они должны называться InstallShield InstallDriver
2.4. Правой кнопкой — Свойства. Выбрать вкладку безопасность.
2.5 У всех трёх настроек (запуск, доступ и возможность менять настройки) нужно нажать кнопку Изменить, далее Настроить, затем добавить (если его нет в списке) пользователя с именем «Все» (без кавычек). После чего нажать ок.
2.6. Проделать это для всех настроек всех драйверов. Таким образом мы принудительно «всем» юзерам раздали полный доступ.

По идее второй способ должен прокатить. Наверное ))

з.ы. У меня стоят 7.5 и 8.5 и прекрасно уживаются. Win7 x64.

Re: Проблема с установкой Mapinfo

Сообщение nadiopt » 17 апр 2014, 21:26

Re: Проблема с установкой Mapinfo

Сообщение Olga-Olga » 18 апр 2014, 11:03

Re: Проблема с установкой Mapinfo

Сообщение Olga-Olga » 18 апр 2014, 11:07

Slinger писал(а): Забавный баг InstallShield’a. Возникает тогда, когда системе недостаточно прав для осуществления действия. Из решение я могу посоветовать следующее.

1) Запустить от имени администратора САМ инсталлятор. По идее он будет находится в «папка с mapinfo/install/MI_PRO». На инсталлере правой кнопкой — запустить от имени администратора. Если повезёт — всё сработает.

2) Не сработало. Тогда попробуем принудительно сказать инсталшилду, что устанавливать софт может любой. Для этого:

2.1. В Пуск-Выполнить набрать «dcomcnfg.exe» (без кавычек)
2.2. Службы компонентов — Компьютеры — Мой компьютер — Настройка DCOM.
2.3 Находите драйверы (или драйверы!) инсталшилда. Они должны называться InstallShield InstallDriver
2.4. Правой кнопкой — Свойства. Выбрать вкладку безопасность.
2.5 У всех трёх настроек (запуск, доступ и возможность менять настройки) нужно нажать кнопку Изменить, далее Настроить, затем добавить (если его нет в списке) пользователя с именем «Все» (без кавычек). После чего нажать ок.
2.6. Проделать это для всех настроек всех драйверов. Таким образом мы принудительно «всем» юзерам раздали полный доступ.

По идее второй способ должен прокатить. Наверное ))

з.ы. У меня стоят 7.5 и 8.5 и прекрасно уживаются. Win7 x64.

Источник

Форумы GIS-Lab.info

Геоинформационные системы (ГИС) и Дистанционное зондирование Земли

MapInfo 9.5.1 проблема и индексами

MapInfo 9.5.1 проблема и индексами

Сообщение Andry » 10 янв 2014, 06:59

Re: MapInfo 9.5.1 проблема и индексами

Сообщение Старый Йети » 10 янв 2014, 08:06

Добрый день.
попробую быть первым.

Итак, всё по-порядку.
Каков вопрос — таков ответ.
Что за операционная система?
Какая версия MapInfo стояла до этого?
Непонятно, что за набор «ugur.wor» — его состав, структура, местоположение.
Если у вас Windows XP.
1. Программка «проверка рабочих наборов» (WorkspaceResolver.MBX) должна находиться C:Program FilesMapInfoProfessionalTools
2. Программка «шаблоны отчетов» (LayoutTmplt.MBX) — там же.
3. Непонятно, что за ugur.wor — это ваш старый набор? Где вы его сохраняли до этого? Если же действительно в C:Program FilesMI. — печально. Многие «системщики» не напрягают себя «философскими знаниями» о местоположении рабочих файлов пользователя. В случае переустанановки систему «с нуля» — с форматированием диска С — тогда вы его вряд ли уже найдете. Тем не менее, с помощью этих же «системщиков» можно попытаться его восстановить — Флаг в руки и им и вам!
4. см. п. 3
5. см. на п. 3-4 — и не откроется.
Что делать?
1. В настройках MI указать подключаемые программы (mbx)
Меню: Программы-> Каталог программ-> Добавить . И добавляйте, всё, что считаете нужным из папки (c:Program FilesMapInfoProfessionalTools). Это если, конечно, ваши системщики удосужились установить tools’ы с дистрибутива MI
2. Таблицы, созданные в предыдущих версиях MI, для работы в более поздних требуется переиндексировать. Достаточно их переупаковать (Открыть необходимую таблицу. Далее через меню: Таблицы->Изменить->Упаковать. Всё, таблица переиндексирована, можно работать без лишних вопросов.
3. Рабочие наборы MI — текстовые файлы, открывайте в любом notepad’е и анализируйте что-где.

P.S. Да, и почитайте Руководство пользователя MI, не помешает.

Re: MapInfo 9.5.1 проблема и индексами

Сообщение Boris » 27 янв 2014, 17:57

Источник

Форумы GIS-Lab.info

Геоинформационные системы (ГИС) и Дистанционное зондирование Земли

Не запускается Мапинфо 🙁

Не запускается Мапинфо 🙁

Сообщение Olga_@@@ » 04 окт 2011, 11:15

Re: Не запускается Мапинфо 🙁

Сообщение reasonat » 04 окт 2011, 11:20

Re: Не запускается Мапинфо 🙁

Сообщение Olga_@@@ » 04 окт 2011, 11:33

Re: Не запускается Мапинфо 🙁

Сообщение reasonat » 04 окт 2011, 11:56

Re: Не запускается Мапинфо 🙁

Сообщение Olga_@@@ » 04 окт 2011, 12:00

Re: Не запускается Мапинфо 🙁

Сообщение reasonat » 04 окт 2011, 12:11

Re: Не запускается Мапинфо 🙁

Сообщение Olga_@@@ » 04 окт 2011, 12:19

Re: Не запускается Мапинфо 🙁

Сообщение Institor » 05 окт 2011, 03:58

Re: Не запускается Мапинфо 🙁

Сообщение rosima1978 » 06 окт 2011, 11:09

Re: Не запускается Мапинфо 🙁

Сообщение soneg » 09 ноя 2011, 09:03

Re: Не запускается Мапинфо 🙁

Сообщение Boris » 09 ноя 2011, 14:16

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя

  • На главнуюСписок форумов
  • Часовой пояс: UTC+03:00
  • Удалить cookies конференции
  • Пользователи
  • Наша команда
  • Связаться с администрацией

© GIS-Lab и авторы, 2002-2017. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов — ответственность авторов (подробнее).

Источник

Перед установкой MapInfo Professional

Прежде чем устанавливать MapInfo, запишите на видном месте (например, на первой странице Руководства пользователя MapInfo) серийный номер приобретенного Вами пакета. Заполните регистрационную карточку и отправьте ее в MapInfo Corporation. Если у Вас есть доступ в Интернет, то воспользоваться возможностью заполнить электронную регистрационную карточку в конце программы установки.

Установщик MapInfo Professional 7.5 определяет существующую версию или то, что какаялибо версия была установлена ранее. После этого установщик MapInfo 7.5 скопирует файлы MAPINFOW.WOR, STARTUP.WOR и MAPINFOW.PRF из системной папки операционной системы в Application DataMapInfoMapInfo.

Вспомогательные файлы являются неисполняемыми файлами данных, которые MapInfo Professional использует во время сеанса работы.

Работа с Просмотрщиком MapInfo 7.5 CD

При запуске Просмотрщика MapInfo 7.5 CD появятся разделы:

• Установка Программ : Из этой настройки можно установить MapInfo Professional в

составе: Поддержка СУБД и трансляторы, данные, документаця, Установка утилит (ECW Compressor, GPS и Meta Data Browser ).

• Что нового : Представляет список новых возможностей программы.

• Справочники : MapInfo Professional 7.5 обеспечено следующими электронными спра-

вочными документами: Руководство пользователя MapInfo Professional ( Полное ),

Справочник MapBasic, Crystal Reports User Guide , Инструкция по печати MapInfo Professional и Установка Adobe Acrobat Reader.

• Учебника MapInfo: Нажмите кнопку, и откроется учебник MapInfo Professional 7.5 в формате HTML.

• Другие продукты: Откроется информация о MapBasic, MapInfo Discovery и MapInfo Pro для SQL Server.

Внимание: Для установки программ соединения с удаленными базами данных, изпользуйте настройку Выборочная .

Установка MapInfo Professional 7.5

Предупреждение: Перед началом процедуры установки настоятельно рекомендуется выйти из всех программ под Windows и удалить все предыдущие версии

MapInfo Professional на Вашем компьютере.

Для запуска Установщика в системах NT/2000 и Windows XP у Вас должны быть права Администратора .

MapInfo Professional 7.5

© May 2004 MapInfo Corporation. All rights reserved.

Руководство пользователя MapInfo Professional 7.5 (Полное)

Глава 2: Установка, конфигурирование и начало

Если в вашей конфигурации под Windows не содержится группы для MapInfo, то в процессе установки такая будет создана. Если ваша конфигурация под Windows уже содержит группу MapInfo, то при установке новая иконка (ярлычок) MapInfo будет добавлена в уже имеющуюся группу.

Теперь предоставляет MapInfo Professional возможность доступа к служебным файлам каждому пользователю. Так называемая Пользовательская установка запускается первый раз при запуске MapInfo Professional, и каждый раз будет перезапускаться Установщик MapInfo Professional . Служебные файлы данных включают, помимо прочего, файл стилей линий, файлы пользовательских символов, файлы поддержки графики и шаблоны тематических легенд. Эти файлы позволяют пользователям сохранять свои настройки.

Для того, чтобы установить MapInfo:

1. Нажмите M AP I NFO P ROFESSIONAL – появится диалог «Добро Пожаловать». Нажмите Д АЛЕЕ для продолжения процесса установки.

2. Появляется диалог «Лицензионное соглашение». Примите условия соглашения и продолжайте установку. Появляется диалог «Сведения о пользователе».

3. Введите свое имя, название компании и серийный номер. Информация требуется для всех трех полей. Выберите Д АЛЕЕ , чтобы продолжить процесс установки. Появляется диалог «Тип установки».

4. Определите необходимую конфигурацию Вашей рабочей станции. Выберите один из следующих вариантов и потом нажмите Д АЛЕЕ .

• О ТДЕЛЬНОЕ РАБОЧЕЕ МЕСТО . Установка MapInfo производится на компьютере для одного пользователя без доступа к удаленным базам. В разделе Полная установка на странице 25 там есть инструкции для продолжения установки.

• П ОЛЬЗОВАТЕЛЬСКАЯ УСТАНОВКА . Выберите этот вариант установки, если понадобится поддержка соединений ODBC или Oracle Spatial. См. в разделе

Выборочная установка на странице 25 , где приведена инструкции для продолжения установки.

• С ЕТЕВОЙ СЕРВЕР . Выберите эту настройку, чтобы установить MapInfo Professional в сети. В разделе Установка MapInfo в сети на странице 27 , где приведена инструкции для продолжения установки. Такая установка не изменяет конфигурации сервера специально под запуск MapInfo; конфигурация сервера сводится только к тому, чтобы он мог работать для нескольких рабочих станций. После установки MapInfo Professional в сети следуйте инструкциям установки в разделе Выделение пользователей на странице 28 .

Внимание: После установки появится запрос: «Проверить наличие обновлений продукта на сайте?». Если у Вас есть соединение с Интернетом, нажмите «Да», и Вы попадете на страницу сайта MapInfo Corporation с информацией об обновлении программ.

Полная установка

Устанавливаются программные файлы для MapInfo Professional, Справочная система, Утилиты, Универсальный транслятор и Crystal Reports. ArcLink по умолчанию не выбирается.

Предупреждение: Перед тем как начать этот вариант установки, внимательно изучите раздел Установка MapInfo Professional 7.5 на странице 24 .

Чтобы произвести полную установку:

MapInfo Professional 7.5

© May 2004 MapInfo Corporation. All rights reserved.

Источник

Как исправить не ошибки «Не найден Interop.mapinfo.dll»?

Как правило, подобные ошибки DLL, связанные с MapInfo’, возникают в результате повреждения или отсутствия файлов interop.mapinfo.dll. Как правило, самый лучший и простой способ устранения ошибок, связанных с файлами DLL, является замена файлов. Мы также рекомендуем выполнить сканирование реестра, чтобы очистить все недействительные ссылки на interop.mapinfo.dll, которые могут являться причиной ошибки.

Типы Системные файлы, которые используют DLL, также известны в качестве формата Dynamic Link Library. Если вам нужно заменить файл interop.mapinfo.dll, вы можете найти версию %%os%% в нашей базе данных, перечисленной в таблице ниже. В некоторых случаях в настоящее время в нашей базе могут отсутствовать некоторые версии interop.mapinfo.dll, но их можно запросить, нажав на кнопку Request (Запрос) ниже. Если ниже отсутствует необходимая вам версия, мы рекомендуем обратиться непосредственно к Windows Software Developer.

Настоятельно рекомендуется выполнить проверку и убедиться в том, что файл был размещён в правильном каталоге. Тщательно следуйте настоящим инструкциям, чтобы устранить возникающую ошибку, связанную с файлом interop.mapinfo.dll, однако мы рекомендуем выполнить быструю проверку. Проверьте результат замены файла, запустив MapInfo’ и проверив выводится ли возникающая ранее ошибка.

Interop.mapinfo.dll Описание файла
Расширение файла: DLL
Группа:
Program: MapInfo’
Вер: 1.0.0.0
Создано: Windows Software Developer
File: interop.mapinfo.dll Запрос
Размер: 19456
SHA-1: 945acc2645fd1a407d8461197ac62233b269c3da
MD5: e2d5f9f5fd2515f3cdd30197b9ac8645
CRC32:

Идентификатор статьи: 1060310

Interop.mapinfo.dll

Выберите программное обеспечение

Источник

Понравилась статья? Поделить с друзьями:
  • Ошибка стоящая счастья фанфик драмиона фикбук
  • Ошибка соединения 0x2102 kyocera при сканировании на почту
  • Ошибка сокета 11002
  • Ошибка стрелка 6 букв
  • Ошибка стояночного тормоза bmw x6