使用LBS(地理位置)
一.使用之前的简单封装的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(地理位置)的更多相关文章
- 项目源码--JAVA基于LBS地理位置信息应用的服务端
技术要点: 1. LBS应用框架服务端实现 2. JAVA服务端技术 3. MYSQL数据库技术 4. 源码带详细的中文注释 ...... 详细介绍: 1. LBS应用框架服务端实现 此套源码是基 ...
- 什么是LBS?地理位置服务
做微信开发中必有的LBS,查了下复制过来做个了解. 关键字:定位 服务 基于位置的服务,是指通过电信移动运营商的无线电通讯网络或外部定位方式,获取移动终端用户的位置信息,在GIS平台的支持下,为用户提 ...
- 项目源码--Android基于LBS地理位置信息应用的客户端
下载源码 技术要点: 1. LBS应用框架客户端实现 2. 登录与注册系统 3. TAB类型UI实现 4. HTTP通信模块 5. 源码带详细的中文注释 ...... 详细介绍: 1. LBS应用框架 ...
- LBS地理位置距离计算方法之geohash算法
随着移动终端的普及,很多应用都基于LBS功能,附近的某某(餐馆.银行.妹纸等等).基础数据中,一般保存了目标位置的经纬度:利用用户提供的经纬度,进行对比,从而获得是否在附近.这里需要在设置出一个字段, ...
- ***微信LBS地理位置开发+百度地图API(地理位置和坐标转换)
微信公众平台开发 - 获取用户地理位置 本文介绍在微信公众平台上如何使用高级接口开发获取用户地理位置的功能. 一.获取用户地理位置接口 开通了上报地理位置接口的公众号,用户在关注后进入公众号会话时,会 ...
- 基于LBS的地理位置附近的搜索以及由近及远的排序
Nosql学习之Redis资料(一) http://redis.io/download 目前基于LBS地理位置的搜索已经应用非常广了,的确是个很方便的东西. 我们做程序的就是要考虑如何通过这些功能,来 ...
- [资料]mysql实现地理位置搜索
mysql实现地理位置搜索 使用mysql来实现lbs(地理位置服务)功能 Mysql 地区经纬度 查询
- 使用.Net+非关系型数据库MongoDB 实现LBS商家按距离排序_按离我最近排序
.Net MongoDB LBS地理位置定位 开发过程,实现商家按距离排序 前言: 在使用美团点外卖,看电影,找好吃的时候,经常会注意到软件有一个按距离排序,找离我最近的商家,心中有一些疑问,.Net ...
- 【mongoDB高级篇①】聚集运算之group,aggregate
group 语法 db.collection.group({ key:{field:1},//按什么字段进行分组 initial:{count:0},//进行分组前变量初始化,该处声明的变量可以在以下 ...
随机推荐
- 汕头市队赛 SRM 07 C 整洁的麻将桌
C 整洁的麻将桌 SRM 07 背景&&描述 天才麻将少女KPM立志要在日麻界闯出一番名堂. KPM上周双打了n场麻将,但她这次没控分,而且因为是全民参与的麻将大赛,所以她的名 ...
- Runtime.getRuntime().exec方法
Runtime.getRuntime().exec()方法主要用于执行外部的程序或命令. Runtime.getRuntime().exec共有六个重载方法: public Process exec( ...
- eclipse块编辑
1. Windows > Preferences然后键入keys或浏览到General > Keys.根据该键输入filter text的block selection快速找到快捷方式上市 ...
- Fiddler抓包3-查看get与post请求【转载】
本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/p/6719717.html 前言 前面两篇关于Fiddler抓包的一些基本配置,配置完之后就可 ...
- Informix 启动 Fatal error in shared memory initialization解决方法
https://blog.csdn.net/cy309173854/article/details/54929735
- R 语言词云wordcloud
来源:http://blog.chinaunix.net/uid-25135004-id-4311592.html wordcloud函数--用于绘制词云图 用法: wordcloud(words,f ...
- zclip笔记:解决zclip失效问题
在一个子页面里想实现一键复制到剪贴版的功能,使用zclip插件,用jquery的方式实现时出现了诡异问题.复制功能平时正常,当页面中所列的内容过多时,一键复制的功能失效. 这个问题相当不好定位,先说结 ...
- hashmap hashtable
作者:付佳豪链接:https://zhuanlan.zhihu.com/p/37607299来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 在面试的时候,java集合最 ...
- Count and Say (Array Length Encoding) -- LeetCode
The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...
- luogu P3819 松江1843路
题目描述 涞坊路是一条长L米的道路,道路上的坐标范围从0到L,路上有N座房子,第i座房子建在坐标为x[i]的地方,其中住了r[i]人. 松江1843路公交车要在这条路上建一个公交站,市政府希望让最多的 ...