可以参考如下内容:
使用Android自带的LocationManager和Location获取位置的时候,经常会有获取的location为null的情况,并且 *** 作起来也不是很方便,在这个Demo里我使用了百度地图API中的定位SDK,可以一次性获取当前位置经纬度以及详细地址信息,还可以获取周边POI信息,同时可以设定位置通知点,当到达某一位置时,发出通知信息等方式来告知用户。jar包下载以及官方文档请参照:百度定位SDK,前提是需要注册百度开发者账号。
下面来看看定位的基本原理,目前,定位SDK可以通过GPS、基站、Wifi信号进行定位。基本定位流程如下图所示,当应用程序向定位SDK发起定位请求时,定位SDK会根据当前的GPS、基站、Wifi信息生成相对应的定位依据。然后定位SDK会根据定位依据来进行定位。如果需要,定位SDK会向定位服务器发送网络请求。定位服务器会根据请求的定位依据推算出对应的坐标位置,然后根据用户的定制信息,生成定位结果返回给定位SDK。
public static Bitmap createBitmap (Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter)
返回一个不可改变的位图,该位图来自源位图的子集,并根据可选的矩阵进行转换。它被初始化为跟源位图有同样的密度。
参数
source 产生子位图的源位图;
x 子位图第一个像素在源位图的X坐标
y 子位图第一个像素在源位图的y坐标
width 子位图每一行的像素个数
height 子位图的行数
m 对像素值进行变换的可选矩阵
filter 如果为true,源图要被过滤。该参数仅在matrix包含了超过一个翻转才有效
返回值
一个描述了源图指定子集的位图。
异常
IllegalArgumentException 如果x,y,width,height的值超出了源图的维度,该异常会被抛出。
先在manifest里面配置 <uses-permission android:name="androidpermissionACCESS_FINE_LOCATION"/>
做一个button在OnClick事件里面写
LocationManager locationmanager=(LocationManager) Location01ActivitythisgetSystemService(ContextLOCATION_SERVICE);
//作用:1定义当前所使用的LocationProvider,后面的参数,一个是时间(间隔的最小时间,毫秒单位,更新位置,但是为了保存电量间隔可能比这个大也可能比这个小)
//两次定位的最小距离,单位是米
locationmanagerrequestLocationUpdates(LocationManagerGPS_PROVIDER, 0, 0, new TestLocationListener());
//如果如下设置,则用户需要移动5000米并过5秒后才会显示
// locationmanagerrequestLocationUpdates(LocationManagerGPS_PROVIDER, 5000, 5000, new TestLocationListener());
再定义一个类
class TestLocationListener implements LocationListener{
@Override
public void onLocationChanged(Location arg0) {
Systemoutprintln(arg0getLongitude());//经度
Systemoutprintln(arg0getLatitude());//纬度
}
//当数据的提供者不能用的时候
@Override
public void onProviderDisabled(String arg0) {
}
//当数据的提供者能用的时候
@Override
public void onProviderEnabled(String arg0) {
}
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
}
}
HTML5中可以通过IP,WIFI信息,GPS,来实现地理定位,当然相关精度也是有所不同,所以如果要精确导航就得使用GPS信息。
下面是一段HTML5结合百度地图API来获取位置的代码:
<div id="allmap"></div>当前定位地址:<a id="du-gps"></a><span></span></div><script>
var map = new BMapMap("allmap");
var geolocation = new BMapGeolocation();
geolocationgetCurrentPosition(function(r){
if(thisgetStatus() == BMAP_STATUS_SUCCESS){
mappanTo(rpoint);
//alert('您的位置:'+rpointlng+','+rpointlat);
var pt = rpoint;
var geoc = new BMapGeocoder();
geocgetLocation(pt, function(rs){
var addComp = rsaddressComponents;
//alert(addCompprovince + ", " + addCompcity + ", " + addCompdistrict + ", " + addCompstreet + ", " + addCompstreetNumber);
$("#du-gps")text(addCompdistrict+addCompstreet+addCompstreetNumber);
});
}
else {
alert('failed'+thisgetStatus());
}
},{enableHighAccuracy: true})
</script>
public boolean onTouchEvent(androidviewMotionEvent event) {
int x = eventgetX();
int y = eventgetY();
多点触摸时 假如是第i个点
int x = eventgetX(i);
int y = eventgetY(i);
坐标就是 P(x,y)
}
以上就是关于怎么在android百度地图通过经纬度来定位并且显示出地图位置全部的内容,包括:怎么在android百度地图通过经纬度来定位并且显示出地图位置、Android bitmap如何获取坐标、求Android GPS的完全代码啊,现老是取不到坐标!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)