本人最近做了一个订餐网,客户让用地图标注来获取两地之间的距离,当餐厅和客户都标注了经度和纬度以后,页面加载的时候会用js算出两地之间的距离。但是这个距离的远近不等
现在这样客户不喜欢,客户让改成可以根据距离的远近来排序的,这个问题我想了很久都没想出怎么弄,因为这个设计到的所有数据都不是固定的,都有可能在随时改变,包括顾客标注的经纬度,还有餐厅标注的经纬度,顾客数量,餐厅数量都是不等的,
现在还涉及到分页的问题,也就是说,必须一次读取出来数据库里所有的餐厅标注的经纬度,然后和我登陆的这个会员号的经纬度算出距离,然后在排序,显示出来。
但是这样我遇到一个问题,这样的话如果会员每登录一次,都要去数据库里去一次所有的数据,如果餐厅数量过多的话,我怕数据库扛不住死掉。 我随后想到了内存表,就是每个会员登录以后,都去数据库拿出数据然后计算距离,最后存在内存里,要是这样的如果并发量高的话,立马就会把服务器整死,所以这条路也是死的。
最后我没招了,我就想到给每个会员写一个txt文档,就是会员在登录以后会先去找个txt文档,这个txt文档就是当前排好序的餐厅, 如果没有这个txt则去数据库读数据,计算距离,然后写txt文档,当第二次进来以后,在先找txt文档, 找到以后先判断创建或修改时间是否大于1天(这个1天是我弄的一个小缓存),如果大于1天的话,则去数据库读取数据,否则直接读txt文档然后输出,但是这样的话会涉及到分页和后期数据量过大的话都会有问题。
我的思路暂时就这么多了,在想不出什么好的解决办法让了。不知道各位大神有没有什么好的思路或者解决办法,可以让餐厅分页,还可以排序,最后别影响网站打开速度。
办法不论是js 还是代码的 都希望大师给点思路。
所以我求助下大师这个怎么解决,或我上面说的办法有没有什么可以解决的。谢谢大家了
写的有点乱,希望大神帮忙解决下问题....
现在这样客户不喜欢,客户让改成可以根据距离的远近来排序的,这个问题我想了很久都没想出怎么弄,因为这个设计到的所有数据都不是固定的,都有可能在随时改变,包括顾客标注的经纬度,还有餐厅标注的经纬度,顾客数量,餐厅数量都是不等的,
现在还涉及到分页的问题,也就是说,必须一次读取出来数据库里所有的餐厅标注的经纬度,然后和我登陆的这个会员号的经纬度算出距离,然后在排序,显示出来。
但是这样我遇到一个问题,这样的话如果会员每登录一次,都要去数据库里去一次所有的数据,如果餐厅数量过多的话,我怕数据库扛不住死掉。 我随后想到了内存表,就是每个会员登录以后,都去数据库拿出数据然后计算距离,最后存在内存里,要是这样的如果并发量高的话,立马就会把服务器整死,所以这条路也是死的。
最后我没招了,我就想到给每个会员写一个txt文档,就是会员在登录以后会先去找个txt文档,这个txt文档就是当前排好序的餐厅, 如果没有这个txt则去数据库读数据,计算距离,然后写txt文档,当第二次进来以后,在先找txt文档, 找到以后先判断创建或修改时间是否大于1天(这个1天是我弄的一个小缓存),如果大于1天的话,则去数据库读取数据,否则直接读txt文档然后输出,但是这样的话会涉及到分页和后期数据量过大的话都会有问题。
我的思路暂时就这么多了,在想不出什么好的解决办法让了。不知道各位大神有没有什么好的思路或者解决办法,可以让餐厅分页,还可以排序,最后别影响网站打开速度。
办法不论是js 还是代码的 都希望大师给点思路。
所以我求助下大师这个怎么解决,或我上面说的办法有没有什么可以解决的。谢谢大家了
写的有点乱,希望大神帮忙解决下问题....
呵呵,需求分析分出误区来了吧,客户就几千块的预算,你非要整个GIS+路径分析,需不需要考虑堵车问题?
最简单的方法就是给用户加个输入项:距离/往返时间估计,由用户自己决定就结了吧。用户的大脑一闪念的计算能力比ES9000算一天的可能都强。
两点之间距离这些东西可以用.NET自带的SqlGeography计算