一.使用之前的简单封装的OkHttpUtil

http://www.cnblogs.com/itfenqing/p/6758909.html

二.关键代码:

public class MainActivity extends Activity {

    private TextView tip;
private LocationManager locationManager;
private String provider; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); tip = (TextView)findViewById(R.id.tip);
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); // 获取所有可用的地理位置提供器
List<String> providerList = locationManager.getProviders(true); if( providerList.contains(locationManager.GPS_PROVIDER) ){
provider = locationManager.GPS_PROVIDER;
}else if( providerList.contains(locationManager.NETWORK_PROVIDER) ){
provider = locationManager.NETWORK_PROVIDER;
}else{
Toast.makeText(this, "没有地理位置提供器", Toast.LENGTH_LONG).show();
return;
} Location location = null;
try {
location = locationManager.getLastKnownLocation(provider);
}catch (SecurityException e){
e.printStackTrace();
} if(location != null){
showLocation(location);
} try{
// 设置一个监听器,每1秒检测一次,位置移动超过1米,则更新
locationManager.requestLocationUpdates(provider,
,
,
listener);
}catch (SecurityException e){
e.printStackTrace();
} } // 监听器
LocationListener listener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
showLocation(location);
} @Override
public void onStatusChanged(String provider, int status, Bundle extras) { } @Override
public void onProviderEnabled(String provider) { } @Override
public void onProviderDisabled(String provider) { }
}; private void showLocation(Location location){
String url = "http://api.map.baidu.com/geocoder/v2/?ak=nUvlnh8wk6cDupYs5foacyXz&" +
"location="+location.getLatitude()+","
+location.getLongitude()+"&output=json&pois=1";
// 异步获取
OkHttpUtil.AsyncGet(url, new HttpListener() {
@Override
public void onFinish(String reponse) {
parseJson(reponse);
} @Override
public void onError(Exception e) {
e.printStackTrace();
}
}); //String tipStr = "纬度:" + location.getLatitude() + ",经度:" + location.getLongitude();
//tip.setText(tipStr);
} // parseJson
private void parseJson(String jsonStr){
try {
final StringBuilder info = new StringBuilder();
JSONObject json = new JSONObject(jsonStr);
if( json.get("status").toString().equals("") ){
info.append("经度" + json.getJSONObject("result")
.getJSONObject("location").get("lng").toString());
info.append(",纬度" + json.getJSONObject("result")
.getJSONObject("location").get("lat").toString());
info.append(",地理位置" + json.getJSONObject("result")
.get("formatted_address").toString()); runOnUiThread(new Runnable() {
@Override
public void run() {
tip.setText(info.toString());
}
});
}
}catch (Exception e){
e.printStackTrace();
} } @Override
protected void onDestroy() {
super.onDestroy();
// 取消监听
if( locationManager != null ){
try {
locationManager.removeUpdates(listener);
}catch (SecurityException e){
e.printStackTrace();
}
}
}
}

三.所需权限

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />

