Android地图开发中的地理编码与地理反编码

地理编码(Geocoding)与地理反编码(Reverse Geocoding)是地图操作中的常见操作,前者表示通过街道地址请求空间坐标,后者表示通过空间坐标请求街道地址。通俗的说,二者就是街道地址与经纬度的转换。举例来说,前者就是输入查询"上海市杨浦区四平路1239号"得到(31.285207060526762, 121.50546412914991),而后者则表示这个反过程。

 

在实际的移动开发过程中,地图相关的操作对于地理编码与地理反编码的使用都是十分普遍。幸运的是,Android的MapView控件中对于这两者都进行了封装,因此可以方便的利用Google Map Service进行二者查询。下面将对开发过程做一个简单介绍。

 

首先必须进行MapKey的申请,任何地图的显示都需要申请一个MapKey。具体的申请步骤可见

http://code.google.com/intl/zh-CN/android/maps-api-signup.html

 

然后可以建立一个基于Google APIs的程序,并且在AndroidManifest.xml中加入地图API的支持。

 

 

 

接着可以在主Layout文件中加入对于地图的显示,这里需要加入刚才申请的MapKey,否则地图将无法正常显示。

 

 

接着在主Activity的JAVA文件进行修改,支持地图显示。

 

 

 

此时运行程序,地图应该就可以正常显示了,见下图。


 

此时我们再向程序中加入地理编码与地理反编码的功能,其参考代码如下。 

 

地理编码:

 

地理反编码,其中MapOverlay为地图图层上的叠加图层,用于标识的显示以及点击事件的捕捉。

 

 

 最终实现结果如下图所示,地理编码,查询“上海市杨浦区四平路1239号”,结果其实略有偏差。中国的地址与邮编比较混乱,所以结果有些地方无法做到完全准确。

 

 

地理反编码


本文系“首届 Google 暑期大学生博客分享大赛——2010 Andriod 篇”参赛文章

 

posted on 2010-07-05 21:39  Hibernate4  阅读(239)  评论(0编辑  收藏  举报

导航