如何在本地数据库中保存距离矩阵?

时间:2012-06-02 16:46:26

标签: php mysql perl sqlite google-maps

我有一个应用程序通过引用距离矩阵来工作。在当前的设计中,我们从Google Maps v3 API收集距离矩阵,将它们转换为哈希并保存到本地文本文件中。

我的数据包括一个点到另一个点之间的距离;我有5000分。

我正面临与尺寸相关的问题。文件大小已经是250MB。

  1. 存储此类数据的最佳方法是什么?
  2. 有没有办法快速获取这么多数据?
  3. 如何从如此大的列表中搜索数据?

1 个答案:

答案 0 :(得分:2)

我不相信Google的Terms of Service允许您存储他们的数据。见10.1.3(b):

  

您不得预先获取,缓存或存储任何内容,但您可以存储以下内容:(i)有限数量的内容,以便在您临时,安全地执行此操作时提高Maps API实施的效果并且以不允许在服务之外使用内容的方式; (ii)Maps API文档特别允许您存储的任何内容标识符或密钥。例如,您不得使用内容来创建“地点”或其他本地列表信息的独立数据库。

“不允许使用服务之外的内容”的“临时,安全”商店基本上是浏览器缓存。 可能在浏览器中包含HTML5本地存储。它不包括允许在其他任何地方使用数据的任何外部数据库。 250MB几乎不是“限量”!

Distance Matrix文档中的任何内容都不会覆盖此子句,并允许存储该数据。

所以:您只能存储直线距离(前提是您不使用Google地理编码器查找位置)。

我不完全确定Google为什么会受到这种限制;这可能是他们自己的数据提供商许可证的结果。


所以这不是完全的悲观和沮丧,存储距离数据需要一个包含三列的表:origindestinationdistance。从5000中选择一行将很快。