如何在路线规划的加权图中表示道路形状

how can I represent road shape in weighed graph for route planning

我决定为类似于 Google 地图的游戏构建一个路线规划器,以扩展我的图形知识并作为投资组合项目。

我已经完成研究并得出结论,我需要将道路表示为加权图中的节点,但我的理解是只表示交叉路口。

我的问题是如何同时表示道路的形状?

我对如何解决这个产品的推理是,图形节点将具有 link-成本,然后数据将包含一个对象 (JSON),其中包含与直到下一个 node/intersection.

的道路形状

这会带来一些问题,因为如果我想规划一条到路中间的路线怎么办。就拿下图来说,我想从C到本质上介于D和E之间但在上面的路上。

图:
请注意,所有的道路都是两条路,因此您可以假设边缘是有方向的和称重的。

我试图研究 OSM 是如何做到这一点的,但单是数据大小就让我失望了。

任何资源将不胜感激:)

如果您想要基于 JSON 的格式,我的建议是查看 GeoJSON。这是一种既可以表示 spatial/shape 要素,也可以表示街道名称、地址等非空间要素的完善格式。网上有大量文档,因此我不会引用具体链接。 GIS Stack Exchange 也是解决此类问题的好资源。