zoukankan      html  css  js  c++  java
  • 使用Arcglobe 10与3dmax建立三维城市

      随着国家大力推进数字城市的建设,三维城市的建设也是势在必行的。与传统二维地图相比,三维城市在立体层次、视觉效果等感官效果有着很大改进,并且在实际业务中,如规划中的光照分析、楼层高度调整、地块分析等有着二维地图不可比拟的优势。闲话少述,步入正题:

    1.建立影像图层及矢量画

      用arccatalog 10 建立一个gdb数据库,名称为“3dpgd”,建立一个featureClass Layer名为“dixing”,建立一个Raster Layer,名为“Test”

                           

    2.统一坐标系

      由于影像图是38度带的(简单判断所处的带数,用arcmap打开影像文件,看X坐标前两位,即为所在带数),所以选择西安80 ,38度带的投影

      同理,处理Raster Dataset

    3.矢量化

      用ArcMap加载上面处理过的两个图层,选择dixing图层,开始编辑,

    点击“continue”,选择“Polygon”工具,在dixing图层上画上几个面如下图所示:

      到目前为止,这两个图层可以在arcglobe中显示了,可以试着用arcglobe加载了。

    4.arcglobe加载矢量好的图层

      打开arcglobe,在左侧树形菜单根右键或点击 ,加载以上两个图层,选中“dixing”右键“Zoom to Layer”,即可看到两个图层的内容。

      注意:此时影像图层可能会出现变形,如下图

      这时把左侧菜单“Elevation layers”节点下的 选项去掉,即可恢复正常,如下图所示:

    5.图层转换

       1)featureclass转换成multipatch

      选择ArcToolbox   ->3d Analyst Tools -> Lyaer 3D to Feature Class  工具,将dixing转换成dixingmulti.

             2)FeatureClass 转换 DWG

        选择 ArcToolbox  ->  Conversion Tools  -->  To CAD  -->  Export to CAD:

    将dixing转换为dixing.dwg

    6.建立模型

      将dixing.dwg导入3dmax 2014,单位选择“米”

      注意:如果线条没有闭合,需进行以下操作:

      选择“修改 ”,选中“可编辑样条线”

      按下“CTRL+A”

      在选择“焊接”

      在“修改器列表”中选择“挤出”,把“数量”这个属性设置为“76.5m”

      设置材质

      按下“M”,调出材质编辑器,选中 ,选择 漫反射后的按钮,调出材质浏览器,选中“贴图……标准……位图”,双击“位图”,选择一张图片,打开, ,点击 ,把贴图应用到选中的模型中,但是模型并未加载该贴图,单击 这个按钮,显示出贴图。

      将生成好的模型导出3ds文件,保存:

      记得把这个选项勾上,否则用Import 3D Tool导入Arcglobe中时,模型的贴图会出现错位,拉伸,如下图所示(左为错位,右为正常):

      注:请把贴图和导入的3DS文件放在同一目录,并且重新用3Dmax导入这个模型,并在材质编辑器中重新指定一下这个材质。如下图所示:

    7.导入模型方法一

      在第4步arcglobe窗口中,添加“Add Floating Data”,把”dixingmulti”图层加载上去。

      选择3D Editor 工具, “start Editing”,选择“dixingmulti”

      在create Feature 窗口中选择insert tool 工具:

      在地图窗口中单击,在弹出的文件浏览框中,选择第6步导出的模型:

    打开,

     

      把模型的位置用3D  Editor的工具摆好后即可。

      注:这种方法试好久,也没有把材质加载上去。

    8.导入模型方法二

      利用 Arcgis 的 Import 3D Tool导入

      选择ArcToolBox>3D  Analyst Tools >Conversion>From File >Import 3D Files,双击,

      1)选择3DS文件

      2)选择输入目录

      3)选择空间引用

      注意:这一步必须选择导入,否则转换后multipatch中的模型没有材质。有材质的模型导出的MultiPatch图层应放进GeoDatabase中。

      在这里,导入的是“dixing”图层的空间坐标信息,之后点击OK。

      之后,等待转换和加载,最终图如下:

  • 相关阅读:
    Windows操作系统堆和栈的区别
    API1——CppSparseFile
    typedef struct 用法详解和用法小结
    开发人员应该用好的一些网站
    Windows编程中的堆管理
    在VC中编译、运行程序的小知识点
    Script:列出数据库中5%以上链式行的表
    解决Linux上11g的ORA00845错误
    Oracle内部错误:ORA00600[kfioTranslateIO03]一例
    Oracle内部错误:ORA00600[2608]一例
  • 原文地址:https://www.cnblogs.com/jinlun/p/3380307.html
Copyright © 2011-2022 走看看