创建ServiceArea
/// <summary>
/// Services the area.
/// </summary>
/// <param name="networkDataset">The network dataset.</param>
public void ServiceArea(INetworkDataset networkDataset)
{
log.WriteLog("开始创建ServiceArea...");
IWorkspaceFactory workspaceFactory = new ShapefileWorkspaceFactoryClass();
IWorkspace workspace = workspaceFactory.OpenFromFile(Functions.g_WorkSpacePath, );
IFeatureWorkspace featureWorkspace = workspace as IFeatureWorkspace;
CreateSolverContext(networkDataset);
if (!LoadLocations(featureWorkspace, Functions.g_Hospital))
{
log.WriteLog("LoadLocations失败!");
}
log.WriteLog("ServiceArea创建完成!");
}
/// <summary>
/// Geodatabase function: get network dataset
/// </summary>
/// <param name="networkDataset">Input network dataset</param>
/// <returns>DE network dataset</returns>
public IDENetworkDataset GetDENetworkDataset(INetworkDataset networkDataset)
{
// Cast from the network dataset to the DatasetComponent
IDatasetComponent dsComponent = networkDataset as IDatasetComponent;
// Get the data element
return dsComponent.DataElement as IDENetworkDataset;
}
/// <summary>
/// Create NASolver and NAContext
/// </summary>
/// <param name="networkDataset">Input network dataset</param>
private void CreateSolverContext(INetworkDataset networkDataset)
{
if (networkDataset == null) return;
//Get the Data Element
IDENetworkDataset deNDS = GetDENetworkDataset(networkDataset);
INASolver naSolver = new NAServiceAreaSolverClass();
m_NAContext = naSolver.CreateContext(deNDS, naSolver.Name);
((INAContextEdit)m_NAContext).Bind(networkDataset, new GPMessagesClass());
}
/// <summary>
/// Loads the locations.
/// </summary>
/// <param name="featureWorkspace">The feature workspace.</param>
/// <param name="inputFacilities">The input facilities.</param>
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
private bool LoadLocations(IFeatureWorkspace featureWorkspace, string inputFacilities)
{
IFeatureClass inputFeatureClass = null;
try
{
inputFeatureClass = featureWorkspace.OpenFeatureClass(inputFacilities);
}
catch (Exception)
{
log.WriteLog("Specified input feature class does not exist");
return false;
}
INamedSet classes = m_NAContext.NAClasses;
INAClass naClass = classes.get_ItemByName("Facilities") as INAClass;
// delete existing locations, except barriers
naClass.DeleteAllRows();
// Create a NAClassLoader and set the snap tolerance (meters unit)
INAClassLoader naClassLoader = new NAClassLoaderClass();
naClassLoader.Locator = m_NAContext.Locator;
((INALocator3)naClassLoader.Locator).MaxSnapTolerance = ;
naClassLoader.NAClass = naClass;
// Create field map to automatically map fields from input class to NAClass
INAClassFieldMap naClassFieldMap = new NAClassFieldMapClass();
naClassFieldMap.CreateMapping(naClass.ClassDefinition, inputFeatureClass.Fields);
naClassLoader.FieldMap = naClassFieldMap;
// Avoid loading network locations onto non-traversable portions of elements
INALocator3 locator = m_NAContext.Locator as INALocator3;
locator.ExcludeRestrictedElements = true;
locator.CacheRestrictedElements(m_NAContext);
// load network locations
int rowsIn = ;
int rowsLocated = ;
IQueryFilter qf = new QueryFilterClass();
qf.WhereClause = "aaaaaaaaaaa";
naClassLoader.Load(inputFeatureClass.Search(qf, true) as ICursor, null, ref rowsIn, ref rowsLocated);
if (rowsLocated <= )
{
log.WriteLog("Facilities were not loaded from input feature class");
return false;
}
// Message all of the network analysis agents that the analysis context has changed
INAContextEdit naContextEdit = m_NAContext as INAContextEdit;
naContextEdit.ContextChanged();
return true;
}
创建ServiceArea的更多相关文章
- Arcgis, ArcEngine, Arcgis Server使用开发汇总 索引
ArcGIS系列软件license及安装: Arcgis SDE10.1 和 Arcgis server10.1的授权文件license tnt_esri.dat Arcgis8.1安装license ...
- In-Memory:在内存中创建临时表和表变量
在Disk-Base数据库中,由于临时表和表变量的数据存储在tempdb中,如果系统频繁地创建和更新临时表和表变量,大量的IO操作集中在tempdb中,tempdb很可能成为系统性能的瓶颈.在SQL ...
- 创建 OVS flat network - 每天5分钟玩转 OpenStack(134)
上一节完成了 flat 的配置工作,今天创建 OVS flat network.Admin -> Networks,点击 "Create Network" 按钮. 显示创建页 ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- ABP入门系列(2)——通过模板创建MAP版本项目
一.从官网创建模板项目 进入官网下载模板项目 依次按下图选择: 输入验证码开始下载 下载提示: 二.启动项目 使用VS2015打开项目,还原Nuget包: 设置以Web结尾的项目,设置为启动项目: 打 ...
- 记一次tomcat线程创建异常调优:unable to create new native thread
测试在进行一次性能测试的时候发现并发300个请求时出现了下面的异常: HTTP Status 500 - Handler processing failed; nested exception is ...
- 在WPF中使用依赖注入的方式创建视图
在WPF中使用依赖注入的方式创建视图 0x00 问题的产生 互联网时代桌面开发真是越来越少了,很多应用都转到了浏览器端和移动智能终端,相应的软件开发上的新技术应用到桌面开发的文章也很少.我之前主要做W ...
- 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用
由于ASP.NET Web API具有与ASP.NET MVC类似的编程方式,再加上目前市面上专门介绍ASP.NET Web API 的书籍少之又少(我们看到的相关内容往往是某本介绍ASP.NET M ...
- TODO:GitHub创建组织的步骤
TODO:GitHub创建组织的步骤 使用GitHub进行团队合作,写这个步骤主要作用是为了OneTODO作为一个团队组织进行代码的分享,让更多人来参与. 使用帐号.密码登录GitHub 2.右上角加 ...
随机推荐
- SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法
操作步骤: 1. 在 Microsoft Windows 2003 或 Windows XP 桌面上,依次单击"开始"."运行",然后在"打开&quo ...
- Tomcat部署web项目
在Myeclipse中,我们很容易做到这一步:把一个web项目生成war文件 其实在eclipse中,实现这样的功能,也是很简单的. 下面就看一下是怎样操作的吧! 新建一个web项目: 取名为:ecl ...
- 安装mysql后的基本配置
1.添加环境变量 右键 此电脑->属性->高级系统设置->环境变量,在系统变量里面找到Path,双击.点击编辑,将mysql中bin文件的路径添加到最后一行,如:F:\AppSev\ ...
- Hadoop 之 MapReduce 框架演变详解
经典版的MapReduce 所谓的经典版本的MapReduce框架,也是Hadoop第一版成熟的商用框架,简单易用是它的特点,来看一幅图架构图: 上面的这幅图我们暂且可以称谓Hadoop的V1.0版本 ...
- SQL Server 2008 R2——查找最小nIndex,nIndex存在而nIndex+1不存在 求最小连续数组中的最大值
=================================版权声明================================= 版权声明:原创文章 谢绝转载 请通过右侧公告中的“联系邮 ...
- mybatis 配置返回集合collection时只有一条记录
查询语句配置如下: <select id="selectCustomerList" resultMap="CustomerDtoMap" paramete ...
- ubuntu16.04连接android手机蓝牙共享网络热点
最近的想要用android手机蓝牙共享wifi网络给ubuntu16.04系统用,查了好多资料,发现网上很少有有用的.自己实践后分享如下. 第一步:手机与电脑配对: 该步骤比较简单,网 ...
- strcpy 函数的实现
原型声明:extern char *strcpy(char *dest,const char *src); 头文件:string.h 功能:把从src地址开始且含有‘\0’结束符的字符串赋值到以d ...
- makefile之VPATH和vpath的使用
来自阅读陈皓的<跟我一起写makefile> VPATH变量 在一些大的工程中,有大量的源文件,我们通常的做法是把这许多的源文件分类,并存放在不同的目录中.所以,当 make 需要去找寻文 ...
- 你知道 Twitter,但你可能不知道它的 “成长模式” 和 “参与阶梯”
当你为产品创建 “成长模式” 时,你需要回答以下关键问题(类Twitter产品:http://www.jinhusns.com/Products/Download/?type=xcj ): 目标:产品 ...