点在线上

我目前在做一个车载gps终端定位的模块,其中,有这样一个功能:

从gps获取到车辆的点位信息,然后根据GPS点位信息获取

1.其当前所在位置公路的名称、代码(公路图层已经准备好)、

2.到路段起点的距离

首先解决第一个问题。抽象成点在线上的问题。

mengjing113 (三步两桥)当前离线 提出的解决方案如下:

方案一:

1. 先通过点缓冲获取到道路对象,即是线(看有几条,如只有一条,就认为点是在路上了),如果有n条,再做如下处理。
2.  分别对几条线进行判断:判断点是否在线上(包括判断该点是否是线的节点(vertex),抑或在两个节点之间的连线上),如是,则认为点在线上,退出。
3.  2的情况不满足,就先遍历出线要素的所有节点,把线要素分段,求点到每段的距离,并排序,求出其中的最小距离。
4.  刚才只是对一条道路做的处理,同样,对缓冲区中的其他道路做处理,分别求出最小距离,去最小距离中的最小者,并把该条道路的名称提取出来,认为该点在这条道路上。完毕。

这是目前为止我看到的最好的解决方案,但是此方案技术要求高。

方案二:

我的解决方案如下:

1.GPS生成点图层

2.对点图层和道路图层执行Intersect操作,赋予点图层道路信息

OVER

此方案基本等同于方案一得第一步,优点是简单、快速且上手容易,缺点是不准确,遗留一系列问题。

 

 

转载于:https://www.cnblogs.com/hl3292/archive/2010/09/26/1836083.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值