
Далее выбираем проекцию Transverse Mercator (цифра 1):

Жмём на кнопку Select (см. рис. выше цифра 2):

… и ещё далее :
Теперь наша карта приобрела сл. вид:

Для добавления нового поля в окне атрибутивных данных интересующего нас слоя river1 выбираем Add Field:

… и добавляем поле Len:

Теперь становимся на него и выбираем Calculate Geometry(Вычислить геометрию) :

Далее устанавливаем нужную нам размерность длины (метры) и параметр Length (длина сегмента, в данном случае):

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

А для подсчёта статистики колонки выбираем пункт Statistics … :

… и видим нужную нам сумму всех длин и прочую статистику колонки Len:

Небольшой комментарий. Чтобы выполнить простую манипуляцию по подсчёту длины сегментов, в ArcGIS пришлось проделать невероятные кульбиты. По-моему, идеологи и разработчики из фирмы ESRI здесь явно чего-то перемудрили. Для начинающих это может оказаться непосильной задачей …
©Simashkov.2011
13.08.2011 г.
Системные и в выпадающем списке Единиц площади выбираем интересующую нас размерность (на рисунке ниже, гектары):

Чтобы быстро, скажем, подсчитать сумму площадей всех контуров можно поступить следующим образом. Идём в меню Запрос>SQL и набираем текст так, как показано на рисунке ниже — Sum(Area(obj, «hectare»)). Функции Sum и Area можно выбрать из выпадающих списков Обобщение и Функции соответственно:

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

Прим. 26.11.2015 В более поздних версиях MapInfo v12.5 и v15 пункт Запрос SQL можно найти на вкладке Map> SQL Select :
… или на вкладке Spatial :
Однако, продолжим …
Но чаще , все-таки, бывает необходимо вычислить площадь каждого контура и сохранить это значение в таблице. Такую задачу также можно решить с помощью SQL-запроса. Опять таки, идём меню Запрос>SQL и набираем параметры приблизительно так, как указано на рисунке ниже — id, Round(Area(obj, «hectare»),0.1) «Площадь»:

Небольшой комментарий к рисунку выше. В указанном запросе мы добавляем к единственному полю с номером контура id поле со значение площади контура в гектарах, округленное до 0.1(одной десятой). Это округление делает функция Round. А измерение площади производим функцией Area.
В результате можно получить приблизительно такой список. Как видим, в результирующем списке Query1 появилась колонка «Площадь» со значением округлённой до 0.1 гектара площади контура.

Существует ещё один, более упрощённый (может быть, даже более удобный) способ заполнения столбца значением площади через пункт меню Таблица>Обновить колонку:
![]() |
В этой форме задаём изменения в столбце Area таблицы Parcels |
Жмём на кнопку Составить (см рис. выше) и задаём сл. выражение:

Наш обновлённый список будет выглядеть так:

Теперь с помощью статистики по колонке легко получить сумму площадей всех контуров и другие статистические параметры по указанному столбцу. Для этого идём в меню Запрос>Статистика колонки.
Результат может выглядеть так:

Как решить аналогичную задачу по определению площади контуров, используя ArcGIS, можно посмотреть на нашем сайте здесь и здесь.
© Simashkov.2010
05.11.2010 г.

На форме, представленной выше, сначала кликаем Обработка растра, и на сл. форме выставляем опцию Всегда:

После нажатия на кнопку Проекция устанавливаем категорию Проекции мира …

… и проекцию Меркатора для нашего учебного примера, как наиболее универсальную:

Теперь наша картинка примет сл. вид — карта предстанет в так называемом спроецированном виде:

Так, идём дальше. Сейчас самое время заняться созданием координатной сетки. Для этого идём меню Discover>Map Grid:

… и далее попадаем в форму настроек километровой сетки. Параметры (для нашего примера) могут выглядеть приблизительно таким образом:

Кликнем на OK и теперь наша карта приобрела сл. вид ( в общем, модуль Discover можно использовать и для построения прямоугольных сеток):

Далее воспользуемся ещё одной полезной возможностью расширения Discover — создание вида карты в Окне в рамках выбранного слоя. Пусть для нашего примера это будет только-что подготовленная километровая сетка (или слой ramka в рассматриваемом примере). Но для начала её необходимо выбрать. Проще всего это сделать по меню Запрос> Выбрать:

