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

发布于 2022-08-26 19:33:54 字数 553 浏览 12 评论 0

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

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

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

变身佩奇 2022-09-02 19:33:54

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

谜泪 2022-09-02 19:33:54

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

污味仙女 2022-09-02 19:33:54

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数据库实现。相对麻烦一些。

你与昨日 2022-09-02 19:33:54

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文