Location服务之Geocoder

本文介绍了Android location包中的Geocoder服务,用于街道地址与经纬度之间的转换。包括前向地理编码(查找地址的经纬度)和反向地理编码(查找经纬度对应的地址)。在实现过程中,可能会遇到在Google API v8下运行异常的问题,解决方案是通过访问URL获取JSON数据并解析。示例代码展示了如何操作。
摘要由CSDN通过智能技术生成

提到Android基于位置的服务,就不得不提android.location包,location包提供了很便捷的API来实现基于位置的服务。主要包括Geocoder和LocationManager。今天就先来介绍一下Geocoder。

Geocoder可以在街道地址和经纬度地图坐标之间进行转换。它提供了对两种地理编码功能的访问:

Forward Geocoding(前向地理编码):查找某个地址的经纬度

Reverse Geocoding(反向地理编码):查找一个给定的经纬度所对应的街道地址。

分别对应以下方法:

List<Address>  getFromLocationName(String locationName, int maxResults)
List<Address>  getFromLocation(double latitude,double longitude,int maxResults);
我们新建一个location的项目。因为示例要使用到地图服务,所以创建时Build Target要选择Google APIs这一项。

然后修改/res/layout/main.xml,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
	<com.google.android.maps.MapView
		android:id="@+id/mapView"
		android:layout_width="fill_parent"
    	android:layout_height="fill_parent"
		android:clickable="true"
		android:apiKey="your apiKey goes here"/>
	<LinearLayout
		android:layout_width="fill_parent"
    	android:layout_height="wrap_content">
		<EditText
			android:id="@+id/name"
			android:layout_width="wrap_content"
    		android:layout_height="wrap_content"
    		android:layout_weight="1"/>
    	<Button
    		android:id="@+id/find"
			android:layout_width="wrap_content"
    		android:layout_height="wrap_content"
    		android:text="Find"/>
	</LinearLayout>
</FrameLayout>
然后我们来看一下MainAc
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值