使用LBS(地理位置)的更多相关文章

  1. 项目源码--JAVA基于LBS地理位置信息应用的服务端

    技术要点: 1. LBS应用框架服务端实现 2. JAVA服务端技术 3. MYSQL数据库技术 4. 源码带详细的中文注释 ......   详细介绍: 1. LBS应用框架服务端实现 此套源码是基 ...

  2. 什么是LBS?地理位置服务

    做微信开发中必有的LBS,查了下复制过来做个了解. 关键字:定位 服务 基于位置的服务,是指通过电信移动运营商的无线电通讯网络或外部定位方式,获取移动终端用户的位置信息,在GIS平台的支持下,为用户提 ...

  3. 项目源码--Android基于LBS地理位置信息应用的客户端

    下载源码 技术要点: 1. LBS应用框架客户端实现 2. 登录与注册系统 3. TAB类型UI实现 4. HTTP通信模块 5. 源码带详细的中文注释 ...... 详细介绍: 1. LBS应用框架 ...

  4. LBS地理位置距离计算方法之geohash算法

    随着移动终端的普及,很多应用都基于LBS功能,附近的某某(餐馆.银行.妹纸等等).基础数据中,一般保存了目标位置的经纬度:利用用户提供的经纬度,进行对比,从而获得是否在附近.这里需要在设置出一个字段, ...

  5. ***微信LBS地理位置开发+百度地图API(地理位置和坐标转换)

    微信公众平台开发 - 获取用户地理位置 本文介绍在微信公众平台上如何使用高级接口开发获取用户地理位置的功能. 一.获取用户地理位置接口 开通了上报地理位置接口的公众号,用户在关注后进入公众号会话时,会 ...

  6. 基于LBS的地理位置附近的搜索以及由近及远的排序

    Nosql学习之Redis资料(一) http://redis.io/download 目前基于LBS地理位置的搜索已经应用非常广了,的确是个很方便的东西. 我们做程序的就是要考虑如何通过这些功能,来 ...

  7. [资料]mysql实现地理位置搜索

    mysql实现地理位置搜索 使用mysql来实现lbs(地理位置服务)功能 Mysql 地区经纬度 查询

  8. 使用.Net+非关系型数据库MongoDB 实现LBS商家按距离排序_按离我最近排序

    .Net MongoDB LBS地理位置定位 开发过程,实现商家按距离排序 前言: 在使用美团点外卖,看电影,找好吃的时候,经常会注意到软件有一个按距离排序,找离我最近的商家,心中有一些疑问,.Net ...

  9. 【mongoDB高级篇①】聚集运算之group,aggregate

    group 语法 db.collection.group({ key:{field:1},//按什么字段进行分组 initial:{count:0},//进行分组前变量初始化,该处声明的变量可以在以下 ...

随机推荐

  1. 汕头市队赛 SRM13 T2

    这道题很容易想到是二分 但是因为可能会爆LL 所以要加一波特判 #include<cstdio> #include<cstring> #include<algorithm ...

  2. 使用matlab判断男声与女声

    (转自) http://wenku.baidu.com/view/1d55480fbe1e650e52ea99a3.html %filename:manwoman.m %different man f ...

  3. Python编程学习笔记 随时更新

    import urllib.request import re url = 'http://stock.sohu.com/news/' html = urllib.request.urlopen(ur ...

  4. [BZOJ1834][ZJOI2010]network 网络扩容 最大流+费用流

    1834: [ZJOI2010]network 网络扩容 Time Limit: 3 Sec  Memory Limit: 64 MB Submit: 3330  Solved: 1739 [Subm ...

  5. 这绝对是有史以来最详细的web前端学习路线

    定要善用开发者工具.firefox的firebug和Chrome的F12都是很好的选择,用好了这个必会发现他带给你的帮助比看一本书更多.你把firebug摸透了你还担心对DOM理解不够?考虑到未来,h ...

  6. IE常见兼容问题

    图片有边框 CSS 增加 border:0; border,在IE 模式下不算在宽度内;

  7. POJ 1862 Stripies【哈夫曼/贪心/优先队列】

    Stripies Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 18198   Accepted: 8175 Descrip ...

  8. Educational Codeforces Round 33 (Rated for Div. 2) D. Credit Card

    D. Credit Card time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  9. Codeforces Gym 101775D Mr. Panda and Geometric Sequence(2017-2018 ACM-ICPC Asia East Continent League Final,D题,枚举剪枝)

    题目链接  ECL-Final 2017 Problem D 题意  给定$2*10^{5}$组询问,每个询问求$l$到$r$之间有多少个符合条件的数 如果一个数小于等于$10^{15}$, 并且能被 ...

  10. Codeforces 954H Path Counting(DP)

    题目链接  Path Counting 题意  给定一棵高度为$n$的树,给出每一层的每个点的儿子个数(某一层的所有点儿子个数相同).   令$f_{k}$为长度为$k$的路径条数,求$f_{1}, ...