- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AE 最短路径分析
ArcEngine 最短路径分析
using System;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.NetworkAnalysis;
namespace GisEditor
{
/// summary
/// 最短路径分析
/// /summary
public class ClsPathFinder
{
?? private IGeometricNetwork m_ipGeometricNetwork;
?? private IMap m_ipMap;
?? private IPointCollection m_ipPoints;
?? private IPointToEID m_ipPointToEID;
?? private double m_dblPathCost =0;
?? private IEnumNetEID m_ipEnumNetEID_Junctions;
?? private IEnumNetEID m_ipEnumNetEID_Edges;
?? private IPolyline??? m_ipPolyline;
?? #region Public Function
?? //返回和设置当前地图
?? public IMap SetOrGetMap
?? {
??? set{ m_ipMap = value;}
??? get{return??? m_ipMap;}
?? }
?? //打开几何数据集的网络工作空间
?? public void OpenFeatureDatasetNetwork(IFeatureDataset FeatureDataset)
?? {
??? CloseWorkspace();???
??? if (!InitializeNetworkAndMap(FeatureDataset))
???? Console.WriteLine( 打开network出错);
?? }
?? //输入点的集合
?? public IPointCollection StopPoints
?? {
??? set{m_ipPoints= value;}
??? get{return??? m_ipPoints;}
?? }
???
?? //路径成本
?? public double PathCost
?? {
??? get {return m_dblPathCost;}
?? }
??
?? //返回路径的几何体
?? public IPolyline PathPolyLine()
?? {
??? IEIDInfo ipEIDInfo;
??? IGeometry ipGeometry;????
??? if(m_ipPolyline!=null)return m_ipPolyline;
???
??? m_ipPolyline = new PolylineClass();
??? IGeometryCollection ipNewGeometryColl = m_ipPolyline as IGeometryCollection;
???
??? ISpatialReference ipSpatialReference = m_ipMap.SpatialReference;
??? IEIDHelper ipEIDHelper = new EIDHelperClass();
??? ipEIDHelper.GeometricNetwork = m_ipGeometricNetwork;??
??? ipEIDHelper.OutputSpatialReference = ipSpatialReference;
??? ipEIDHelper.ReturnGeometries = true;
??? IEnumEIDInfo ipEnumEIDInfo = ipEIDHelper.CreateEnumEIDInfo(m_ipEnumNetEID_Edges);
??? int count = ipEnumEIDInfo.Count;
??? ipEnumEIDInfo.Reset();
??? for(int i =0;icount;i++)
??? {
???? ipEIDInfo = ipEnumEIDInfo.Next();
???? ipGeometry = ipEIDInfo.Geometry;
???? ipNewGeometryColl.AddGeometryCollection( ipGeom
文档评论(0)