通过手机获取GPS信息,然后把利用GPS经纬度查询相应的地理位置信息。

1、利用android自带API实现,经过测试基本没有结果。留作参考。关键代码如下:

Geocoder geocoder=new Geocoder(GotoMyLocationActivity.this); //        Geocoder geocoder = new Geocoder(this, Locale.CHINA);                       try {                //Thread.sleep(2000);                places = geocoder.getFromLocation(latitude, longitude, 5);               // Thread.sleep(2000);                Toast.makeText(GotoMyLocationActivity.this, places.size()+"", Toast.LENGTH_LONG).show();                System.out.println(places.size()+"");         } catch (Exception e) {                  e.printStackTrace();        }


 String placename = "";        if (places != null && places.size() > 0) {                // placename=((Address)places.get(0)).getLocality();                //一下的信息将会具体到某条街                //其中getAddressLine(0)表示国家,getAddressLine(1)表示精确到某个区,getAddressLine(2)表示精确到具体的街                placename = ((Address) places.get(0)).getAddressLine(0) + ", " + System.getProperty("line.separator")                                + ((Address) places.get(0)).getAddressLine(1) + ", "                                + ((Address) places.get(0)).getAddressLine(2);                Toast.makeText(GotoMyLocationActivity.this, placename, Toast.LENGTH_LONG).show();                       }else{         Toast.makeText(GotoMyLocationActivity.this, "无法获取地理信息", Toast.LENGTH_LONG).show();        }

2、利用百度地图API实现

关键代码:

// GPS编码成地理位置// 初始化搜索模块,注册事件监听// 把gps信号转成百度地图坐标JWD jwd = GPSToBaiDu.getData(longitude+"",latitude+"");//LatLng ptCenter = new LatLng(latitude, longitude);ptCenter = new LatLng(Double.parseDouble(jwd.getY()), Double.parseDouble(jwd.getX()));

mSearch.reverseGeoCode(new ReverseGeoCodeOption().location(ptCenter));mSearch.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {@Overridepublic void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {if (result == null|| result.error != SearchResult.ERRORNO.NO_ERROR) {Toast.makeText(GotoMyLocationActivity.this, "抱歉,未能找到结果",Toast.LENGTH_LONG).show();return;}Toast.makeText(GotoMyLocationActivity.this,result.getAddress(), Toast.LENGTH_LONG).show();mAddr = result.getAddress();


3、利用web api实现

关键代码:

/** *  * @param latitude 纬度 * @param longitude经度 * @return ReturnValue 返回地址相关信息 */public static ReturnValue geocoding(String latitude, String longitude) {//String l = "http://api.map.baidu.com/geocoder/v2/?ak=E4805d16520de693a3fe707cdc962045&location=39.983424,116.322987&output=json&pois=1";//ak mean the key.you should apply it from baidu.String key = "XXXXXXXXXXXXXXXXX";String url = "http://api.map.baidu.com/geocoder/v2/" +"?ak="+key+"&location="+latitude+","+longitude+"&output=json&pois=1";ReturnValue rv = httpRequest(url,"GET");if(null==rv)return null;return rv;}

demo下载地址:http://download.csdn.net/detail/u014600432/8184399


更多相关文章

  1. ZZ android am命令
  2. Android系列之利用SharedPreferences是否是第一次进入安装程序
  3. 修改Android中strings.xml文件
  4. portrait表示横向,landscape表示纵向
  5. 利用BLCR加快Android的启动过程
  6. Android(安卓)中的 Drawable
  7. 利用adb工具android真机环境运行cpp(无需root)
  8. Android利用Jpush实现异地登陆下线
  9. 利用AS(3.0)工具将工程打包成jar

随机推荐

  1. android 抽屉的一些小问题
  2. Android应用程序基础
  3. 《IT蓝豹》吹雪花demo,学习android传感器
  4. Android(安卓)CTS 测试总结【转】
  5. Android(安卓)在界面中显示以及输入文本
  6. android udp通信
  7. 【android】关于退出时关闭“后台”显示
  8. 详解 Android(安卓)的 Activity 组件
  9. Ubuntu 系统上编译Android(安卓)系统
  10. android TextView xml中设置最大行数