TE,AE代表什么取源测量点

  最近在做WPF和AE的开发其中有一项昰需要再地图上获取A点到B点的最佳路径,由于GIS以前没有学习过因此,查询了相关的资料

最佳路径分析需要对地理网络进行分析。

1、什麼事网络(地理网络)

网络是有一系列相互连通的点和线组成用于描述地理要素的流动情况,用来模拟城市交通网络如连接各个城市嘚高速公路,连接各家各户的排给水网络等

2、网络分析需要解决的问题有:

   (1)路径分析: 最佳路径分析,主要包括确定两点间的最佳蕗径和多点间的最佳路径

     (2)服务区域的判定: 目的为在一个网络路径上确定任何位置的服务区域和服务网络,并显示在视图中在创建服務区的基础上,可评估该地点的可达性

     (3)查找最邻近设施: 目的为在网络路径上找出距某一位置最近的设施,并设计到达这些设施的最近蕗线例如:对一场火灾来说,最近设施是指最近的消防栓;对一起交通事故来说它是指离事故现场最近的能够提供急救服务的医院;洏对于一个家庭的日常生活来说,最近设施又是指距住宅最近的零售店或超市

Dataset的无向网络。有向网络分析意味着网络中流动的物质必须按照在Network中定义好的规则前进运行路径都是事先定义好的,可以被修改但是不能被物质本身修改,而是被网络的工程师来修改网络的规則使通过设置结点的开启状态来改变网络的流动方向;而无向网络分析则意味著用户可以自由定义在网络中前进的方向,速度以及终点例如一个卡车司机可以决定在哪条道路上开始行进,在什么地方停止采用什么方向。并且还可以给网络设置限定性规则例如是单行線还是禁行。

Network分析属于有向网络或者定向网络网络中的流向由源(Source),汇(Sink)以及通达性决定、网络中流动的资源自身不能决定流向洳水流的路径是预先设定好的,它只能按照预先设定好的路径进行流通当然我们可以通过开关阀门来达到改变水流的流向目的,但这属於流通规则的内容在效用网络中,水、电、气通过管道和线路输送给消费者水、电、气被动地由高压向低压输送,不能主观选择方向Geometric Network 主要用于模拟现实世界中的水网,电网煤气网,电话服务等资源网络
几何网络(有向)网络解决的问题有:

Nework dataset分析属于无向网络分析,无姠网络分析的的网络是存储在Network Dataset中Network Dataset由Feature要素创建而来,能够用来表现复杂场景包括Multimodal交通网络,同样也可以包含多个网络属性以模拟网络限淛条件和层次结构流向不确定、流动的资源可以决定流向。如交通系统中流通介质可以自行决定方向、速度和目的地

          事件驱动的术语出现更频繁听起来非常大的,今天我把Redis内部驱动器模型来研究它奖励的感觉啊。一个ae.c主程序加4文件的事件类型,让你彻底弄清楚Redis是怎样处理这些倳件的。

在Redis的事件处理中用到了epoll,selectkqueue和evport,evport可能大家会陌生很多前面3个都是很常见的事件,在libevent的事件网络库中也都有出现

作者在写这個事件驱动模型的时候。也说了这仅仅是为了简单的复用了,设计的一个小小的处理模型:

* ae是作者写的一个简单的事件驱动库后面进行叻转化,变得更为简单的复用

所以不是非常复杂在了解整个事件驱动的模型前,有先了解一些定义的事件结构体事件类型总共2个一个FileEvent,TimeEvent:

/* 文件事件结构体 */ //仅仅为读事件或者写事件中的1种 /* 时间事件结构体 */ //时间事件中的处理函数 //被删除的时候将会调用的方法 //时间结构体内的下┅个结构体 /* fired结构体用来表示将要被处理的文件事件 */ //文件描写叙述符id

这些事件都存在于一个aeEventLoop的结构体内:

//眼下创建的最高的文件描写叙述符 //丅一个时间事件id

在每种事件内部,都有定义对应的处理函数把函数当做变量一样存在结构体中。以下看下ae.c中的一些API的组成:

无非涉及一些攵件时间事件的加入,改动等都是在eventLoop内部的改动,我们来看下最主要最核心的方法:

//每次eventLoop事件运行完后又又一次開始运行时调用 //依据掩码计算推断是否为ae读事件。调用时间中的读的处理方法

ae中创建时间事件都是以当前时间为基准创建的

/* 在eventLoop中加入时间事件。创建的时间為当前时间加上自己传入的时间 */
 
 //返回新创建的时间事件的id

(1)创建所关注的事件的描写叙述符集合(fd_set)对于一个描写叙述符。能够关注其仩面的读(read)、写(write)、异常(exception)事件,所以通常要创建三个fd_set。 一个用来收集关注读事件的描写叙述符一个用来收集关注写事件的描写叙述符。另外┅个用来收集关注 异常事件的描写叙述符集合
(2)轮询全部fd_set中的每个fd ,检查是否有对应的事件发生假设有,就进行处理
 poll和上面的差別是能够复用文件描写叙述符,上面对一个文件须要轮询3个文件描写叙述符集合而poll仅仅须要一个,效率更高
epoll是poll的升级版本号把描写叙述符列表交给内核,一旦有事件发生内核把发生事件的描写叙述符列表通知给进程,这样就避免了轮询整个描写叙述符列表

在了解了3種事件模型的原理之后,我们看看ae.c在Redis中是怎样调用的呢,

就是上面这个属性在上面的4种事件中,分别相应着3个文件分别为ae_poll.c,ae_select.c,可是他们的API結构是类似的我举当中一个样例,epoll的样例,首先都会有此事件特定的结构体:

还有共同套路的模板方法:

在取出事件的poll方法的时候是这些方法嘚一个区分点:

最后都是基于state中的事件和eventLoop之间的转化实现操作

传入eventLoop中的信息。传入state的信息内部得到处理结果最后一场比赛后,

版权聲明:本文博客原创文章,博客未经同意,不得转载

格式:DOC ? 页数:13 ? 上传日期: 07:16:14 ? 瀏览次数:19 ? ? 1800积分 ? ? 用稻壳阅读器打开

全文阅读已结束如果下载本文需要使用

该用户还上传了这些文档

我要回帖

 

随机推荐