论坛首页 入门讨论版 Java

帮忙想个算法:有个LinkedList里面放着3000多个同一类型对象(经纬度区块),对象的....

浏览 357 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-10-19

对象的字段除了一个标识ID之外.还有4个double类型,分别是这个区块的起始经度,结束经度,起始纬度,结束纬度.

给你一个点,知道它的经纬座标,怎样才能迅速的找到这个点在哪个区块里?

请各位指点小弟!谢谢

   
最后更新时间:2007-10-19
没弄懂意思,对象指的是什么对象,按你的意思应该是个区块对象,
各个区块都编了号,而所要求的是如何根据点的坐标值来确定其属于什么哪个区块吗?

想问下,各个区块是如何划分的?长短确定吗?
还有list是有序0存放对象的吗
   
0 请登录后投票
最后更新时间:2007-10-19
长短都一样的,一个区块的结束经纬度就是下个区块的开始经纬度.
存放的时候是有序的,按照每个区块的开始经纬度排序,然后再存(order by longti_begin,lati_begin)
   
0 请登录后投票
最后更新时间:2007-10-21
没有什么算法,下面是自己的想法,你参考一下
li[0];li[1];....;li[n]
dLongti = li[1].longti - li[0].longti
dLati =  li[1].lati - li[0].lati
.
point(longti,lati)-->p(lo,la)
tmpLo = p.lo - li[0].longti
tmpLa =p.la - li[0].la

row = round (tmpLo /dLongti)//四舍五入的函数
col = round(tmpLa / dLa)

......
下面的你自己想想吧,二维数组差不多,不过要注意边界点
   
0 请登录后投票
论坛首页 入门讨论版 Java

跳转论坛:
JavaEye推荐