Как получить программный доступ к команде «Функции для 3D» панели инструментов ArcGIS 3D Analyst? - PullRequest
1 голос
/ 23 декабря 2009

Мне нужно взять файл 2D-формы в формате ".shp", который принимает ArcGIS, и добавить 3D-информацию, предоставленную растровой ЦМР. Я ищу, как это сделать с помощью ArcObjects API. Я хотел бы сделать это на C #, но примеры на любом языке .NET приветствуются. Единственное, что мне удалось найти, - это описание того, как сделать это вручную в одном из настольных приложений ArcGIS. Как эта полезная статья HowTo или замечательные полноцветные иллюстрации на стр. 22 этого урока . Это здорово и все, но мне нужно использовать эту функцию в середине автоматизированной цепочки операций. Я не хочу делать ручной шаг в середине.

1 Ответ

1 голос
/ 04 января 2010

OK. Я понял. Я записываю план того, что я сделал здесь, на случай, если кто-то столкнется с той же проблемой.

Ключевой метод - ISurface.InterpolateShape . Он скопирует существующую 2D IGeometry и добавит в нее трехмерную информацию с поверхности (растр или TIN). Я перевел этот пример кода VB6 с VB6 на C # и изменил его так, чтобы он вызывал InterpolateShape для каждой скопированной IGeometry во входной форме FeatureClass перед вставкой его в выходной класс FeatureClass.

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

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