我是一个服务车辆调度web应用程序的开发人员。它是用.Net 4+,MVC4编写的,使用的是SQL server。
有地理位置作为地理数据类型存储在数据库中。假设我们将资源从位置A发送到位置B,则驾驶时间/距离等。需要在一个点上显示。如果我用SQL Server的STDistance计算距离,它只会给出“乌鸦飞”的距离。因此,该系统将需要点击一个地理空间服务,如冰,谷歌,或ESRI,并获得实际的驾驶时间或建议的路线。问题是这是一个核心功能,会经常发生。
我应该用预先计算的距离或平均行驶时间预先填充查找表吗?缺点是甚至不需要添加更多的位置,即每次需要信息时都要搜索400万条记录。
最重要的是,大多数情况下,目的地不是我们存储的地理空间坐标之一,而是大陆上任何地方的地址或经度/纬度点,这使得预先计算变得不可能。
我正在努力避免性能问题,不得不不断地访问一些地理服务端点。
对于如何最好地实现这一点,有什么建议吗?
-thanks!
发布于 2013-06-02 10:15:41
之前看过这些问题,您不太可能能够将它们全部存储起来。
我想说的是,一旦他们被选中,你也许可以存储成对的路线,这样你就可以在需要的时候再次显示该路线。一旦交易完成,我将从您的数据库中删除路由。
如果您真的想缓存所有这些内容或对其进行更多控制,您可以使用PGRouting (带有PostgreSQL语言),然后获取街道数据。尽管我怀疑这是否值得你的努力。
https://stackoverflow.com/questions/16838976
复制相似问题