24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1275  |  回复: 14
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zzahkj

木虫 (著名写手)

[交流] 【求助】ArcEngine二次开发如何生成等值线?已有3人参与

ArcEngine二次开发如何生成等值线?给点思路或者代码?最好是VB.net语言的!非常感谢!
回复此楼

» 收录本帖的淘帖专辑推荐

二次开发&仿真优化

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

不要迷恋哥,哥只是一个过客!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzahkj

木虫 (著名写手)

引用回帖:
Originally posted by xiangling1 at 2011-04-11 18:50:32:
一下是Raster生成等高线的例子,希望对你有用:
   
    Dim pRasterLayer As ESRI.ArcGIS.Carto.IRasterLayer = New ESRI.ArcGIS.Carto.RasterLayer()
    pRasterLayer = AxMapControl1.Map.Layer(ComboB ...

谢谢你的回答,我用你的代码试了一下,我只改了这句pRasterLayer = Main.AxMapControl1.Map.Layer(0)而出现以下错误时怎么回事啊?
无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“ESRI.ArcGIS.Carto.IRasterLayer”。此操作失败的原因是对 IID 为“{D02371C7-35F7-11D2-B1F2-00C04F8EDEFF}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 不支持此接口 (异常来自 HRESULT:0x80004002 (E_NOINTERFACE))。
不要迷恋哥,哥只是一个过客!
3楼2011-04-11 21:57:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 15 个回答

xiangling1

金虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
xuliforever(金币+1): 欢迎常来地学版交流。 2011-04-12 22:33:54
引用回帖:
Originally posted by zzahkj at 2011-04-11 13:13:11:
ArcEngine二次开发如何生成等值线?给点思路或者代码?最好是VB.net语言的!非常感谢!

一下是Raster生成等高线的例子,希望对你有用:
   
    Dim pRasterLayer As ESRI.ArcGIS.Carto.IRasterLayer = New ESRI.ArcGIS.Carto.RasterLayer()
    pRasterLayer = AxMapControl1.Map.Layer(ComboBox1.SelectedIndex) //选择Raster图层

    Dim pIRaster As ESRI.ArcGIS.Geodatabase.IRaster = pRasterLayer.Raster
    Dim pSurfaceOp As ESRI.ArcGIS.GeoAnalyst.ISurfaceOp = New ESRI.ArcGIS.GeoAnalyst.RasterSurfaceOp()

    Dim pGeoDataset As ESRI.ArcGIS.Geodatabase.IGeoDataset
    pGeoDataset = pSurfaceOp.Contour(pIRaster, 50.0) //是获取等高线数据,50位等高线的间距。

    Dim pFeatureLayer As ESRI.ArcGIS.Carto.IFeatureLayer = New ESRI.ArcGIS.Carto.FeatureLayer()
    Dim pFeatureClass As ESRI.ArcGIS.Geodatabase.IFeatureClass
    pFeatureClass = pGeoDataset

    pFeatureLayer.Name = "等高线"
    pFeatureLayer.FeatureClass = pFeatureClass

    AxMapControl1.Map.AddLayer(pFeatureLayer)
黄沙百战穿金甲,不破楼兰终不还!
2楼2011-04-11 18:50:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiangling1

金虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
xuliforever(金币+1): 欢迎常来地学版交流。 2011-04-12 22:34:04
引用回帖:
Originally posted by zzahkj at 2011-04-11 21:57:32:
谢谢你的回答,我用你的代码试了一下,我只改了这句pRasterLayer = Main.AxMapControl1.Map.Layer(0)而出现以下错误时怎么回事啊?
无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“ESRI.A ...

应该是一下两种可能:
1、你的DEM有问题
2、你的图层索引不对

你跟踪代码,看一下那句对应的图层名称是不是DEM对应的那个图层?
黄沙百战穿金甲,不破楼兰终不还!
4楼2011-04-12 01:00:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzahkj

木虫 (著名写手)

引用回帖:
Originally posted by xiangling1 at 2011-04-12 01:00:39:
应该是一下两种可能:
1、你的DEM有问题
2、你的图层索引不对

你跟踪代码,看一下那句对应的图层名称是不是DEM对应的那个图层?

还是不大明白!pRasterLayer = AxMapControl1.Map.Layer(ComboBox1.SelectedIndex) //选择Raster图层
这是要选择什么图层?我需要对mxd做什么处理?我在之前是不是要编写代码做插值?刚刚接触这个,麻烦你说得详细点,谢了!
不要迷恋哥,哥只是一个过客!
5楼2011-04-12 14:38:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见