Android 学习意外第五季<2>——google GPS定位由经纬度转换地址信息

上次在学习意外系列中的第五季提到了有关GPS定位中发现的一个Geocoder处理由GPS定位的信息查询地址信息的内容结果返回地址的信息列表为空,导致了开发的应用程序异常终止,实在无语。当然我后面给的那个类还是可以解决问题的。

而就在今天一次偶然的机会我发现了这个问题的解决方案——修改运行配置,将模拟器由android的版本改为google api的版本,问题就解决了。这个并不是google出现的bug,只是在这个地图信息获取的机制也许只有在google的 api 模拟器中才可以操作成功。

所以一个建议就是在每次设计到地图的信息时,还是采用google的avd比较好,这样子避免出现那些比较闹心的事情,以免让人揪心的“为伊消得人憔悴”大笑


最后还是给出这个转换的代码,帮大家方便使用:

		// 获取LocationManager的一个实例
		LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
		locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
				10000, 0, locationListener);
		Location location = locationManager
				.getLastKnownLocation(LocationManager.GPS_PROVIDER);
		locationManager.setTestProviderEnabled("gps", true);
		while (location != null) {
			latitude = location.getLatitude();// 经度
			longitude = location.getLongitude();// 纬度
			refreshMapView();
			Geocoder geo = new Geocoder(this, Locale.getDefault());
			List<Address> adList = null;
			try {
				// 将gps信息类转化成address信息类
					adList = geo.getFromLocation(latitude, longitude, 1);
			} catch (IOException e) {
				e.printStackTrace();
			}

			if (adList.size() > 0) {
				// showDialog(String.valueOf(adList.size()));
				Address ad = adList.get(0);
				// nowlocal= ad.getAdminArea();//取得省级名
				// nowlocal=ad.getLocality();//取得区域名
				if (ad.getLocality() == null) {
					if (ad.getAdminArea() == null) {
						if (ad.getCountryName() == null) {
							nowlocal = "公海";
						} else
							nowlocal = ad.getCountryName();
					} else {
						nowlocal = ad.getAdminArea();
					}
				} else
					nowlocal = ad.getLocality();
				showDialog(ad.toString());
			} else {
				nowlocal = "查无此地~";
			}
			break;
		}

其中的那个local 和nowlocal是String类型的  我是用它们来取得当前位置的一个级别的地址信息。


其中的那个local 和nowlocal是String类型的  我是用它们来取得当前位置的一个级别的地址信息。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值