基于矢量数据的逆地理编码功能实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于矢量数据的逆地理编码功能实现相关的知识,希望对你有一定的参考价值。
地理编码和逆地理编码概述
地理编码,是指将大家熟悉的地址文字描述,转换为经纬度,如输入某某省、某某市、某某路,在地图上根据经纬度定位到输入的地图上的某个点,直观的显示所在位置。逆地理编码是指将经纬度转化为大家都能看懂文字描述。一般人对经纬度数字没什么概念,转化为文字描述后,更容易让人理解。在现在大量的人员定位,车辆监控中,除了在地图上直观的展示人员或者车辆的地图位置外,很多的系统也提供了人员或者车辆所在位置的文字描述功能。
目前大部分系统和项目开发中,逆地理编码功能的实现,都是调用主流厂商提供的逆地理编码服务接口来实现逆地理编码功能。在开发一些特殊的系统时,往往这些主流厂商提供的逆地理编码得到的结果不能更好的满足项目展示的需求。如在物流配送中应用中,需要很精确直观的描述物流车辆所在的线路,以及物流配送点。而这些在线地图厂商提供的逆地理编码服务接口,在位置描述的精准度上,达不到项目想要的效果。另外,有部分项目是在单位内网里构建,不能访问外网的逆地理编码服务接口。
针对这些项目的开发,可以在地图矢量数据基础上,通过自己写一些底层的GIS算法,来实现逆地理编码功能,在位置描述上,具有更高的灵活度,更加适应项目实际需求。如经纬度所在道路的描述,以及经纬度周边描述上,可以添加专门的线路数据和点数据,通过控制搜索优先级,来实现位置的精确描述。
逆地理编码功能实现的基本思路
逆地理编码功能结果描述分为三个部分组成,
1、经纬度所在的行政区划,这部分需要使用到全国的行政区划数据,省界、市界、县界、如果更精确还需要乡镇界。
2、经纬度当前所在的道路,国道、省道、县道、乡镇村道、城市道路等。人员或者车辆回传的经纬度坐标,因为有一定的误差,不可能跟这些道路完全匹配,一般认为,误差范围在50米以内,就认为在这些道路上。
3、经纬度所在的周边参照地物,如宾馆、饭店、商场等周边参照地物。
逆地理编码的实现和关键技术
1、讲矢量数据通过读取通用格式,存入数据库,并做一定的空间索引。数据存储上,行政区域、道路数据、地物数据分开存储。对具有特殊描述需求的项目,可以在道路和地物数据中加入自己的道路数据和地物数据,并设置优先级。在搜索算法中优先搜索。
2、对外提供查询接口,通过读取数据库数据,并利用GIS基础算法,得到经纬度位置描述结果。
3、核心算法:主要有点是否在区域内,两点间经纬度距离、点是否在道路上。
逆地理编码算法的扩展
通过这种方式,除实现逆地理编码运算外,还可以实现地图地物模糊查询,地图矩形框选、圆形框选,多边形框选等功能。如圆形框选,即可实现搜索指定经纬度周边一定距离范围内的地物。
逆地理编码的实现效果
1、数据存储
2、服务发布
3、逆地理编码前端展现
4、扩展功能前端展现
地物搜索
范围搜索
矩形框选
多边形框选
本文出自 “开源GIS离线地图” 博客,请务必保留此出处http://cdguiyi.blog.51cto.com/4275617/1922532
以上是关于基于矢量数据的逆地理编码功能实现的主要内容,如果未能解决你的问题,请参考以下文章