Мне нужно взять файл 2D-формы в формате «.shp», который принимает ArcGIS, и добавить 3D-информацию, предоставленную растровой ЦМР. Я ищу, как это сделать с помощью ArcObjects API. Я хотел бы сделать это на C#, но приветствуются примеры на любом языке .NET. Единственное, что мне удалось найти, — это описание того, как сделать это вручную в одном из настольных приложений ArcGIS. Понравится эта полезная статья HowTo или замечательный полный цветные иллюстрации на странице 22 этого учебника. Это здорово и все такое, но мне нужно использовать эту функцию в середине автоматизированной цепочки операций. Я не хочу иметь ручной шаг посередине.
Как я могу получить программный доступ к команде «Возможности в 3D» на панели инструментов ArcGIS 3D Analyst?
Ответы (1)
ХОРОШО. Я понял. Я записываю план того, что я сделал здесь, на случай, если кто-то еще столкнется с той же проблемой.
Ключевым методом является ISurface.InterpolateShape. Он скопирует существующую 2D-геометрию IGeometry и добавит к ней 3D-информацию с поверхности (растровой или TIN). Я перевел этот пример кода VB6 с VB6 на C# , и изменил его, чтобы вызывать InterpolateShape для каждой скопированной IGeometry во входной форме FeatureClass перед вставкой в выходной FeatureClass.
Я не буду размещать здесь какой-либо код, потому что я разработал его на деньги моей компании, но этого должно быть достаточно, чтобы разобраться в нем достаточно быстро. Надеюсь, это поможет другим разработчикам быстрее справиться с проблемой.
person
A. Levy
schedule
04.01.2010