使用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},//进行分组前变量初始化,该处声明的变量可以在以下 ...
随机推荐
- Quartus 调试中的Nios 程序
FPGA的程序通常包含硬件和软件两部分.正常情况下调试需要分别进行下载,过程繁琐. 为了将Nios II的软件程序包含到.sof文件中方便调试,可以在SOPC Builder中的RAM初始化为Nios ...
- 【CF1023D】Array Restoration(构造,线段树)
题意:有一个长为n的序列,对其进行q次操作,第i次操作可以把连续的一段覆盖为i 现在给出操作后的序列,第i个数字为a[i],其中有一些为0的位置可以为任意值,要求构造任意一组合法的操作后的序列 无解输 ...
- Spring 的IOC 和Aop
Spring 的IOC 和Aop
- 题(NOIP模拟赛Round #10)
题目描述: 有一张的地图,其中的地方是墙,的地方是路.有两种操作: 给出个地点,询问这个地点中活动空间最大的编号.若询问的位置是墙,则活动空间为:否则活动空间为询问地点通过四联通能到达的点的个数.如果 ...
- cygwin设置
解决乱码问题 # 设置为中文环境,使提示成为中文 export LANG =" zh_CN.UTF-8 " # 输出为中文编码 export OUTPUT_CHARSET =& ...
- shell脚本查看服务器基本信息
#!/bin/sh #电脑概览 #电脑型号 ComputerModel=`/usr/bin/sudo /usr/sbin/dmidecode | grep -A2 "System Infor ...
- Git-stash操作
git stash git pull git stash pop git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容.由于可能存在多个Stash的内容,所以用栈来管 ...
- 从linux看Android之一--init进程
准备环境: 熟悉linux环境和shell脚本 用SSHDROID和XShell搭建android的命令行环境(帮助找到熟悉的linux界面,因为android删除了很多标准linux平台上很多的sh ...
- MPchartAnadroid的对比柱状图
1.导入三方jar包(可参照) MPAndroidChart(GitHub上优秀得图表功能库) MPAndroidChart常见设置属性(一)——应用层 2.布局activity_main.xml(这 ...
- js面试总结
<div id="app"> <button onClick="app()">点击1</button> <button ...