Php 如何在本地数据库中保存距离矩阵?
我有一个应用程序,它通过引用距离矩阵来工作。在当前的设计中,我们从GoogleMapsV3API收集距离矩阵,将其转换为散列并保存到本地文本文件中 我的数据包括一点到另一点之间的距离;我得了5000分 我面临着与尺寸有关的问题。文件大小已经是250MBPhp 如何在本地数据库中保存距离矩阵?,php,mysql,perl,sqlite,google-maps,Php,Mysql,Perl,Sqlite,Google Maps,我有一个应用程序,它通过引用距离矩阵来工作。在当前的设计中,我们从GoogleMapsV3API收集距离矩阵,将其转换为散列并保存到本地文本文件中 我的数据包括一点到另一点之间的距离;我得了5000分 我面临着与尺寸有关的问题。文件大小已经是250MB 存储此类数据的最佳方式是什么 有没有办法快速获取这么多数据 如何从这么大的列表中搜索数据 我不相信谷歌允许你存储他们的数据。见10.1.3(b): 您不得预取、缓存或存储任何内容,除非您可以存储:(i)为提高Maps API实现的性能而存储的内容
因此,这并不完全是厄运和黑暗,存储距离数据将需要一个包含三列的表:
origin
、destination
和distance
。从5000行中选择一行会很快。因为您存储的数据实际上只是一些相当简单的lat/long数学的结果,所以将每个点以lat/long值存储在数据库中,并根据请求计算两个给定点之间的差值不是更好吗?是的,这会略微增加加载时间,但如果与节省数据使用量相比,我个人认为这是值得的。表中有多少记录占用了所有空间?你能发布那个表的模式吗?也许还有一个来自该表的记录示例?您的日志使用PHP、MySQL、Perl和SQLite标记了您的帖子。tihs应用中使用了哪些特定的技术组合?您是否可以使用其他技术来解决此问题,如PostgreSQL?定义距离:线性或路由。如果是线性的,请参见@DaveRandom的注释。“我的数据由一个点到另一个点的距离组成,我有5000个点……250MB”表明你已经预先计算了每个点到另一个点的距离,一定要改变这一点。