Skip to content

Releases: gtxzsxxk/openRouteFinder

New release on April 8, 2024

08 Apr 12:22
Compare
Choose a tag to compare

主要lint了代码,修复了查找算法的性能问题,以及为前端页面添加了一些新的功能。

本python分支仍然在维护中,并且有新的查找效率sota的c++后端正在编写。

The Last Stable Python Version

11 Aug 09:38
783d2d3
Compare
Choose a tag to compare

This PYTHON airway-route-finder will no longer be cared about.I am thinking of building a totally new airway-route-finder using the golang.Certainly it will take on a brand new appearance if I could have a flexible schedule in university.

Stable Version

19 Jun 04:56
Compare
Choose a tag to compare
2.0.0

Merge branch 'within-httpclient' of https://github.com/shinoyasan/Air…

[Old Stable Version]Open-source Airway Route Finder

22 Nov 03:47
0346ca7
Compare
Choose a tag to compare

Airway-Route-Finder

在线演示:http://www.routefinder.top

Update comments

  1. This branch is an old branch of project Airway-Route-Finder,featuring the server written in python by myself and an offline python client.
  2. Clone this project to your server or pc,make sure apData_as_v110_2006.dat NotoSansHans-Regular.ttf and navRTE_as_v110_2006.dat exist.If you don't have them,
    you can make it by yourself through packData.py(you should have installed aerosoft navigraph data before),or download it at http://www.routefinder.top/alldatafile.zip
  3. Then modify config.py
  4. To start a local client,just start routefinder.py.To start a server,just start webFinder.py.

This is the final stable version of this branch of the project with bugs fixed after RouteFinderLib.py objectified.

简介

RouteFinderLib是由Python编写的开源航路查询库。

使用dijkstra算法和aerosoft的导航数据。navRTE_as.dat是预烘焙好的航路数据文件。版本是1805。

RouteFinderLib.py是库的代码。routefinder.py是库的调用demo。packData.py用来烘焙航路数据,便于快速加载图。

使用RouteFinderLib,必须先让RouteFinderLib(以下简称RFL)读取数据。

读取数据可以通过ReadASData()来读取。

读取后的整个图维护在nodeList中,因此在packData.py中,我使用pickle库将nodeList对象序列化到二进制文件navRTE_as.dat中。

所以这个方式,使读取数据快速高效。执行ReadASData函数在我的机器上需要6分钟。

然而读取已经“烘焙”过的navRTE_as.dat文件,只需要几百毫秒。

你可以通过packData.py,随时烘焙更新后的导航数据。

RFL中dijkstra算法的执行,只需要3步:

1、使nodeList维护整张图(读取“烘焙”的文件或者从0开始建立图)。

2、设置RFL内的起始点。

3、获取起点与中点的IID。

IID是点在nodeList的下标。使用IID表示点是为了迅速的找点。

在dijkstra中寻找点,如果用名称一个一个搜是非常耗时间而且不准确的(有同名冲突点,因此我引入了点的hashcode)。

读出出度指向的下一个点,直接使用IID访问,提高了dijkstra执行效率。