
您好,很高兴为您解答。
一、准备工作需要如下三种软件:1 Eclipse2 Android SDK3 开发Android程序的Eclipse 插件
为了开始我们的工作,首先要安装Eclipse,然后从Google的网站获得Android SDK,并且安装Eclipse插件。
二、Activity类每一种移动开发环境都有自己的基类。如J2ME应用程序的基类是midlets,BREW的基类是applets,而Android程序的基类是 Activity。这个activity为我们提供了对移动 *** 作系统的基本功能和事件的访问。这个类包含了基本的构造方法,键盘处理,挂起来恢复功能,以 及其他底层的手持设备的访问。实质上,我们的应用程序将是一个Activity类的扩展。在本文中读者将会通过例子学习到如何使用Activity类来编 写Android程序。
最近开发中使用的是百度地图android SDK:
1、初始化地图
2、注册定位监听器,初始化Location模块
3、初始化定位图层;启用定位,启用指南针,最后把定位图层添加到地图中。附简单代码:
//mMapView = (MapView) findViewById(RidbmapsView);
mMapView = new MapView(this); //初始化一个mapView 存放Map
mMapViewsetBuiltInZoomControls(true);// 设置启用默认的缩放控件
locationManager = mBMapMangetLocationManager();
/
由于LocationListener获取第一个位置修正的时间会很长,为了避免用户等待,
在LocationListener获取第一个更精确的位置之前,应当使用getLocationInfo() 获取一个缓存的位置
/
Location location = locationManagergetLocationInfo();
locationManagerrequestLocationUpdates(this);
mMapController = mMapViewgetController();// 得到mMapView的控制权,可以用它控制和驱动平移和缩放
if (location != null) {
mMapControllersetCenter(new GeoPoint(
(int) (locationgetLatitude() 1E6), (int) (location
getLongitude() 1E6)));
}
mMapControllersetZoom(12);// 设置地图zoom级别
MyLocationOverlay mylocTest = new MyLocationOverlay(this, mMapView);
mylocTestenableMyLocation();
mylocTestenableCompass();
mMapViewgetOverlays()add(mylocTest);
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
if (location != null) {
mMapControlleranimateTo(new GeoPoint(
(int) (locationgetLatitude() 1E6), (int) (location
getLongitude() 1E6)));
}
}
如果你想点击定位地点,显示信息,你需要去扩展MyLocationOverlay图层,它里面有个public boolean onTap(GeoPoint p, MapView map) {}方法,是处理点击事件的。
有问题,可以与我联系,共同探讨。
原因:
1丶检查手机是否有明显的碰撞痕迹,可能是由于手机进行了碰撞而导致手机的GPS损坏从而无法进行定位。有的人手机摔了之后无线网就不能用了,或者蓝牙不能开,都是因为手机碰撞造成的。
2丶进入百度地图的APP,检查是否是最新版本的APP手机应用,如果不是,请及时进行更新,如果是经常处在wifi环境下,可以勾选wifi环境下自动更新的选项。
3丶在手机的安全中心中,查看是否给了百度地图APP的权限,如果没有的话,可以打开,这样一来,手机授权百度地图GPS定位服务,从而使百度地图可以定位自己的位置。
4丶检查一下自己下的百度地图APP是否是真正的官方授权的正版软件。
定位技术有两种,一种是基于GPS的定位,一种是基于移动运营网的基站的定位。基于GPS的定位方式是利用手机上的GPS定位模块将自己的位置信号发送到定位后台来实现手机定位的。基站定位则是利用基站对手机的距离的测算距离来确定手机位置的。后者不需要手机具有GPS定位能力。
目前,一般的定位软件所使用的都是GPS定位和基站定位相结合。基站定位是通过电信移动运营商的网络(如GSM网)获取移动终端用户的位置信息(经纬度坐标)。GPS定位使用卫星,比较费电,精确,但在室内无法定位。基站定位的精度较低,但是可以在室内定位。基站定位的精度很大程度依赖于基站的分布及覆盖范围的大小,有时误差会超过一公里。
手机定位应该根据用户服务需求的不同提供不同的精度服务,并可以提供给用户选择精度的权利。例如美国FCC推出的定位精度在50米以内的概率为67%,定位精度在150米以内的概率为95%。定位精度一方面与采用的定位技术有关,另外还要取决于提供业务的外部环境,包括无线电传播环境、基站的密度和地理位置、以及定位所用设备等。
基站定位的大致原理为: 移动电话测量不同基站的下行导频信号,得到不同基站下行导频的TOA(Time of Arrival,到达时刻)或TDOA(Time Difference of Arrival,到达时间差),根据该测量结果并结合基站的坐标,一般采用三角公式估计算法,就能够计算出移动电话的位置。实际的位置估计算法需要考虑多基站(3个或3个以上)定位的情况,因此算法要复杂很多。一般而言,移动台测量的基站数目越多,测量精度越高,定位性能改善越明显。
还有,你在使用手机百度地图等软件的时候,在不打开网络和GPS的情况下,实际上也能实现定位。但是你可能看不出来,因为在你没有打开网络的时候,地图页面不会加载,看到的只是全屏的网格。但你会看到进入时的点位置有一个明显的跳动过程,这是该软件设置的初始位置向你当前位置跳转。你也可以先打开网络,实用软件加载一遍地图,如其存在你的缓存中,这是在关闭网络的情况下就会显示你的位置。
资料来源:>
首先导入依赖:
首次导入依赖的过程可能有点慢
然后在需要用到逆地理编码的类或d窗或其他地方中实现 GeocodeSearchOnGeocodeSearchListener
监听
例子:
并实现其两个方法:
通过经纬度逆地理编码得到位置核心编码
这样我们就可以实现通过经纬度得到一个位置信息了
福利赠送~~~
1、继承 OnGeocodeSearchListener 监听。
2、构造 GeocodeSearch 对象,并设置监听。
3、通过 GeocodeQuery(javalangString locationName, javalangString city) 设置查询参数,调用 GeocodeSearch 的 getFromLocationNameAsyn(GeocodeQuery geocodeQuery) 方法发起请求。
4、通过回调接口 onGeocodeSearched 解析返回的结果。
说明:
1)可以在回调中解析result,获取坐标信息。
2)返回结果成功或者失败的响应码。1000为成功,其他为失败(详细信息参见网站开发指南-实用工具-错误码对照表)
可以参考如下内容:
使用Android自带的LocationManager和Location获取位置的时候,经常会有获取的location为null的情况,并且 *** 作起来也不是很方便,在这个Demo里我使用了百度地图API中的定位SDK,可以一次性获取当前位置经纬度以及详细地址信息,还可以获取周边POI信息,同时可以设定位置通知点,当到达某一位置时,发出通知信息等方式来告知用户。jar包下载以及官方文档请参照:百度定位SDK,前提是需要注册百度开发者账号。
下面来看看定位的基本原理,目前,定位SDK可以通过GPS、基站、Wifi信号进行定位。基本定位流程如下图所示,当应用程序向定位SDK发起定位请求时,定位SDK会根据当前的GPS、基站、Wifi信息生成相对应的定位依据。然后定位SDK会根据定位依据来进行定位。如果需要,定位SDK会向定位服务器发送网络请求。定位服务器会根据请求的定位依据推算出对应的坐标位置,然后根据用户的定制信息,生成定位结果返回给定位SDK。
手机内置GPS功能不存在使用权限问题。只要手机上有内置GPS,且处在工作状态,任何有需求的软件都可以自由调用它的信号。 楼主的手机以前能定位升级后不能定位了,可能的原因很多。建议安装GPS TEST(网上搜索可得)测试一下,弄清楚现在的状况,究竟是搜不到星,还是搜到星定不了位。把可能性的范围缩小一下,就容易有针对性的对症下药解决问题了 --三星的可定位到本人位置谈不上是授权,实际上就是个类似于使用开关,如果说它是授权,那么其他导航软件也都有,不过几乎都默认定位到自己位置,只是三星(好像搜狗也是)把它列出来让使用者再设定一下,实际上是可有可无。也就是说,凡是没有这个设置选项的,都是默认定位到自己位置的,而且,该选项只是指定打开地图时的默认位置,对GPS功能无影响
以上就是关于如何在Android中编程获得当前的GPS定位全部的内容,包括:如何在Android中编程获得当前的GPS定位、android 手机 地图 定位 编程 如何获取 定位的地点 的图片 和 文字 信息、android 百度地图怎么获取不到GPS定位等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)