摘要: 四,基于Geohash的搜索: 由Geohash的编码规则可知,如果地图上的某些点(经度,纬度)经编码后所得的Geohash串的前缀相同(前缀的长度决定了精度),那么它们在地图上是处于同一个区域的,比如下图中的九个位置,它们Geohash编码后分别为(WT3Q1,WT3Q4,WT3Q5,WT3Q3,WT3Q6,WT3Q7,WT3Q9,WT3QD,WT3QE),它们的共同前缀为WT3Q,它们都分布在WT3Q对应的区域中。那么我们可以逆向的思考这个过程,我们需要搜索WT3Q6附近的位置,那么我们只需要搜索它的直接前缀(去掉最后一个编码字母6)所对应的区域WT3Q中的其他位置即可,这样就可以搜索到. 阅读全文
posted @ 2013-02-05 19:51 muson 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 一,空间搜索相关: 基于地图的空间搜索使用经度(longitude)和纬度(latitude)作为基本的搜索条件进行地理信息的相关检索和查询。其实现方式一般包括以下一种实现方式:在数据库表中将经度(longitude)和纬度(latitude)分别以两个不同的列进行存储,通过对经度(longitude)和纬度(latitude)两列建二元索引,提供对经度(longitude)和纬度(latitude)的检索。这种方式简单粗暴,可以满足对小规模的数据进行经纬度的检索。但是,在地图搜索相关的应用中,地理信息相关的记录的数据量会很多,二元索引的速度应该不会很理想,再者,基于地理信息的搜索行为相关的. 阅读全文
posted @ 2013-02-05 17:08 muson 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 三,GeoHash encode与decode源码(源代码引用自)encode源码 1 function encodeGeoHash(latitude, longitude) { 2 var is_even=1; 3 var i=0; 4 var lat = []; var lon = []; 5 var bit=0; 6 var ch=0; 7 var precision = 12; 8 geohash = ""; 9 10 lat[0] = -90.0; lat[1] = 90.0;11 lon[... 阅读全文
posted @ 2013-02-05 16:50 muson 阅读(457) 评论(1) 推荐(0) 编辑
摘要: 二,Geohash 在介绍Geohash之前,先简单介绍一下经纬度概念。为了明确表示世界各地在地球上的位置,将地球看成一个基于经纬度线的坐标系。纬线就是平行于赤道平面的那些平面的周线,经线就是连接南北两极的大圆线的半圆弧。纬度分为北纬(正),南纬(负),赤道所在的纬度值为0。经度以本初子午线界(本初子午线经度为0),分为东经(正),西经(负)。故纬度范围可表示为[-90o, 0o),(0o, 90o],经度范围可表示为[-180o, 0o),(0o, 180o]。 我们可以将经度和纬度看成二维坐标系中的两个纬度,横轴表示经度,纵轴表示纬度,那么所表示的区域如下所示: 图 1 如上图所示... 阅读全文
posted @ 2013-02-05 15:02 muson 阅读(588) 评论(0) 推荐(1) 编辑
摘要: 一,空间搜索相关: 基于地图的空间搜索使用经度(longitude)和纬度(latitude)作为基本的搜索条件进行地理信息的相关检索和查询。其实现方式一般包括以下一种实现方式:在数据库表中将经度(longitude)和纬度(latitude)分别以两个不同的列进行存储,通过对经度(longitude)和纬度(latitude)两列建二元索引,提供对经度(longitude)和纬度(latitude)的检索。这种方式简单粗暴,可以满足对小规模的数据进行经纬度的检索。但是,在地图搜索相关的应用中,地理信息相关的记录的数据量会很多,二元索引的速度应该不会很理想,再者,基于地理信息的搜索行为相关的. 阅读全文
posted @ 2013-01-31 02:28 muson 阅读(3313) 评论(0) 推荐(1) 编辑