ArcEngine中多边形内外环的处理 原创 2012年09月06日 22:49:11 标签: object / null / 数据库 3462 Polylgon对象是由一个或多个Ring对象的有序集合,它可以是由单个Ring对象构成,也可以使用多个Ring组成如下图所示.其中Ring可以分为Outer Ring(外环)和Inner Ring(内环)之分.外环和内环都是有方向的,它们的区别是外环的方向是顺时针的,内环的方向是逆时针.如果多边形只有外环,没有内环,很好处理,难得是如何将内环和外环区…
参考自这篇博文:http://www.cnblogs.com/dabiaoge/p/4491540.html 一开始没仔细看做法,浪费了不少时间.下面是最终实现的效果: 大致流程: 1.随便选取多边形上任意一条边,以比较点和边的中心点做一条射线(这里用的伪射线). 2.用这条射线与其他所有边判断是否相交. 3.将所有与线段相交的数量相加,如果是基数就在多边形内. 特殊情况: 1.刚好在点上或者在线上.实际运用时会有点误差,但不影响. 2.必须是闭合线段,且不能存在包含的情况.但如果是一个数组生成…
关于地理空间数据,经常需要处理两个空间数据的关联关系.有很多种方法可以处理,通过编写程序算法,或者是调用数据库中对应的function.在mysql数据库中,https://dev.mysql.com/doc/refman/5.1/en/functions-for-testing-spatial-relations-between-geometric-objects.html做了详细的介绍,但是它没有以具体的工程实践为例,本文以判断一个点是否落在多边形内的主题,加以简单的扩展. 首先,建立一张简…
如何判断一个点是否在一个多边形内,何时会用到这个场景. 我们就模拟一个真是场景.我们公司是快递公司,在本地区域有6个分点.每个分点有3-5个工人负责附近的快递派遣发送,所以根据每个点的服务区域我们就能大概知道我们的服务范围.如果客户要收发快递我们会告知是否在服务范围内,且那个点离的最近,应派谁去收发快递.…… 网上其实找了好多判断点是否在经纬度的多边形内,但都是Javascript版: http://www.voidcn.com/blog/jq_develop/article/p-3221513…
首先在利用 GEOGRAPHY::STPolyFromText(@GeoStr, 4326) 这样的函数把字符串转换为Geography类型时,字符串里经纬度的顺序是 “经度[空格]纬度”,即“longitude latitude”. 另外就是从谷歌地图里得到的多边形(polygon)的顶点定义的顺序和Sql Server里Geography类型中的顶点定义顺序是相反的,即一个是顺时针定义,一个是逆时针定义(至于哪个是顺时针,哪个是逆时针,没有细究),所以把这些顶点存到数据库的时候,需要先反转一…
第一道点在多边形内的判断题,一开始以为是凸的.其实题意很简单的啦,最后转化为判断一个点是否在一个多边形内. 如果只是简单的凸多边形的话,我们可以枚举每条边算下叉积就可以知道某个点是不是在范围内了.但对于更一般的多边形,要采用的方法可能就要复杂一些,其中一种是叫做射线法的东西,在该点上画一条射线,如果射线与多边形偶数次相交,则说明点在多边形外,否则在多边形内.实践中可以取水平的一条,至于怎么判断就要看下代码了,判断的过程中如何发现点已经在多边形上了则直接返回. 计算几何做的少,则是算是补充了一个盲…
A Round Peg in a Ground Hole Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4438   Accepted: 1362 Description The DIY Furniture company specializes in assemble-it-yourself furniture kits. Typically, the pieces of wood are attached to on…
方法一 算法 : public int isLeft(Point P0, Point P1,Point P2)        {            int abc= ((P1.X - P0.X) * (P2.Y - P0.Y) - (P2.X - P0.X) * (P1.Y - P0.Y));            return abc;                                                               } private bool…
查看某一个点是否在某个多边形内  使用ST_Contains函数 --LINESTRING ( 121.312350 30.971457 , 121.156783 31.092221 , 121.353250 31.278195 , 121.509125 31.157431 , 121.312350 30.971457 )  是把连续的点围成一个多边形 --st_point(a,b) 表示为一个点 --查看某一个点是否在某个多边形内 返回t表示在范围内SELECT  ST_Contains( S…
1.问题描述 最近在写C#下AE的开发,在循环获取数据并修改时碰到了两个问题"超出系统资源"和"超出打开游标最大数":在网上看了一些资料,发现都是说在循环中没有释放已经使用过的对象,但是在循环中实际上是有为com对象赋值为null的,但是还是没法解决.后来想着将对象赋值为null和marshal是不是效果不一样,就特意写了一个简单的循环来测试,代码如下(初级代码,比较乱,请轻喷): public void Test_释放游标方式() { string ssName…
目录 1. 算法思路 2. 具体实现 3. 改进空间 1. 算法思路 判断平面内点是否在多边形内有多种算法,其中射线法是其中比较好理解的一种,而且能够支持凹多边形的情况.该算法的思路很简单,就是从目标点出发引一条射线,看这条射线和多边形所有边的交点数目.如果有奇数个交点,则说明在内部,如果有偶数个交点,则说明在外部.如下图所示: 算法步骤如下: 已知点point(x,y)和多边形Polygon的点有序集合(x1,y1;x2,y2;-.xn,yn;): 以point为起点,以无穷远为终点作平行于X…
http://poj.org/problem?id=1584 题意 按照顺时针或逆时针方向输入一个n边形的顶点坐标集,先判断这个n边形是否为凸包. 再给定一个圆形(圆心坐标和半径),判断这个圆是否完全在n边形内部. 分析 1.判断给出了多边形是不是凸多边形. 2.判断圆包含在凸多边形中:一定要保证圆心在凸多边形里面.然后判断圆心到每条线段的距离要大于等于半径.. #include <iostream> #include <stdio.h> #include <string.h…
判断一点是否在不规则图像的内部算法,如下图是由一个个点组成的不规则图像,判断某一点是否在不规则矩形内部,先上效果图 算法实现如下,算法简单,亲试有效 public class PositionAlgorithmHelper { /// <summary> /// 判断当前位置是否在不规则形状里面 /// </summary> /// <param name="nvert">不规则形状的定点数</param> /// <param n…
再遇攻击 Time Limit: 1000 MS    Memory Limit: 65536 K Total Submit: 253(37 users)   Total Accepted: 56(29 users)       Rating:         Special Judge: No Description Dota中英雄技能攻击会有一个范围,现在释放一个技能给出他的攻击范围和目标英雄的位置,问是否能攻击到.攻击范围保证是一个多边型. Input 有多组测试数据 第一行输入1个整数n…
Cupid's Arrow Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 849    Accepted Submission(s): 306 Problem Description 传说世上有一支丘比特的箭,凡是被这支箭射到的人,就会深深的爱上射箭的人.世上无数人都曾经梦想得到这支箭.Lele当然也不例外.不过他想,在得到这支箭前,他…
题目: 给个n个点的多边形,n个点按顺序给出,给个点m,判断m在不在多边形内部 题解: 网上有两种方法,这里写一种:射线法 大体的思想是:以这个点为端点,做一条平行与x轴的射线(代码中射线指向x轴正方向) 如果交点个数为奇数的话就在内部,如果为偶数(包括0)就在外部 #include<cstdio> #include<algorithm> #include<cstring> #define N 105 using namespace std; int n,m; stru…
原文 ArcEngine中最短路径的实现 最短路径分析属于ArcGIS的网络分析范畴.而ArcGIS的网络分析分为两类,分别是基于几何网络和网络数据集的网络分析.它们都可以实现最短路径功能.下面先介绍基于几何网络的最短路径分析的实现.以后会陆续介绍基于网络数据集的最短路径分析以及这两种方法的区别. 几何网络是一种特殊的特征要素类,由一系列不同类别的点要素和线要素(可以度量并能图形表达)组成的,可在FeatureDataset下面创建, 可进行图形与属性的编辑.包括流向分析和追踪分析两大功能.主要…
在我们一般的程序中,为一般的界面元素添加一定的图标展示,有助于提升界面的整体的美观.结合排版布局,以及固定场景的图标,往往给用户非常好的直观感受:统一.美观.易理解.因此在一般的程序界面中,都尽量在略显单调的界面增加一些图标进行点缀,能够达到较好的整体效果.本文介绍在Winform程序界面中,可以使用自己的图标库,也可以引入DevExpress程序中使用内置的图标,从而实现给开发的程序润色. 1.使用自己的图标库 不管在Web还是在WInform项目里面,开发者积累一定的图标库,包括256,12…
起初没听说过内链外链,只有链接锚文本,在面试中被问到如何查找到页面中的内链和外链,就在想,什么是内链和外链啊??????? 后来面试官给我解释了一下他们的区别,自己稍微懂了,自己当时回答的是通过获取a标签的href属性,查找字符串中是否存在href,后来又被问到如果用选择器怎么用呢?自己不会.... 后来下来又想到这个问题,觉得自己猪啊,有属性选择器来匹配,但是当时为什么回答不上来,因为这个是css3中的,自己只知道,但是不太经常用,所以第一反应没有想到,归根结底还是个熟练度的问题,没有达到熟悉…
(SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开发过程中我们使用了如下几种数据源 1.企业数据库(SDE) 企业数据库需要使用SDE来管理,所以需要使用SDE的Workspace来表示连接.在AE接口中,Workspace是由Factory打开的.代码如下: // //准备连接参数 ESRI.ArcGIS.esriSystem.IPropertySet pPropSet=new PropertySetClas…
昨天画了圆形,判marker是否存在圆形内.今天来画多边形,判断marker在多边形内. 需要引入一个js      <script type="text/javascript" src="http://api.map.baidu.com/library/GeoUtils/1.2/src/GeoUtils.js"></script> 百度地图API覆盖物多边形类 http://developer.baidu.com/map/reference…
凸多边形 Time Limit: 2000 MS    Memory Limit: 65536 K Total Submit: 130(24 users)   Total Accepted: 40(18 users)       Rating:         Special Judge: No Description 已知一个凸多边形A(包含n个点,点按照顺时针给出),和一个点集B(包含m个点),请判断这m个点是否都严格在凸多边形A内部. Input 输入包含多组测试数据. 对于每组测试数据:…
模板题 #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #include<queue> #define lson l,mid,rt<<1 #define rson mid+1,r,rt<<1|1 #define root 1,n,1 #define mid ((l+r)>&g…
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=81Points Within Time Limit: 2 Seconds      Memory Limit: 65536 KB Statement of the Problem Several drawing applications allow us to draw polygons and almost all of them allow us to fill…
程序里面经常会即支持Oracle数据库,又支持sql数据库.而有些Oracle内置函数用的比较多,但在sql中语法有些不同,我做了些整理,希望可以帮助大家.... 1.oracle中的内置函数:oracle 中的round函数(四舍五入)(sql也可以用)oracle 中的trunc返回的是当天日期的[00:00:00]oracle 中的floor,floor(n)取小于等于数值n的最大整数(sql也可以用)oracle 中的length函数 sqlserver中是lenoracle 中的dat…
ThinkPHP中的内置标签 1.内置标签分类 闭合标签 <tag></tag> 开放标签 <tag /> 2.包含文件标签 主要功能:实现对文件的包含(类似于require或include) 基本语法: <include file="模板文件名" /> 特别注意:include标签中模板文件的路径是基于项目的入口文件(index.php)位置. 案例:实现项目首页功能 ① 在View视图模板中,创建一个Public文件夹,作为公用文件夹…
ArcEngine中打开各种数据源(WorkSpace)的连接 (SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开发过程中我们使用了如下几种数据源 1.企业数据库(SDE) 企业数据库需要使用SDE来管理,所以需要使用SDE的Workspace来表示连接.在AE接口中,Workspace是由Factory打开的.代码如下: // //准备连接参数 ESRI.ArcGIS.esriSystem.IProperty…
ArcEngine中打开各种数据源(WorkSpace)的连接 ArcEngine中打开各种数据源(WorkSpace)的连接 (SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开发过程中我们使用了如下几种数据源 1.企业数据库(SDE) 企业数据库需要使用SDE来管理,所以需要使用SDE的Workspace来表示连接.在AE接口中,Workspace是由Factory打开的.代码如下: // //准备连接参数…
/// <summary>/// 判断点是否在多边形内/// </summary>/// <param name="pnt">点</param>/// <param name="pntlist">区域的点集</param>/// <returns></returns>public static bool PointInFeaces(PointF pnt, List<…
原文 ArcEngine中打开各种数据源(WorkSpace)的连接(SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开发过程中我们使用了如下几种数据源 1.企业数据库(SDE) 企业数据库需要使用SDE来管理,所以需要使用SDE的Workspace来表示连接.在AE接口中,Workspace是由Factory打开的.代码如下: // //准备连接参数 ESRI.ArcGIS.esriSystem.IProper…