首页 > 有两个与地图或gis相关的算法求助

有两个与地图或gis相关的算法求助

我现在在制作一个地图程序,实现语言无所谓.(最好是javascript..) 目前我拥有以坐标点为数据的路表,我想实现下面两个效果

1.行车过程中获取道路两旁的poi 我认为车头视野是一个扇形,扇形区域内的点要上报

2.利用路而不是纯距离来进行导航 假设有很多的路,我需要得到从a到b的最短路径

请问这两个效果需要用到什么样的算法? 关于第一个,我想到的是可以利用点积与距离来判断,但是那是相对于二维平面坐标的,经纬度坐标怎么计算呢? 第二个是不是那种最短路径问题?路是不规则的啊,所以我想是否有一种方法可以简化计算,把路抽象成折线?并且后续我还想加入 道路的拥堵状况及道路允许的车速作为权重,进行计算,这应该怎样处理?


地图算法无能,我只能帮你到这儿了……


openlayers可以做到:
1、扇形区域内的点的查询汇报(OpenLayers.Control.GetFeature),前端可以获取到扇形区域的OpenLayers.Bounds对象,根据这个对象,定义
var filter = new OpenLayers.Filter.Spatial({
type : OpenLayers.Filter.Spatial.WITHIN,
value : bounds
});作为给后台的参数查询条件,从后台查询出点返回给前端处理。
我已经实现了:圆形(40以上边的正方形其实),正方形(4个对等边),不规则图形(自己画)的区域内features查询。
2、最短路径的算法,这个某些数据库支持(如:postgresql),如果自己要实现,geotools配合java
写算法查询gis数据库实现。相对麻烦一些。


1,用polygon和point进行intersect,我这里有源码算法,不过是C#的。
2,我有route的整套算法,可以找出最短路径,也可以找出最优路径等。不过也是C#的。
如果需要可以找我。


折线的话可能要化成曲线用微积分来做。 拥堵情况和最高限速应该是代码中进行配置,比如化作一段额外路程,或者增加额外的时间。

【热门文章】
【热门文章】