转:ITopologicalOperator Buffer调用异常的解决方法(来源网络)
/// <summary>
/// 用拓扑分析求出缓冲区范围。
/// 由于ArcGIS的问题,有时调用会出异常,因此需要循环调用
/// </summary>
/// <param name="oShape">要缓冲区的图形</param>
/// <param name="dbTolerance">缓冲距离</param>
/// <returns>生成的缓冲区图形</returns>
public static IGeometry GetBuffer(IGeometry oShape, double dbTolerance)
{
IGeometry oBuffer = null;
if (oShape == null)
return oBuffer;
ITopologicalOperator pTopo = oShape as ITopologicalOperator;
if (!pTopo.IsSimple) {//如果不是简单图形,进行简化处理
pTopo.Simplify();
}
esriGeometryType iType = oShape.GeometryType;
//参数不正确
if (dbTolerance < 0 && iType != esriGeometryType.esriGeometryPolygon)
return oBuffer;
int iTry = 0;//尝试10次
while (oBuffer == null && iTry <= 10) {
try {
//如果调用不成功,将缓冲距离加0.01倍再试(如果第10次成功,则缓冲距离比原来大了0.09倍)
//如果对缓冲距离要求更严格,可以减少增量的倍数
//根据测试经验,一般最多尝试三次就可以成功
oBuffer = pTopo.Buffer(dbTolerance * (1.0 + 0.01 * iTry));
} catch {
oBuffer = null;
iTry = iTry + 1;
}
}
return oBuffer;
}
PS:代码并不重要,重要的是思路,变通才是王道,也许是当时本人觉得很有想法,所以把代码给留了下来。
转:ITopologicalOperator Buffer调用异常的解决方法(来源网络)的更多相关文章
- ITopologicalOperator Buffer调用异常的解决方法 .异常来自 HRESULT:0x8004023E
最近在做一个分析功能时,需要循环调用Buffer来对图形创建缓冲区.在开发测试时没问题,但拿到客户实际使用时,出现异常. 后来把出异常的数据拿来测试,发现在调用Buffer时出错.但做为参数传入的图形 ...
- 多线程访问winform控件出现异常的解决方法
一. 多线程访问winform控件出现异常的解决方法 1. 问题描述<1> 如果创建某控件的线程之外的其他线程试图调用该控件,则会引发一个 InvalidOperationExcept ...
- SSH乱码和Xshell异常断开解决方法
一.SSH Secure Shell Client中文乱码的解决方法 这是SSH Secure Shell Client多年未解决的短板,要求客户端和服务器端都要‘UTF-8’编码,我终于知道Wind ...
- java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result异常的解决方法
今天在写一个JAVA程序的时候出现了异常:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact repr ...
- Maven常见异常及解决方法
异常1: [ERROR] Failed to execute goal on project biz_zhuhai: Could not resolve dependencies for projec ...
- VS2010中GetMenu()和GetSubMenu(0)为NULL引发异常的解决方法 及添加方法
对于前面问题的分析:来源于http://blog.163.com/yuyang_tech/blog/static/216050083201211144120401/ 解决方法1: //来源:http: ...
- maven常见异常以及解决方法
本文写的是我在整合ssm框架时遇到的一些问题,我估计很多人也会遇到,所以,这里作为一个总结,希望能够帮助大家解决问题 一,加入shiro组件时抛出的异常 加入步骤(略) 问题 1,保存后,无法导入sh ...
- Emgu CV的一个异常的解决方法
今年组里有大项目落我头上了,并不能像去年一样回家还能搞搞Cocos2dX,一把老泪流了下来... 回到正题,由于组里需要做一个显示板的自动测试项目,涉及到Computer Vision.不得不说,这才 ...
- 某APK中使用了动态注册BroadcastReceiver,Launcher中动态加载此APK出现java.lang.SecurityException异常的解决方法
在某APK中,通过如下方法动态注册了一个BroadcastReceiver,代码参考如下: @Override protected void onAttachedToWindow() { super. ...
随机推荐
- 使用C#来编写一个异步的Socket服务器
介绍 我最近需要为一个.net项目准备一个内部线程通信机制. 项目有多个使用ASP.NET,Windows 表单和控制台应用程序的服务器和客户端构成. 考虑到实现的可能性,我下定决心要使用原生的soc ...
- JS 创建元素的三种方法
1.动态创建元素一 document.write() 例如向页面中输出一个 li 标签 <pre class="html" name="code"> ...
- Qt 学习之路 2(65):访问网络(1)
Home / Qt 学习之路 2 / Qt 学习之路 2(65):访问网络(1) Qt 学习之路 2(65):访问网络(1) 豆子 2013年10月11日 Qt 学习之路 2 18条评论 现在 ...
- vue-persist 为 vuex 持久化!!
npm install --save vuex-persist import VuexPersistence from 'vuex-persist' const vuexLocal = new Vue ...
- 洛谷 P3332 BZOJ 3110 [ZJOI2013]K大数查询
题目链接 洛谷 bzoj 题解 整体二分 Code #include<bits/stdc++.h> #define LL long long #define RG register usi ...
- centeros下安装python3
一.查看python版本及安装python3 1. which python 可以看到预装的是2.7版本 2.安装依赖包 yum -y groupinstall "Development t ...
- PIE SDK内存栅格数据的创建
1. 功能简介 目前在地理信息领域中数据包括矢量和栅格两种数据组织形式.每一种数据有不同的数据格式,目前PIE SDK支持多种数据格式的数据创建,下面对内存栅格数据格式的数据创建功能进行介绍. 2. ...
- [V1-Team] WEDO创意论坛技术规格说明书
WEDO 创意论坛技术规格说明书 0x0 文档版本 版本号 说明 v1.0 初步确定技术路线 附Github仓库:WEDO 0x1 技术说明 1. 前端框架 在主流的前端框架中,我们调研了Vue. ...
- mysqldump 命令使用
常见选项:--all-databases, -A: 备份所有数据库--databases, -B: 用于备份多个数据库,如果没有该选项,mysqldump把第一个名字参数作为数据库名,后面的作为表名. ...
- (转)Linux 系统性能分析工具图解读(一、二)
Linux 系统性能分析工具图解读(一.二) 原文:http://oilbeater.com/linux/2014/09/08/linux-performance-tools.html 最近看了 Br ...