android如何获取地理位置

 我来答
小炫马扎
高粉答主

推荐于2016-02-19 · 关注我不会让你失望
知道顶级答主
回答量:3.4万
采纳率:86%
帮助的人:4825万
展开全部
三种方式进行定位,获取用户位置,分别是基于基站定位, 网络定位,GPS定位。
1.基站定位(passive):这是基于网络基站进行定位的,定位的精确度在几十米到几千米不等,在城市中基站覆盖率比较高,推荐使用基站定位,如果是在郊区,基站相距较远,基站的覆盖没有城里好,定位的误差比较大。如果在郊区不推荐使用基站定位。
2.网络定位:wifi定位,网络定位
3.GPS定位:与卫星进行通信。手机中嵌入了GPS模块(精简版的A-GPS),通过A-GPS搜索卫星, 获取经纬度。使用GPS的弊端是:必须站在空旷的地方,头顶对着天空,如果云层厚了,也会受到一定的影响。精确度:10-50米
扩展知识:
使用Android是定位必备的权限:
< uses-permission android:name= " android.permission.ACCESS_FINE_LOCATION " /> //精确定位
<uses-permission android:name= "android.permission.ACCESS_MOCK_LOCATION" /> //模拟器
<uses-permission android:name= "android.permission.ACCESS_COARSE_LOCATION" /> //粗糙定位

//获取定位管理对象
LocationManager lm=(LocationManager)getSystemService(LOCATION_SERVICE);
String[] names=lm.getAllProviders();//获取所有的位置提供者,一般三种

Criteria criteria=new Criteria();//查询条件,如果设置了海拔,则定位方式只能是GPS;
criteria.setCostAllowed(true);//是否产生开销,比如流量费
String provider=lm.getBaseProvider(criteria,true)//获取最好的位置提供者,第二个参数为true,表示只获取那些被打开的位置提供者

lm.requestLocationUpdates(provier,0,0,new LocationListener(){});//获取位置。第二个参数表示每隔多少时间返回一次数据,第三个参数表示被定位的物体移动每次多少米返回一次数据。

private class MyLocationListener implements LocationListener {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {

}

@Override
public void onProviderEnabled(String provider) {

}

@Override

@Override
public void onLocationChanged(Location location) {
System. out.println( "服务中位置监听发送了变化了" );
float accuracy = location.getAccuracy(); // 精确度
double altitude = location.getAltitude(); // 海拔
double latitude = location.getLatitude(); // 纬度
double longitude = location.getLongitude(); // 经度
String locationInfo = "jingdu:" + longitude + ",weidu:" + latitude + ",haiba:" + altitude + ",jingquedu:" + accuracy;
Editor edit = sp.edit();
edit.putString( "location", locationInfo);
edit.commit();
}
} public void onProviderDisabled(String provider) {

}
创作者YXY
2014-01-08
知道答主
回答量:26
采纳率:0%
帮助的人:5.6万
展开全部
手机有地图的,手机设定里有个位置,点进去,前两个打钩即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
白开水KKK
推荐于2016-10-02 · TA获得超过200个赞
知道答主
回答量:42
采纳率:0%
帮助的人:33.8万
展开全部
两种方法;
1、SDK自带的API如getLastKnownLocation之类的,这个网上有各种实现版本不需要额外导入jar包,但是我在自己手机上就没成功过,从来都是返回空指针,据说是Google自己提供的东西,被屏蔽了,你懂得……囧rz……
2、百度地图API,百度有专门定位SDK,http://developer.baidu.com/map/geosdk-android-download.htm,当然也申请密钥的。这个定位比较方便,没受到大屏蔽术的影响,但是需要导入jar包,应用体积可能会大一点
当然,如果你要的是软件,当我没说
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宿舍总动员

2015-09-15 · TA获得超过8374个赞
知道大有可为答主
回答量:1.3万
采纳率:71%
帮助的人:1971万
展开全部
打开GPS系统就好
使用可以调用GPS接口的软件App
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
请叫我快递小哥
2015-09-25 · TA获得超过288个赞
知道小有建树答主
回答量:312
采纳率:0%
帮助的人:69.7万
展开全部
打开手机的GPS定位功能
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式