Caching 缓存地理空间计算还是动态计算?

Caching 缓存地理空间计算还是动态计算?,caching,asp.net-mvc-4,sql-server-2008-r2,geospatial,Caching,Asp.net Mvc 4,Sql Server 2008 R2,Geospatial,我是服务车辆调度web应用程序的开发人员。它是用.NET4+、MVC4和SQLServer编写的 数据库中有2000多个位置作为地理数据类型存储。假设我们将资源从位置A发送到位置B,则驾驶时间/距离等。。。需要在一个点上显示。如果我用SQL Server的STDistance计算距离,它只会给我“如乌鸦一般”的距离。因此,该系统需要点击bing、Google或ESRI等地理空间服务,并获取实际驾驶时间或建议路线。问题是这是一个核心功能,而且会经常发生 我应该用预先计算的距离或平均驾驶时间预先填充

我是服务车辆调度web应用程序的开发人员。它是用.NET4+、MVC4和SQLServer编写的

数据库中有2000多个位置作为地理数据类型存储。假设我们将资源从位置A发送到位置B,则驾驶时间/距离等。。。需要在一个点上显示。如果我用SQL Server的STDistance计算距离,它只会给我“如乌鸦一般”的距离。因此,该系统需要点击bing、Google或ESRI等地理空间服务,并获取实际驾驶时间或建议路线。问题是这是一个核心功能,而且会经常发生

我应该用预先计算的距离或平均驾驶时间预先填充查找表吗?不利的一面是,即使没有添加更多的位置,也可以在每次需要信息时搜索400万条记录

除此之外,大多数情况下,目的地不是我们存储的地理空间坐标之一,而是大陆上任何地方的地址或long/lat点,这使得预先计算变得不可能

我试图避免性能问题不断地影响某些GeoService端点

关于如何最好地解决这个问题,有什么建议吗


-谢谢

以前看过这些问题,您不太可能将它们全部存储起来

  • 缓存结果通常是针对几乎所有的路由提供程序。您有时可以协商此能力,但成本很高
  • 由于没有一组固定的搜索点,因此执行一次计算将为下一次计算提供很少的信息 我想说的是,一旦他们被选中,也许你可以为他们存储路由,这样你就可以在需要时再次显示该路由。一旦事务完成,我将从数据库中删除路由


    如果您真的想缓存所有这些数据或对其进行更多控制,您可以使用PGRouting(与Postgresql一起使用),然后获取街道数据。尽管我怀疑它是否值得您的努力。

    以前看过这些问题,您不太可能将它们全部存储起来

  • 缓存结果通常是针对几乎所有的路由提供程序。您有时可以协商此能力,但成本很高
  • 由于没有一组固定的搜索点,因此执行一次计算将为下一次计算提供很少的信息 我想说的是,一旦他们被选中,也许你可以为他们存储路由,这样你就可以在需要时再次显示该路由。一旦事务完成,我将从数据库中删除路由

    如果您真的想缓存所有这些数据或对其进行更多控制,您可以使用PGRouting(与Postgresql一起使用),然后获取街道数据。尽管我怀疑这是否值得你的努力