当前位置:编程学习 > 网站相关 >>

ArcGIS 点是否在道路范围内 算法

请问ArcGIS 中有计算某一个点是否在某一条道路上的计算公式吗
(道路是指自己画的一条路线,比如说路宽500米,我在地图上画了100个点形成的自定义道路),一条宽500米的道路,检测某一个经纬度的点是否在这个道路范围内,是否有比较好的计算方式,请各位大侠指教 ArcGIS 算法 地图 --------------------编程问答-------------------- 搜索该点有没有道路图层的对象不行么? --------------------编程问答-------------------- 线 buffer 成面 在用面判读 是否包含点 --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 楼主 ming1989915 的回复:
请问ArcGIS 中有计算某一个点是否在某一条道路上的计算公式吗
(道路是指自己画的一条路线,比如说路宽500米,我在地图上画了100个点形成的自定义道路),一条宽500米的道路,检测某一个经纬度的点是否在这个道路范围内,是否有比较好的计算方式,请各位大侠指教


楼主,用提供的点,缓冲一个圆出来,与道路的线做相交分析,如果相交,就说明在道路的范围内。注意,ArcGIS中存储的线,本生是没有宽度的,只是在绘制线的符号有宽度,不要混淆了。点和线的分析,一般都是做缓冲,如果是交互式操作的话,一般是使用HitTest方法,这个方法在AE提供的SDK部分接口中有。 --------------------编程问答-------------------- 很显然是个数学问题:
  每次取出道路的中心线的2个邻接点,从要测试的点,向这个给定的线段做垂线,垂线线段的长度小于1/2线宽,就在此道路范围内,如果都>1/2,就不在次范围内!
   别瞎转悠,要找重点! --------------------编程问答-------------------- 另外,垂线不与线段相交,就直接跳过检测!
--------------------编程问答-------------------- 1.向量vector 1叉乘vector 2(平面法向量)得到过测试的垂线段的向方向量vector3
2.由点和线段的距离公式,求得垂线长度L
3.由vector3得到单位向量vector4;vector4*L1+P0=垂直点P4;
4.P4是否在线段P1,P2线段上的判段:
  向量P4P1和向量P4P2是否反向:单位向量化后,相等就不在该线段上,否则,在该线段上!
5,垂线段长L<0.5线宽(如果P4在该线段上),则点在范围内! --------------------编程问答-------------------- 返回距离当前点最近的线段
返回当前点与这条线段的距离
如果距离大于阈值,则返回 False,否则返回 True
在这里,阈值是 250M(路宽度的一半)  --------------------编程问答-------------------- 参考:

   
   绘图程序中线段拾取判断的一种简单方法
补充:企业软件 ,  地理信息系统
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,