如何维护城市道路数据?(我应该使用什么数据结构)

How to maintain city road data? (What data structure should I use)

本文关键字:我应该 什么 数据结构 道路 何维护 维护 城市 数据      更新时间:2023-10-16

(对不起,我的英语不好,但我会尝试清楚地表达它)

例如,我以这样的形式获得了道路数据:

          Latitude      Longitude
RoadA(consists of 2 dots)
          31.263319     121.5555711
          31.2619722    121.5564754
RoadB(consists of 3 dots)
          31.2619722    121.5564754
          31.2611567    121.557023
          31.2610903    121.557088

您可以看到,每条道路都由几(2〜x)点组成。这条路可能是一条曲线,需要许多点来形容它。在两个点之间,它们通过直线连接。

一旦我阅读了所有道路数据,我将在一组点上阅读,我的任务是,一旦给出了一个新的点,我需要找出是否在任何道路上。如果没有,我需要向最近的道路垂直画一个垂直的路,并找出踏板脚的坐标(路上最近的一点)。

查询量很大,所以我需要尽可能快地速度。我应该使用哪种数据结构?

游戏开发和理论中有一些空间分区方法。也许您应该使用其中之一。链接

您应该在二进制,Quad,Oct,...树上分区位置。我认为最好的方法是使用成对的地图。