1、场景说明
先说一下使用场景,之前公司是做移动GIS的,有这么一条需求,在野外使用android设备,无SIM卡无WIFI的情况下,需要定位到当前的省市县。。。客户大于一切,没办法,搞吧。
2、实现思路
首先,看一下公司的数据支持,行政编码、省市县的名称、left、top、bottom、right的经纬度,也就是说给出了每个地区的矩形范围,总结一下就是这个样子的;
数据库的范围是经纬度,使用场景又在野外,所以就选择了GPS定位的方式,用获取到的经纬度在数据库里进行筛选,得出一个最小最适合的范围——县,然后用县的行政编码往上查依次获取到对应的市和省;下面是代码片段。
//这里GpsInfo.getInstance()里注册了广播接收器,用于获取经纬度;
double log = GpsInfo.getInstance(mContext).getLog();
longitude = new DecimalFormat("0.000000").format(log);
double lat = GpsInfo.getInstance(mContext).getLat();
latitude = new DecimalFormat("0.000000").format(lat);
//Gpsinfo类里log、lat默认-1,以此判断是否接收到GPS
if (!longitude.equals("-1