… или Запрос>Выбрать полностью (кому как удобнее):

Снова идём меню Discover и далее Map Window>Fit Map window to ….

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

Теперь можно непосредственно приступить к созданию макета . Для этого идём Discover>Scaled Output:

Попадаем на форму настроек макета:
![]() |
Для тех , кто хочет создать на макете карты угловой штамп , выставляем опции TitleBlock (угловой штамп) и Scalebar (масштабная линейка) |
Двигаемся дальше. Если правильно угадали с масштабом на форме выше, то вся наша карта должна лежать в границах листа печати заданного размера (A3 Потрет для нашего примера, рамка чёрного цвета):

Теперь займемся оформлением угловой рамки (штампа). Для этого идём меню Scale Output>Accept Map Position , опять попадаем в форму настроек макета (Scale Output) и видим такую форму настроек угловой рамки. Здесь необходимо заполнить некоторые поля реквизитов штампа:

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

То, что угловой штамп немного ‘отъехал’ — не беда. Берём, и просто подтягиваем его в нужное место место (как более точно отпозиционировать, можно посмотреть здесь) :

Чтобы поаккуратнее откорректировать угловой штамп, просто идём в меню Окно в соответствующую карту:

Окончательно оформленный учебный макет для нашего примера может выглядеть приблизительно так:

В общем, если вкратце, где-то так о том, как создать карту с использованием MapInfo и модуля Discover. С деталями, предполагаю, сможете разобраться сами …
© Simashkov.2013
18.01.2013 г.

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

Второе «тайное» знание заключается в том факте, что все слои сверху «подстраиваются» под проекцию растрового слоя. Чтобы наглядно разобраться с этим моментом, проведём следующий небольшой эксперимент.
Пусть имеется растровая карта некой местности в Универсальной проекции Меркатора (UTM) — 36 Северная зона:

Теперь для наглядности поместим поверх этого растра координатную сетку и слой административной границы:

Как видим, географическая сетка имеет вид трапеции. Запомним этот факт.
Теперь удалим с этой карты вспомогательные слои и поменяем проекцию растра на Долгота/Широта на датуме WGS 84:

Теперь снова набросаем слой сетки и административных границ (для наглядности) и увидим сл. картинку:

Визуально видно, что сетка приняла прямоугольный характер. Слои сверху «подстроились» под проекцию нижнего растрового слоя! Что, в общем-то, выглядит довольно логично. Если вы открываете несколько разных слоёв, и все они имеют разную проекцию, то понятно, что всё это хозяйство необходимо привести к какому-то «одному знаменателю» — одной проекции. Логично в качестве такой проекции и взять проекцию нижнего растрового слоя.
То, что разработчики ГИС MapInfo пошли по такому пути говорит следующий факт. Если вы попытаетесь, скажем, изменить проекцию карты, не включив опцию Перепроецировать всегда ( на форме Обработка растра), то получите сл. сообщение:

Иначе говоря, нажав на кнопку Проекции на форме Проекция вы, на самом деле, изменяете только проекцию растрового слоя. А все остальные слои «подстраиваются» под него.
Теперь логически может возникнуть следующий вопрос — а что будет, если в сборке не будет растрового слоя? Да ничего не будет … :-). В этом случае вы сможете изменить проекцию карты даже с включённой опцией Никогда на форме Обработка растра.

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

А так в Равноугольной проекции (Европа):

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

Как поменять проекции в ArcGIS можно узнать на нашем сайте по этой ссылке.
©Simashkov.2011.
10.04.2011 г.
Для геопривязки вашей карты в виде растровой картинки в ГИС MapInfo необходимо, чтобы на отсканированном образце присутствовала координатная сетка или нанесённые реперные точки. Кроме того, крайне желательно знать проекцию бумажной карты.
Если вы отсканировали, скажем, топографические планшеты, то проблема координатной сетки будет решена сама собой. Геопривязать такие растры можно по координатам углов трапеции (система координат Долгота/Широта, градусы) или в плановой системе координат (прямоугольная сетка, метры). О том, как это сделать — смотрите информацию здесь на нашем сайте.
Но иногда стоит несколько другая задача. Есть картограмма (или карта) с известным масштабом, но с отсутствующей координатной сеткой. Если для вас не важна географическая привязка, но желательно сохранить масштаб карты (с тем, чтобы в дальнейшем была возможность промерять по ней расстояния и площади), то можно поступить следующим образом. Наносим на картограмму реперную сетку (точки) с шагом, ну скажем, 10 см от левого нижнего угла и затем сканируем такую карту. Другой вариант — можно нанести такую реперную сетку, используя какой либо графический редактор (типа Photoshop, см. на нашем сайте здесь или XnView). В общем, будем считать, что проблему реперной сетки вы каким-то одним из способов решили. Далее алгоритм действий следующий.
В ГИС MapInfo открываем исходный растровый файл.
Для этого идём меню Файл>Открыть и выбираем тип файла Растр:

