Какие редакторы Windows GIS поддерживают создание 3D-файлов формы, кроме ArcGIS с 3D Analyst?

10

Мне нужно найти и простой и доступный способ создания трехмерных линейных шейп-файлов в Windows, чтобы один из наших пользователей мог проверить наш инструмент. Мы неверно предположили, что он имел доступ к исходным данным 3D-файла формы или имел способ их получения.

Я нашел техническую статью ArcGIS о том, как преобразовать 2D-файл формы в 3D-файл ; однако для этого требуется ArcGIS с 3D Analyst. У меня есть ArcGIS, но у меня нет лицензии 3D Analyst, поэтому я не могу повторить шаги из статьи. У пользователя также есть ArcGIS, но я не знаю, есть ли у него лицензия 3D Analyst. Несмотря на это, я хотел бы проверить процесс перед отправкой ему статьи.

Ранее я создавал трехмерные шейп-файлы, используя OGR / GDAL C ++ API и OGR / GDAL Python API, включенные в FWTools и OSGeo4W. Я подумал о написании простой программы или скрипта Python, который может анализировать входной текстовый файл. Решение Python потребовало бы от пользователя установки среды выполнения Python с поддержкой GDAL, поэтому я не решаюсь придерживаться этого подхода.

MapWindow 4.7.5 имеет опцию 3D вектор в 2D вектор в ГИС Инструменты | Векторное меню, а не наоборот. Я только что проверил, и MapWindow имеет версию 4.8.3, но не смог найти никаких ссылок на трехмерные шейп-файлы или векторные объекты в своей онлайн-документации.

Существует ли редактор ГИС для Windows (кроме ArcGIS with 3D Analyst), который поддерживает создание 3D-файлов форм?

Хайме Сото
источник
2
Autocad Map 3d - это просто, но не дешево. Это создаст 3d шейп-файлы.
Брэд Несом

Ответы:

5

Используя ArcCatalog (или набор инструментов ArcCatalog из ArcMap), создайте новый шейп-файл и установите флажок «Координаты будут содержать значения Z». Установите пространственную привязку, включая вертикальную SR. В ArcMap запустите сеанс редактирования, создайте объект (не имеет значения, его точка / линия / многоугольник). После создания объекта выберите его (все еще в сеансе редактирования) и нажмите «Свойства эскиза» на панели инструментов «Редактировать». Вы увидите все вершины для выбранного объекта и сможете редактировать значения X / Y / Z / M, используя таблицу вершин. Этот метод требует только лицензии ArcView и не требует лицензий редактора / аналитика.

Саша Иветик
источник
Это похоже на решение OGR / GDAL за исключением того, что оно использует ArcObjects Java SDK. Я знаю, как решить эту проблему с помощью кода, но хотел посмотреть, существует ли существующее решение в ГИС-редакторе. Было бы неплохо иметь возможность устанавливать трехмерные координаты вершины через пользовательский интерфейс.
Хайме Сото
3
Вы можете установить значение Z трехмерной координаты через ArcMap, когда вы находитесь в сеансе редактирования. Запустите сеанс редактирования, выберите элемент, для которого вы хотите установить координаты, и перейдите в Свойства эскиза. Sketch Properties выведет список всех вершин и позволит вам напрямую установить значения X / Y / Z / M. Тем не менее, он не позволяет конвертировать 2D-> 3D Shapefile, что подразумевает первоначальный вопрос. Вы можете создать Shapefile, используя ArcCatalog напрямую или используя панель инструментов Catalog в ArcMap.
Саша Иветик
Я только что проверил, что вы можете редактировать существующий 3D-файл с помощью метода, который вы описали. Я также проверил, что вы можете создать 3D-файл формы через ArcCatalog. Пожалуйста, сделайте этот комментарий ответом, чтобы я мог отметить его как принятый ответ.
Хайме Сото
@Jaime: я изменил ответ, чтобы отразить создание 3D-шейп-файлов с помощью ArcGIS Desktop.
Саша Иветик
1

Я не знаю о редакторе, поддерживающем это, но если вам нужно что-то программировать, я бы использовал shapelib вместо python / GDAL / ...

http://shapelib.maptools.org/

API-интерфейс прост [1], и если вы статически связываете библиотеку, для преобразования потребуется только один файл .exe.

[1] http://shapelib.maptools.org/shp_api.html

johanvdw
источник
Вы правы, использование shapelib является гораздо более простым решением, чем GDAL / OGR, если мне нужно что-то кодировать.
Хайме Сото