逆地理编码及关键技术

来源:互联网 发布:java验证码过期怎么做 编辑:程序博客网 时间:2024/05/20 13:14

我们应用电子地图查询信息,有时候希望获取点位坐标,有时候希望得到一个准确的地址,这在地图底层服务里面实际是用到了地理编码和逆地理编码。当输入地址而返回坐标时,也就是当我们输入一个建筑物名字或一个地址的时候,地图返回一个点坐标,这个过程叫地理编码;反过来,当输入的是点坐标而返回的是一个地址描述,这个过程叫做逆地理编码。今天主要说一说逆地理编码的内容。

       由于逆地理编码服务是根据坐标返回地址信息,所以前期提供给逆地理服务引擎的数据有下面几类:行政区划、道路、POI、AOI、门址等。行政区划数据可以告诉用户当前这个坐标点所属的省市区,道路数据保存的是所有的道路坐标点串,POI/AOI记录的是重要的点和面信息(POI是指兴趣点,AOI是指兴趣面),门址一般是指某某门牌号信息。

逆地理服务实际是一个空间查询的过程,通过输入经纬度坐标,查找这个坐标所在的行政区划,所属道路,最近的POI/AOI等。这些数据一般比较庞杂,所以合理组织这些数据结构非常关键。管理空间位置数据一般用RTree结构。RTree是一种高度平衡的树,在叶子节点存放数据指针。使用RTree能保证对一个空间数据的搜素只需要访问很小一部分节点就能查找到数据。关于这方面内容网上很多,大家可以去自行检索。

请求逆地理服务后,服务引擎会根据协议返回查询到的数据结构,这里面就包含了与查询点位有关的地址信息。如果以xml格式可以简单表示如下:

<?xml version='1.0' encoding='GBK'?>

<province><name>X省</name></province>

<city><name>X市</name></city>

<district><name>X区</name></district>

<town><name>X街道</name></town>

<road><name>X道路</name></road>

<housenumber><name>X小区X号</name>

<poi><name>X大厦</name>

<business><name>X商场</name>

<areainfo><name>X公园</name>

<addr><name>X省X市X区X街道XX</name></addr>

逆地理服务返回的结果是结构化地址,为了适应人们的信息理解习惯,构造这个结构化地址一般遵循下面的原则:

①省市区+街道+AOI模式,此模式多在城区;

②省市区+乡镇+道路门牌+AOI模式,此模式多在郊区;

③省市区+乡镇+道路门牌+POI模式;

④省市区+道路门牌+AOI模式;

⑤省市区+道路门牌+AOI模式;

⑥省市区+街道/乡镇+道路+AOI/POI;

⑦省市区+街道/乡镇+道路。

现在主流的电子地图都能提供逆地理编码服务,并提供了调用接口,当然也有地理编码接口。

原创粉丝点击