Далее появляется сл. диалоговое окно, в котором жмём, естественно (в нашем случае) Регистрировать:

Следующий шаг. Видим окно регистрации растрового изображения:
![]() |
На картинке слева красным обведены нанесённые реперные точки. Для выбора системы координат жмём на кнопку Проекции. |
Теперь для задания координат реперной точки кнопкой «+» приближаем её, жмём на кнопку Добавить, затем «тыкаем» курсором в реперную точку:

… и далее забиваем в появившемся окне координаты точки:

Для регистрации изображения таким образом необходимо забить не менее 3-х точек. Такие опорные точки необходимо разместить по всему периметру карты. После добавления 4-ой точки программа выдаст ошибку (невязку) вашей регистрации:

В приведённом примере ошибка регистрации является не совсем приемлемой. Необходимо добиться, чтобы ошибка регистрации была не более 1-ой единицы. Для исправления регистрации становимся на точку с наибольшей ошибкой и жмём кнопку Найти (чтобы приблизится к ней):
![]() |
Здесь методом «научного тыка» начинаем зондировать направление, в котором ошибка регистрации будет снижаться. Делается это «тыканьем» курсора в окрестности реперной точки. На приведённой картинке ошибку регистрации Точки 2 удалось довести до 4 единиц. Подобным образом необходимо «пройтись» по всем проблемным реперным точкам. |
После описанных выше манипуляций картинка нашей регистрации должна выглядеть приблизительно сл. образом:

Такой результат регистрации можно считать приемлемым. Жмём кнопку OK и получаем зарегистрированную (закоординированную) карту. Теперь по ней можно промерять расстояния и площади. Для более-менее удовлетворительной привязки необходимо минимум 4.. 5 точек (4 по краям карты и одна в центре). При увеличении количества точек точность привязки будет возрастать (но и лепить скажем, для привязки внутрихоза более 20, наверно, большого смысла нет).
И в завершении, небольшая ложка дёгтя. К сожалению (imho), назвать интерфейс регистрации растра в MapInfo идеальным нельзя. Непонятно, например, почему нет возможности окно регистрации изображения развернуть во весь экран. И в этом смысле, от версии к версии в интерфейсе регистрации практически ничего не меняется… Но это так, к слову.
Способ регистрации карты с использованием карты-источника рассмотрен по этой ссылке
Как можно зарегистрировать карту, используя ArcGIS — смотрите на нашем сайте здесь.
© Simashkov.2011
26.02.2011 г.
1, который существует , например в языке T-SQL (можно посмотреть здесь).
Однако, продолжим … Создаем второй запрос, в котором будем использовать результаты Query1 :
|
В приведенном на форме слева запросе выведем в результирующий список наименования нас. пунктов, встречающиеся более 3-х раз. Сортировать результаты будем по первому полю в порядке возрастания по алфавиту — предложение 1 asc в поле Сортировать по . Условие запроса для нашего примера будет таким: name in (Select name from query1 where col2 > 3) |
Результат будет выглядеть сл. образом — как и следовало ожидать, наиболее ‘популярными’ являются названия Александровка, Каменка, Поповка , Березовка и пр. :
В заключении необходимо отметить, что рассмотренная тактика составления последовательности (цепочки) запросов, является полезным приемом в случае необходимости получить нетривиальный cрез информации из списков MapInfo. Мысль тут довольно простая — решение сложной задачи всегда можно достичь, разложив её на более простые (элементарные) составляющие.
Мндаа … Диалектика, однако — от просто к сложному 🙂 За сим разрешите откланяться …
© Simashkov.2015
04.05.2015 г.
Иногда бывает нужно быстро протестировать соединение с базой данных «подручными» средствами, не прибегая к помощи каких-либо программ. Чаще всего с такой необходимостью сталкиваются при тестировании соединения с базой на SQL-серверах в сети (с локальной базой проблем, как правило, не возникает).
Решить такую задачу проще всего с использованием файла-подключения со специальным расширением .udl (Universal Data Link). Алгоритм действий может быть следующий.
Создаём, например в Total Commander‘ е (по Shift+F4) файл с расширением udl. Пусть это будет test.udl:

