版块导航
正在加载中...
客户端APP下载
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
有奖起名
(4937)
>
公派出国
(2341)
>
找工作
(2260)
>
博后之家
(2241)
>
考研
(2189)
>
海外博后
(1746)
>
虫友互识
(1447)
>
留学生活
(1440)
>
考博
(1368)
>
留学DIY
(1261)
>
教师之家
(1250)
>
职场人生
(1131)
>
访问学者
(1041)
>
招聘信息布告栏
(990)
>
文学芳草园
(810)
>
育儿交流
(706)
小木虫论坛-学术科研互动平台
»
专业学科区
»
地学
»
3S技术
»
Vb.net+ArcEngine生成点状图层的速度太慢了该怎么办?
11
1/1
返回列表
查看: 2207 | 回复: 10
只看楼主
@他人
存档
新回复提醒
(忽略)
收藏
在APP中查看
zzahkj
木虫
(著名写手)
应助: 42
(小学生)
金币: 2030
帖子: 1540
在线: 468.4小时
虫号: 964751
[交流]
Vb.net+ArcEngine生成点状图层的速度太慢了该怎么办?
Vb.net+ArcEngine生成点状图层的速度太慢了该怎么办?由于我做的是预警预报系统,速度尽可能短,现在生成全部点要好几天,这也太慢了,根本就不适用,请问有什么好的办法解决吗?我的代码如下:
CODE:
Public Sub dianshengcheng()
Dim filePath As String = My.Computer.FileSystem.CurrentDirectory & "\ResultsFileName"
If System.IO.File.Exists(filePath & "\点.shp") Then
MessageBox.Show("点文件已存在")
Main.AxMapControl1.AddShapeFile(filePath, "点")
Else
Dim pShpWksFact As IWorkspaceFactory = New ShapefileWorkspaceFactory()
Dim pFeatWks As IFeatureWorkspace
pFeatWks = CType(pShpWksFact.OpenFromFile(filePath, 0), IFeatureWorkspace)
Const strShapeFieldName As String = "shape"
Dim pFields1 As IFields
Dim pFieldsEdit1 As IFieldsEdit
pFields1 = New FieldsClass()
pFieldsEdit1 = CType(pFields1, IFieldsEdit)
Dim pField1 As IField = New FieldClass()
Dim pFieldEdit1 As IFieldEdit = New FieldClass()
pFieldEdit1.Name_2 = strShapeFieldName
pFieldEdit1.Type_2 = esriFieldType.esriFieldTypeGeometry
pField1 = CType(pFieldEdit1, IField)
Dim pGeomDef1 As IGeometryDef = New GeometryDefClass()
Dim pGeomDefEdit1 As IGeometryDefEdit = New GeometryDefClass()
pGeomDefEdit1 = CType(pGeomDef1, IGeometryDefEdit)
pGeomDefEdit1.GeometryType_2 = esriGeometryType.esriGeometryPoint
pGeomDefEdit1.SpatialReference_2 = Main.AxMapControl1.Map.SpatialReference
'pGeomDefEdit1.HasZ_2 = True
pFieldEdit1.GeometryDef_2 = pGeomDef1
pFieldsEdit1.AddField(pField1)
pFields1 = CType(pFieldsEdit1, IFields)
pField1 = New Field
pFieldEdit1 = pField1
With pFieldEdit1
pFieldEdit1.Length_2 = 10
pFieldEdit1.Name_2 = "温度"
pFieldEdit1.Type_2 = esriFieldType.esriFieldTypeDouble
End With
pFieldsEdit1.AddField(pField1)
pField1 = New Field
pFieldEdit1 = pField1
With pFieldEdit1
pFieldEdit1.Length_2 = 10
pFieldEdit1.Name_2 = "盐度"
pFieldEdit1.Type_2 = esriFieldType.esriFieldTypeDouble
End With
pFieldsEdit1.AddField(pField1)
pField1 = New Field
pFieldEdit1 = pField1
With pFieldEdit1
pFieldEdit1.Length_2 = 10
pFieldEdit1.Name_2 = "水质指标"
pFieldEdit1.Type_2 = esriFieldType.esriFieldTypeDouble
End With
pFieldsEdit1.AddField(pField1)
Dim pFeatureClass1 As IFeatureClass
pFeatureClass1 = pFeatWks.CreateFeatureClass("点", pFields1, Nothing, Nothing, esriFeatureType.esriFTSimple, strShapeFieldName, "")
Dim pPointCol As IPointCollection = New MultipointClass()
Dim sr As StreamReader = New StreamReader(My.Computer.FileSystem.CurrentDirectory & "\shu\dianceng.txt")
Dim str As String = sr.ReadLine()
While str IsNot Nothing
Dim strs() As String = Regex.Split(str, " ")
Dim x As Double = Convert.ToDouble(strs(0))
Dim y As Double = Convert.ToDouble(strs(1))
Dim t As Double = Convert.ToDouble(strs(2))
Dim s As Double = Convert.ToDouble(strs(3))
Dim c As Double = Convert.ToDouble(strs(4))
Dim pPoint As IPoint = New PointClass()
pPoint.X = x
pPoint.Y = y
Dim missing As Object = Type.Missing
pPointCol.AddPoint(pPoint, missing, missing)
str = sr.ReadLine()
Dim i As Integer
For i = 0 To pPointCol.PointCount - 1 Step 1
Dim newFeature As IFeature = pFeatureClass1.CreateFeature
newFeature.Shape = pPointCol.Point(i)
newFeature.Value(newFeature.Fields.FindField("温度")) = t
newFeature.Value(newFeature.Fields.FindField("盐度")) = s
newFeature.Value(newFeature.Fields.FindField("水质指标")) = c
newFeature.Store()
Next
End While
Main.AxMapControl1.Refresh()
Main.AxMapControl1.AddShapeFile(filePath, "点")
MessageBox.Show("文件创建成功")
End If
End Sub
[
Last edited by zzahkj on 2011-5-6 at 15:36
]
回复此楼
» 猜你喜欢
调剂 西南科技大学 环资学院
已经有4人回复
城乡规划学招收调剂 1名
已经有1人回复
地球化学论文润色/翻译怎么收费?
已经有124人回复
【招聘】科研助理+五险一金
已经有868人回复
西南科技大学 调剂 绵阳
已经有10人回复
招聘博士研究生
已经有45人回复
散金币,求基金中标!!
已经有48人回复
高级回复
» 本主题相关价值贴推荐,对您同样有帮助:
昆虫科学怎么这么慢?
已经有3人回复
为什么羧酸盐和醇可以生成酯?
已经有12人回复
急,刚投稿之后回复生成的PDF有问题,请教~~~
已经有5人回复
大家帮忙看看应该怎么办?
已经有7人回复
现在Elsevier旗下的期刊处理速度慢,是不是科学家抵制的结果?
已经有28人回复
Electrochimica Acta现在处理速度貌似很慢???
已经有19人回复
RAW264.7细胞长得很慢吗?
已经有12人回复
(高悬赏求教)SDS-PAGE时间过长,速度慢
已经有5人回复
Vb.net+ArcEngine生成的点状图层不显示?
已经有10人回复
SCI如何写撤稿信,杂志审稿太慢,我要撤稿重新投
已经有4人回复
【求助】求助裸鼠移植瘤生长慢
已经有3人回复
» 抢金币啦!回帖就可以得到:
查看全部散金贴
2026年财务管理、经济与信息技术国际会议 (FMEIT 2026)
+
1
/519
为所有小白祈福
+
1
/404
发个小问卷!并且祈福!基金必中中中!!
+
4
/262
期待你的到来
+
1
/194
合肥工业大学能源动力方向教师招聘~
+
1
/87
好久没有来了,回来看看。
+
1
/79
清华大学环境课题组招聘环境工作专业客座生研究生2-3名(应用导向)
+
1
/18
[求助]请问水下焊接技术有啥进步?
+
1
/16
埃克塞特大学商学院管理科学/运筹/数据科学方向Dr Fanlin Meng课题组招收2027秋博士
+
1
/13
27推免-广州医科大学封红亮教授招收精神医学应用心理学推免生
+
1
/5
北京理工大学-集成电路与电子学院杰青团队-招博士后
+
1
/4
中国科学院生态环境研究中心环境工程相关方向招收保送硕士和联合培养博士和硕士研究生
+
1
/4
中国科学院生物物理研究所田勇课题组招聘联合培养生
+
1
/3
中科院赣江创新院(稀土生物分离方向)李庭刚研究员团队招聘博士后/特别研究助理
+
1
/3
海南大学化学院—功能分子器件团队2027博士招生+博士后招聘
+
1
/2
华南理工,博士后
+
1
/2
北理工集成电路杰青团队 | 诚招科助理
+
1
/2
中科院理化所热声热机团队招聘电气工程专业(电机方向)博士后/特别研究助理
+
1
/1
国家级人才团队诚聘生物信息相关专业的科研助理
+
1
/1
中山大学具身智能方向招2027届考核制博士生
+
1
/1
1楼
2011-05-06 15:34:28
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
efeng522
木虫
(初入文坛)
应助: 0
(幼儿园)
金币: 2234.8
帖子: 38
在线: 58.3小时
虫号: 1082724
★
小木虫(金币
+0.5
):给个红包,谢谢回帖
这个要看你数据量的大小,如果数据量不大,那么这个效率肯定是不正常的;如果数据量确实有这么大,你就要考虑是否有必要一次性生成这么多数据,或者在这么大的空间范围内生成数据。
VB不熟,所以代码没细看,只是泛泛而谈,抛砖引玉
赞
一下
(1人)
回复此楼
2楼
2011-05-06 16:07:05
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
zzahkj
木虫
(著名写手)
应助: 42
(小学生)
金币: 2030
帖子: 1540
在线: 468.4小时
虫号: 964751
引用回帖:
Originally posted by
efeng522
at 2011-05-06 16:07:05:
这个要看你数据量的大小,如果数据量不大,那么这个效率肯定是不正常的;如果数据量确实有这么大,你就要考虑是否有必要一次性生成这么多数据,或者在这么大的空间范围内生成数据。
VB不熟,所以代码没细看,只是 ...
数据量还是非常大的,必须得一次性生成这么多数据!我也觉得这个效率不正常,可没有很好的办法解决?
赞
一下
回复此楼
3楼
2011-05-06 16:25:22
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
xiangling1
金虫
(正式写手)
应助: 2
(幼儿园)
金币: 709.2
帖子: 339
在线: 80.9小时
虫号: 1234309
★
小木虫(金币
+0.5
):给个红包,谢谢回帖
zzahkj(金币+10): 2011-05-07 15:43:13
后面的循环可以优化,你把For循环提出来
你把三个属性封装一下,循环一次,把三个属性赋进去值
你这样做出来的点的属性值是不对的
你多写几个函数,把这段代码分解开一定不要循环里面再有循环
速度会增加的
赞
一下
(1人)
回复此楼
4楼
2011-05-06 21:31:46
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
zzahkj
木虫
(著名写手)
应助: 42
(小学生)
金币: 2030
帖子: 1540
在线: 468.4小时
虫号: 964751
引用回帖:
Originally posted by
xiangling1
at 2011-05-06 21:31:46:
后面的循环可以优化,你把For循环提出来
你把三个属性封装一下,循环一次,把三个属性赋进去值
你这样做出来的点的属性值是不对的
你多写几个函数,把这段代码分解开一定不要循环里面再有循环
速度会 ...
谢谢你啊!我去掉了里面一个循环,6000多个点生成要二十几分钟,这个速度是不是还慢呢?我听说一秒钟就可以生成上万个点才是正常的?
赞
一下
回复此楼
5楼
2011-05-07 10:15:32
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
xiangling1
金虫
(正式写手)
应助: 2
(幼儿园)
金币: 709.2
帖子: 339
在线: 80.9小时
虫号: 1234309
★
小木虫(金币
+0.5
):给个红包,谢谢回帖
恩,还是有些慢,6000个点对于计算机来说是小事一桩
如果你的计算机配置可以,瞬间就可以完成的
我以前用c#,5秒左右可以完成,不过没有这么多点
你先再优化一下,如果不行,你可以发给我,我给你调一下
赞
一下
(1人)
回复此楼
6楼
2011-05-07 13:29:02
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
xiangling1
金虫
(正式写手)
应助: 2
(幼儿园)
金币: 709.2
帖子: 339
在线: 80.9小时
虫号: 1234309
★
小木虫(金币
+0.5
):给个红包,谢谢回帖
这要是这儿用到的是文件流的,所以速度稍稍有点慢
赞
一下
(1人)
回复此楼
7楼
2011-05-07 13:31:30
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
zzahkj
木虫
(著名写手)
应助: 42
(小学生)
金币: 2030
帖子: 1540
在线: 468.4小时
虫号: 964751
引用回帖:
Originally posted by
xiangling1
at 2011-05-07 13:31:30:
这要是这儿用到的是文件流的,所以速度稍稍有点慢
那还有没有办法提高速度?
赞
一下
回复此楼
8楼
2011-05-07 15:42:18
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
雷小雨
银虫
(著名写手)
应助: 1
(幼儿园)
金币: 755
帖子: 1042
在线: 169.2小时
虫号: 802809
★
小木虫(金币
+0.5
):给个红包,谢谢回帖
没有运行环境,读了一下代码
在while循环里面,第1次for循环生成pPointCol的第1个点
第2次for循环生成pPointCol的第1~2个点
第3次for循环生成pPointCol的第1~3个点
第N次for循环生成pPointCol的第1~N个点
也就说,第i个点生成了N-i+1次,所以并不是生成了N个点,而是生成了N(N+1)/2个点,时间从O(N)上升到了O(N^2),不知道我理解得对不对
[
Last edited by 雷小雨 on 2011-5-8 at 11:38
]
赞
一下
(1人)
回复此楼
9楼
2011-05-08 11:37:00
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
zzahkj
木虫
(著名写手)
应助: 42
(小学生)
金币: 2030
帖子: 1540
在线: 468.4小时
虫号: 964751
引用回帖:
Originally posted by
雷小雨
at 2011-05-08 11:37:00:
没有运行环境,读了一下代码
在while循环里面,第1次for循环生成pPointCol的第1个点
第2次for循环生成pPointCol的第1~2个点
第3次for循环生成pPointCol的第1~3个点
第N次for循环生成pPointCol的第1~N个点
...
呵呵 是啊 我搞错了 我现在把for循环去掉 速度大概是6000多个点完全生成要二十多分钟,这个速度是快是慢呢,由于我做的是预警系统,十分钟别人都嫌慢,不知还有没有提高速度的方法?
赞
一下
回复此楼
10楼
2011-05-08 12:46:52
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
雷小雨
银虫
(著名写手)
应助: 1
(幼儿园)
金币: 755
帖子: 1042
在线: 169.2小时
虫号: 802809
★
小木虫(金币
+0.5
):给个红包,谢谢回帖
我去看了一下我以前程序的运行记录,60595个点,1小时52分钟,跟你这个速度差不多,算法跟你一样的
[
Last edited by 雷小雨 on 2011-5-8 at 14:56
]
赞
一下
(1人)
回复此楼
11楼
2011-05-08 14:50:20
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
相关版块跳转
数理科学综合
机械
物理
数学
农林
食品
地学
能源
信息科学
土木建筑
航空航天
转基因
我要订阅楼主
zzahkj
的主题更新
11
1/1
返回列表
如果回帖内容含有宣传信息,请如实选中。否则帐号将被全论坛禁言
普通表情
龙
兔
虎
猫
高级回复
(可上传附件)
百度网盘
|
360云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
最具人气热帖推荐
[查看全部]
作者
回/看
最后发表
[
基金申请
]
93BebMhtakh前后11位开头都是大写
+4
且听虎啸
2026-08-17
5/250
2026-08-18 00:49
by
蔡棒棒菂
[
基金申请
]
欢迎发来filecode的Mz6后的代码验证其规律
+37
医学老男孩
2026-08-13
86/4300
2026-08-18 00:18
by
longsantaizi
[
基金申请
]
感觉是下周放榜了
+6
angus9576
2026-08-17
11/550
2026-08-17 23:57
by
angus9576
[
基金申请
]
filecode=后面第一个是大写字母
+8
wangze12014
2026-08-14
10/500
2026-08-17 17:05
by
xter9665
[
基金申请
]
时间戳变了,能看出什么问题?
+4
基诺咪客
2026-08-17
4/200
2026-08-17 16:10
by
Vivilian
[
基金申请
]
哪位老哥知道今年的国自然具体哪一天放榜?
+12
Ldrop2023
2026-08-13
15/750
2026-08-17 15:02
by
小豌豆_发芽
[
基金申请
]
时间戳又变了8-15
+13
archvillain
2026-08-15
25/1250
2026-08-16 20:13
by
zhaosm1982
[
基金申请
]
2027广东省杰青
+3
奶牛小黑
2026-08-15
6/300
2026-08-16 20:07
by
奶牛小黑
[
基金申请
]
快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。
+3
Tide man
2026-08-14
3/150
2026-08-16 17:47
by
jurkat.1640
[
基金申请
]
咱们一起用铁证分析2026国家社科基金中标与否
+7
启萌科技
2026-08-12
26/1300
2026-08-16 12:35
by
启萌科技
[
基金申请
]
有时候,自然基金真的不能太认真 (我的申报经验)
+10
majunge000
2026-08-11
12/600
2026-08-16 08:18
by
xli1984
[
精细化工
]
招聘 金属平磨液,抛光液研发工程师
+3
小天0311
2026-08-14
3/150
2026-08-16 07:31
by
H9PLUS
[
基金申请
]
各位道友,我要去昆明玩几天,回来见。
+7
Tide man
2026-08-14
8/400
2026-08-15 01:11
by
arzu_hma
[
硕博家园
]
读博的好处
+4
lnee
2026-08-11
4/200
2026-08-14 10:20
by
ahsoarli
[
基金申请
]
重要来源:本周末出结果
+10
瞬息宇宙
2026-08-12
10/500
2026-08-13 15:46
by
likettle
[
基金申请
]
不应该看fileCode
+7
且听虎啸
2026-08-12
9/450
2026-08-13 14:27
by
flydreamws
[
基金申请
]
分享一下我之前已中青C的计划书的filecode
+4
布布和一二
2026-08-11
5/250
2026-08-13 12:56
by
cratir
[
基金申请
]
结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。
+3
Tide man
2026-08-12
4/200
2026-08-13 08:35
by
ZJTJZ
[
基金申请
]
2019年青年基金涵评意见,大家看看几个A,几个B?
+11
Tide man
2026-08-11
11/550
2026-08-13 07:35
by
撸猫猫
[
基金申请
]
什么时候出结果,有咨询渠道???
+3
Tide man
2026-08-11
3/150
2026-08-11 17:54
by
kudofaye
信息提示
关闭
请填处理意见
关闭
确定