摘要:
栅格数据获取像元值,使用ISurface.GetElevation(IPoint pnt),功能是实现了,获取的不是像元值,是插值结果。而由于栅格数据是离散的值,每个栅格值代表了特殊的含义,插值之后的结果超出了原有的值域范围,比如原有栅格值是13,14,20,不能插值,而插值之后却 出现了18,完全超出了后续的解析计算的范围,导致了异常。查阅之后,发现像元值的查询使用如下代码实现pRaster.GetPixelValue(0, pRaster.ToPixelRow(pPt.Y), pRaster.ToPixelColumn(pPt.X)) 阅读全文
摘要:
IElement pEle = pLineEle as IElement;pEle.Geometry = pLn;pLn为一个ILine对象,想当然的以为它是IGeometry对象,可以赋值,结果爆出异常值不在预期范围内。解决方法是将ILine转换为IPolyline对象,涉及到一些Geometry的基本操作。贴出一些可用的绘制元素的代码#region 获取RgbColor /// /// 获取RgbColor颜色对象 /// /// /// /// /// 可选参数,透明度.0代表透明... 阅读全文
摘要:
非专业菜鸟,写程序只注重实现,不考虑速度、内存。写了一段自认为很精妙的代码,结果却运行的奇卡无比。一个复杂的计算包含循环的循环循环,我也记不清多少次嵌套循环中,而且循环次数很多,具体就不统计了该程序是一个随机模拟,希望的是大量、快速,所以,而第一次写的程序预计竟然是20秒一次模拟计算,如果想要做10万次模拟的话,那么将近需要50个小时的时间。而随机试验10万次真的一点不多,如果要搞100万次模拟那么这个程序基本是不能用了。想过很多方法去对程序进行优化,后来发现在较底层的循环中有一个对shapefile的查询操作,没一次模拟计算都需要进行4*25*N次查询(N为一变量,100以上)听说数据库查询 阅读全文
摘要:
IQueryFilter pQf = new QueryFilterClass();string squery = string.Format("RowID_={0} AND ColumnID={1}", i, j);pQf.WhereClause = squery;IFeatureCursor pFtCursor = fengeFtCls.Search(pQf, false);IFeature pFeature = pFtCursor.NextFeature();int emtID = (int)pFeature.get_Value(pFeature.Fields.Fin 阅读全文
摘要:
ArcEngine开发查询时出现异常摘自:http://shaopengluo.blog.163.com/blog/static/1314464152011112144855776/检查发现是QueryFilter.WhereClause语句在查询shapefile格式的图层出现了问题,试验在查询gdb格式的图层不会报错。打开ArcGIS比较了两种格式的属性查询存在以下的区别: 1.shapefile的字段名用双引号如:"fieldName"而GDB的采用[fieldName]格式; 2.shapefile的模糊查询用like '%A%' 而GDB用like 阅读全文