Затем дважды щёлкаем по нему:

На следующей форме выбираем, например, драйвер для MS SQL Server:

На форме выше жмём кнопку Далее и выбираем соответствующие опции:

Жмём на кнопку Проверить подключение и если всё OK видим следующий результат :

Как создать и протестировать подключение к базе данных из средства разработки MS Visual Studio — смотрите здесь
27.04.2011
Администрирование, ищем пункт Источник данных(ODBC) и дважды щёлкаем по нему:

Видим следующую форму и идём на вкладку Файловый DSN:

Жмём на кнопку Добавить и в следующей форме выбираем (для нашего случая) драйвер MS Access:

Двигаемcя дальше и указываем источник данных — нужную нам базу:

Жмём кнопку OK и вводим имя файлового источника данных — пусть он будет называться MySource:

Созданный файловый DSN является ничем иным, как простым текстовым файлом, в котором хранятся параметры созданного соединения и его можно просмотреть любым текстовым редактором:
![]() |
Преимущество созданного файла заключается в том, что им можно воспользоваться и в других приложениях, сославшись на него (естественно, только для подключения к указанной базе по указанному пути с указанным драйвером). Этот файл даже можно перетащить на другой компьютер и воспользоваться им при условии, что все пути и настройки на этом компьютере будут аналогичными. |
Ну вот… Предварительную работу провели. Теперь запускаем MapInfo и идём Файл>Открыть соединение с СУБД и на вкладке Файловый источник данных выбираем созданный только-что файл MySource.dsn:

Теперь на Панели инструментов СУБД жмём кнопку Открыть соединение 
После этого видим список всех таблиц в нашей базе и выбираем нужную:

Для возможности вносить изменения прямо в базу MS Access выбираем опции, как показано ниже:
![]() |
Тут есть одна небольшая тонкость. Чтобы можно было осуществить прямой доступ к указанной таблице, она должна содержать хотя бы одно проиндексированное поле и не иметь в этом поле повторяющихся значений. На режим связанной таблице(только Чтение) это не распространяется. |
Наконец-то нужная нам таблица открыта:

Теперь, если вы открыли её в режиме Прямого доступа, все изменения в ней будут отражаться и в вашей базе данных! (При условии, естественно, что вы всё сохраните 🙂 … Для этого не забываем Сохранить таблицу и по окончании работы с БД идём Файл>Закрыть соединение с СУБД или жмём соответствующую кнопку на Панели инструментов СУБД :

Как решить аналогичную задачу по подключению к СУБД из ArcGIS 10, можно посмотреть на нашем сайте здесь.
©Simashkov.2011.
02.02.2011 г.

… подхватываем сгенерированный только-что скрипт:

Выглядеть текст скрипта для нашего учебного случая будет приблизительно сл. образом (прим. смысл скрипта в том, что он просто вставляет конструкцией insert into значения, взятые из исходной dbf -таблицы ):

Жмём F5 (или кнопку Выполнить) и в таблице master можем увидеть нашу отконвертированную таким образом dbf-табличку :

О том, как ещё можно экспортировать/импортировать данные из/в MS SQL Server смотрите
© Simashkov.2014
29.03.2014 г.
Ниже приведен пример(образец) оформления в программе Surfer тематической картограммы по показателю кислотности pH для районного агрохимического атласа, созданной в Лаборатории АгроГИС-технологий (г. Калуга). Картограмма создана на основе интерполированной тематической поверхности — в данном случае, по показателю кислотности почв pH по результатам агрохимического обследования Козельского района Калужской области. Масштаб районной картограммы — в 1 см 800 метров.
Пример оформления аналогичной картограммы в ГИС MapInfo смотрите здесь
