`
mikewang
  • 浏览: 10226 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

GIS算法——点是否在指定区域内

阅读更多
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矢量图形系统——开发实例剖析

    在本教程中,“vc开发GIS矢量图形系统——开发实例剖析”主要涵盖了使用Microsoft Visual C++(VC++)开发地理信息系统(GIS)中矢量图形系统的技术和实践。GIS是地理信息科学的重要组成部分,用于存储、处理、分析...

    dijkstra算法—求解最短路问题

    Voronoi图是一种将平面上的一组点划分成若干个区域的数据结构,每个区域由一个点定义,区域内所有点到该定义点的距离比到任何其他定义点的距离都要近。在解决实际问题时,常常需要在Voronoi图中找出两个点之间的最短...

    本代码主要接受在地理信息系统GIS中常用的一些绘制方法

    6. 缓冲区分析:在GIS中,缓冲区分析常用于创建距离特定点、线或面一定范围内的区域,这在规划、交通分析等领域非常有用。 7. 编辑与修改:GIS源码还会包含对现有地理对象的编辑功能,如添加、删除、移动和合并等,...

    GIS领域最短路径搜索

    1959年,荷兰计算机科学家Edsger Wybe Dijkstra提出了一种用于解决单源最短路径问题的经典算法——Dijkstra算法。该算法能够在有向或无向的加权图中找到从起点到所有其他顶点的最短路径,前提是图中不存在负权重的边...

    一种新的 GIS智能分析框架———GIS智能体 (2005年)

    然而,当前大多数GIS系统的主要功能集中在空间数据的获取、存储、更新、查询、运算、显示及制图等方面,对于复杂的空间分析问题,如区域规划与生产力布局等决策问题的支持能力有限。为了克服这一局限,GIS中引入了...

    一个通用的快速三角化算法

    本章节将详细介绍一种新的三角化算法——通用快速三角化算法。该算法适用于任意平面多边形区域及散乱点集,并且具有以下特点: 1. **适用范围广泛**:不仅适用于平面多边形区域,同时也适用于散乱点集。 2. **快速...

    基于Zigbee网络的GIS耐压击穿点智能定位系统.pdf

    首先,系统采用三角定位算法,通过三个不共线的定位接入点(AP)——AP1、AP2和AP3,构建三个圆,当终端设备(如GIS中的传感器)出现在可测范围内,其位置即为这三个圆的交点。由于实际工程中的误差,交点被理解为一...

    WebGIS 让小车沿着指定路径行走

    常见的投影方法有墨卡托投影、UTM(Universal Transverse Mercator)投影等,它们在特定区域内可以保持形状、方向或比例尺的一致性,但不可避免地会产生变形。在WebGIS应用中,选择合适的投影坐标系对于地图显示和...

    投影转换工具——utm

    这个坐标系统将地球表面分为60个六度带,每个带内再按照纬度划分出一系列的平行带,使得在局部区域内可以实现线性比例尺的精确映射,方便测量和计算。 投影转换工具——utm,是专门用于在不同地理坐标系之间进行...

    GIS的发展过程和发展趋势综述

    GIS的应用非常广泛,不仅在资源调查、环境评估、区域规划等领域有着重要作用,还在交通、城市建设、能源、农业、测绘等行业得到了广泛应用。 #### 二、地理信息系统的发展过程 ##### 2.1 国外GIS的发展历程 - **...

    Satellite Remote Sensing and GIS

    通过这些技术手段,研究人员能够对区域内发生的景观变化进行长期监测,并分析其背后的原因及影响因素。具体来说: - **数据获取与处理**:利用卫星图像获取高分辨率的地表信息,并结合GIS软件进行数据处理与空间...

    大赛——高斯投影.zip

    它将地球曲面转换为平面,使得地图上的角度保持不变,而长度有一定的误差,但控制在可接受范围内。本次分享的是一个基于VB.NET编程语言实现的高斯投影坐标转换程序,是作者在大学期间参加测绘技能大赛的成果,旨在...

    GIS和空间分析的基本方法[1]-论文.zip

    在“GIS和空间分析的基本方法[1]-论文.zip”这个压缩包中,包含了一份名为“GIS和空间分析的基本方法[1]-论文.doc”的文档,我们可以推测这份论文主要探讨了GIS技术的核心——空间分析的基本方法。空间分析是GIS的...

    地形分块建模算法研究

    尤其是在地理信息系统(GIS)、虚拟战场模拟以及大型三维游戏开发等领域,高效且快速的地形渲染对于用户体验至关重要。然而,当面临超大规模地形的实时渲染时,传统的图形渲染方法面临着巨大的挑战。 #### 研究问题...

    新型边缘检测法 医疗图像分析,gis也能用

    为了减少噪声影响并确保边缘的连续性,可以通过在该点周围的小区域内进行多方向的判断值计算来进一步确认。例如,在水平、垂直、对角线方向上计算该点与其邻域内点的灰度差异,进而决定是否将其标记为边缘点。 ####...

    基于PDA的嵌入式移动GIS系统应用研究与开发

    控制点应覆盖整个工作区域,间距保持在3-5公里之间,避免过于集中或分散。此外,控制点精度需统一,以减少误差累积,尤其是在仅有少数几个控制点的情况下,其分布位置和距离尤为重要,需遵循特定的布局原则,如不在...

    GIS - Spatial Databases

    《GIS - Spatial Databases》这本书全面介绍了GIS领域内空间数据库的技术、技巧及其发展趋势。从基础的空间数据模型到高级的空间数据库管理系统,再到具体的实践应用,本书为读者提供了深入理解GIS技术和空间数据库...

Global site tag (gtag.js) - Google Analytics