监控点排序核心算法
来源:互联网 发布:cms监控系统 编辑:程序博客网 时间:2024/06/07 01:11
解决思路及核心算法:
- 将在地图上所画的折线拆分成几个线段(直线),API中的Polyline对象提供了获取每个线段的接口:
Flex API中的POLYLINE接口
JavaScript API中的POLYLINE接口
备注:一条polyline由多个线段组成。
- 计算视频点到折线的垂直点即投影点:
核心算法如下:
/**
* 功能:根据线段的起点、终点和视频点坐标,计算视频点到直线垂直点
* point1:线段的起点
* point2:线段的终点
* point3:视频点
*/
privatefunction getVerticalPoint(point1:MapPoint,point2:MapPoint,point3:MapPoint):void{
//一般式方程aX+bY+c=0
var a:Number = point2.y - point1.y;
var b:Number = point1.x - point2.x;
var c:Number = point2.x*point1.y-point1.x*point2.y;
//计算点到直线的垂直点坐标
var vx:Number = (b*b*point3.x-a*b*point3.y-a*c)/(a*a+b*b);
var vy:Number = (a*a*point3.y-a*b*point3.x-b*c)/(a*a+b*b);
varverticalPoint:MapPoint = new MapPoint(vx,vy,map.spatialReference); //垂直点坐标
var verticalGraphic:Graphic = new Graphic(verticalPoint);
graphicsLayer.add(verticalGraphic); //添加到客户端图层
}
- 判断垂直点是否在此线段上,具体可以使用几何服务或几何引擎(如果使用的是JavaScript API,提供了本地几何引擎操作),里面提供了两个几何之间的是否相交的接口:
JavaScript API本地几何引擎的几何相交判断接口
- 如果垂直点和线段相交,那么再计算垂直点到线段起点的距离,并根据距离的长短来确定视频点的次序。
- 监控点排序核心算法
- 各排序算法核心
- 冒泡排序算法那点事
- 快速排序算法那点事
- java冒泡排序、选择排序、插入排序算法的核心思想及其比较
- spring核心点总结
- Hibernate核心点介绍:
- 性能测试监控点
- 昨晚看了点书上的查找和排序算法
- HDU6165(tarjan算法 强连通缩点,拓扑排序)
- 冒泡排序核心教程
- 拓扑排序核心代码
- 武侠游戏核心追求点
- iOS 核心动画-锚点
- 【JAVA】核心点之注解
- Handler原理核心点笔记
- 基于GPS实时监控点
- 系统的一些监控点
- 我在使用 NPOI 时遇到的问题
- Qt中的读写锁
- 变量定义问题集锦
- 我在使用 NPOI 时遇到的问题
- 【转】APK反编译
- 监控点排序核心算法
- 我在使用 NPOI 时遇到的问题
- Oracle中的Merge函数
- NTC33 iPHONE 7 Red Lucky Draw in iBET(ibet Lucky Draw, iPhone 7 Red, Lucky Draw Promotion)
- ImageView加载图片资源并进行缩放
- Problem--112A--Codeforces--A. Petya and Strings
- 我在使用 NPOI 时遇到的问题
- bzoj1013[JSOI2008]球形空间产生器sphere
- Java连接数据库实例