GIS算法——点是否在指定区域内
代码:
GPoint = record
X: Double; //经度,也使用于任何座标
Y: Double; //纬度
end;
GRange = array of GPoint;
函数返回true 点为在区域内
function GPointInPolygonX(P: GPoint; L: GRange): Boolean;
var
Num, i: Integer;
a, da, suma, pa, a0: double;
dp0, dp1: double;
twopi, pi: double;
begin
Num := Length(L);
pi := 3.1415926535897932384626433832795;
twopi := 2.0 * pi;
suma := 0.0;
dp0 := L[0].x - p.x;
dp1 := L[0].y - p.y;
a0 := ArcTan2(dp1, dp0);
if a0 < 0.0 then
a0 := a0 + twopi;
pa := a0;
for i := 1 to Num - 1 do
begin
dp0 := L[i].x - p.x;
dp1 := L[i].y - p.y;
a := ArcTan2(dp1, dp0);
if a < 0.0 then
a := a + twopi;
da := a - pa;
if da < -pi then
da := da + twopi; //insure the direction is croccet
if da > pi then
da := da - twopi;
suma := suma + da;
pa := a;
end;
da := a0 - pa;
if da < -pi then
da := da + twopi;
if da > pi then
da := da - twopi;
suma := suma + da;
//return (int)((fabs(suma)+1.0e-5)/twopi);
if floor((abs(suma) + 1.0E-5) / twopi) = 0 then
Result := False
else
Result := True;
end;
分享到:
相关推荐
在本教程中,“vc开发GIS矢量图形系统——开发实例剖析”主要涵盖了使用Microsoft Visual C++(VC++)开发地理信息系统(GIS)中矢量图形系统的技术和实践。GIS是地理信息科学的重要组成部分,用于存储、处理、分析...
Voronoi图是一种将平面上的一组点划分成若干个区域的数据结构,每个区域由一个点定义,区域内所有点到该定义点的距离比到任何其他定义点的距离都要近。在解决实际问题时,常常需要在Voronoi图中找出两个点之间的最短...
6. 缓冲区分析:在GIS中,缓冲区分析常用于创建距离特定点、线或面一定范围内的区域,这在规划、交通分析等领域非常有用。 7. 编辑与修改:GIS源码还会包含对现有地理对象的编辑功能,如添加、删除、移动和合并等,...
### 遥感和GIS技术在黄河中上游流域湿地信息提取中的应用 #### 研究背景及意义 湿地作为地球上宝贵的自然资源之一,在维持生态平衡、保护生物多样性方面发挥着不可替代的作用。随着人类活动的增加和技术的进步,...
然而,当前大多数GIS系统的主要功能集中在空间数据的获取、存储、更新、查询、运算、显示及制图等方面,对于复杂的空间分析问题,如区域规划与生产力布局等决策问题的支持能力有限。为了克服这一局限,GIS中引入了...
首先,系统采用三角定位算法,通过三个不共线的定位接入点(AP)——AP1、AP2和AP3,构建三个圆,当终端设备(如GIS中的传感器)出现在可测范围内,其位置即为这三个圆的交点。由于实际工程中的误差,交点被理解为一...
这个坐标系统将地球表面分为60个六度带,每个带内再按照纬度划分出一系列的平行带,使得在局部区域内可以实现线性比例尺的精确映射,方便测量和计算。 投影转换工具——utm,是专门用于在不同地理坐标系之间进行...
常见的投影方法有墨卡托投影、UTM(Universal Transverse Mercator)投影等,它们在特定区域内可以保持形状、方向或比例尺的一致性,但不可避免地会产生变形。在WebGIS应用中,选择合适的投影坐标系对于地图显示和...
GIS的应用非常广泛,不仅在资源调查、环境评估、区域规划等领域有着重要作用,还在交通、城市建设、能源、农业、测绘等行业得到了广泛应用。 #### 二、地理信息系统的发展过程 ##### 2.1 国外GIS的发展历程 - **...
通过这些技术手段,研究人员能够对区域内发生的景观变化进行长期监测,并分析其背后的原因及影响因素。具体来说: - **数据获取与处理**:利用卫星图像获取高分辨率的地表信息,并结合GIS软件进行数据处理与空间...
它将地球曲面转换为平面,使得地图上的角度保持不变,而长度有一定的误差,但控制在可接受范围内。本次分享的是一个基于VB.NET编程语言实现的高斯投影坐标转换程序,是作者在大学期间参加测绘技能大赛的成果,旨在...
在二维空间中,这四个点可以构成一个平面区域,而双线性内插则是用此区域上一个二次曲面的表达式来寻找目标点的高程值。这一过程不仅需要线性插值概念,还涉及线性代数中的矩阵运算,如矩阵乘法以及逆矩阵计算。 在...
在“GIS和空间分析的基本方法[1]-论文.zip”这个压缩包中,包含了一份名为“GIS和空间分析的基本方法[1]-论文.doc”的文档,我们可以推测这份论文主要探讨了GIS技术的核心——空间分析的基本方法。空间分析是GIS的...
尤其是在地理信息系统(GIS)、虚拟战场模拟以及大型三维游戏开发等领域,高效且快速的地形渲染对于用户体验至关重要。然而,当面临超大规模地形的实时渲染时,传统的图形渲染方法面临着巨大的挑战。 #### 研究问题...
为了减少噪声影响并确保边缘的连续性,可以通过在该点周围的小区域内进行多方向的判断值计算来进一步确认。例如,在水平、垂直、对角线方向上计算该点与其邻域内点的灰度差异,进而决定是否将其标记为边缘点。 ####...