百度定位功能封装

Android百度地图(一):百度地图定位sdk 类方法参数、定位原理详细介绍 本文主要针对百度定位sdk的api进行详细说明、注意事项,还会简单的谈一下定位的原理,目的是让读者真正了解定位,只有在完全了解的情况下,在开发中才会少走弯路,少踩坑。 一 定位简介 目前定位大致分为三种:gps定位、wifi定位、基站定位 gps定位:卫星定位,利用手机gps硬件定位,实现简单,手机本地就能实现定位,不需要和服务端进行交互。 //伪代码 LocationMana 阅读详情
百度定位SDK应用封装及官方文档

应用封装

public class BaiduLocationHelper {

public interface MyLocationResultI
{
   public void doLocationResult(HashMap hmResult);
}

private Dialog dlgWait;
private LocationClient mLocationClient;
private Date locationStartDate = null; // 定位开始时间
private Date locationEndDate = null; // 定位结束时间

MyLocationResultI myLocationResultI = null;
public void setLocationCallBack(MyLocationResultI mr)  
    {  
myLocationResultI = mr;
    }  

/**
* 
* @函数名称: startLocation
* @功能描述: 开始定位请求,结果在回调中
* @return void
* @throws
*/
public void startLocation(Context context, String strProductName) {
// dlgWait = Tools.createLoadingDialog(this, "定位中,请稍等……");
// dlgWait.show();
mLocationClient = new LocationClient(context);
mLocationClient.registerLocationListener(new MyLocationListenner());
LocationClientOption option = new LocationClientOption();
// 高精度定位模式:这种定位模式下,会同时使用网络定位和GPS定位,优先返回最高精度的定位结果;
option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
// 设置是否打开gps,使用gps前提是用户硬件打开gps。默认是不打开gps的。
option.setOpenGps(true);
// 设置坐标类型 返回的定位结果是百度经纬度,默认值gcj02国测局经纬度坐标系
option.setCoorType("bd09ll");
// 可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的
option.setScanSpan(0);
option.setIsNeedAddress(true);// 返回的定位结果包含地址信息
//option.setLocationNotify(true);//可选,默认false,设置是否当gps有效时按照1S1次频率输出GPS结果
        //option.setIgnoreKillProcess(true);//可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死
//setIsNeedLocationPoiList(boolean isNeedLocationPoiList) //设置是否需要返回位置POI信息,可以在BDLocation.getPoiList()中得到数据
option.setIsNeedLocationDescribe(true);//设置是否需要返回位置语义化信息,可以在BDLocation.getLocationDescribe()中得到数据,ex:"在天安门附近", 可以用作地址信息的补充

// 设置产品线名称:设置产品线名称。强烈建议您使用自定义的产品线名称,方便我们以后为您提供更高效准确的定位服务。
option.setProdName(strProductName);
mLocationClient.setLocOption(option);
//
locationStartDate = new Date();
mLocationClient.start();
}

/**
* 
* @类名称:MyLocationListenner
* @类描述: 定位监听类
* @创建人:SQWANG
* @创建时间:2015-2-27 下午12:06:33
* @修改人:
* @修改时间:
* @修改备注:
* @版本:V1.0
*/
public class MyLocationListenner implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
//mLocationClient.stop();// 停止定位
locationEndDate = new Date(); // 定位结束时间
if (dlgWait != null && dlgWait.isShowing()) {
dlgWait.dismiss();
}
doLocationResult(location);
}
}

/**
* 
* @函数名称: doLocationResult 
* @功能描述: 处理定位结果
* @param location
* 定位返回错误码查询:
   61 : GPS定位结果,GPS定位成功。
62 : 无法获取有效定位依据,定位失败,请检查运营商网络或者wifi网络是否正常开启,尝试重新请求定位。
63 : 网络异常,没有成功向服务器发起请求,请确认当前测试手机网络是否通畅,尝试重新请求定位。
65 : 定位缓存的结果。
66 : 离线定位结果。通过requestOfflineLocaiton调用时对应的返回结果。
67 : 离线定位失败。通过requestOfflineLocaiton调用时对应的返回结果。
68 : 网络连接失败时,查找本地离线定位时对应的返回结果。
161: 网络定位结果,网络定位定位成功。
162: 请求串密文解析失败。
167: 服务端定位失败,请您检查是否禁用获取位置信息权限,尝试重新请求定位。
502: key参数错误,请按照说明文档重新申请KEY。
505: key不存在或者非法,请按照说明文档重新申请KEY。
601: key服务被开发者自己禁用,请按照说明文档重新申请KEY。
602: key mcode不匹配,您的ak配置过程中安全码设置有问题,请确保:sha1正确,“;”分号是英文状态;
且包名是您当前运行应用的包名,请按照说明文档重新申请KEY。
501~700:key验证失败,请按照说明文档重新申请KEY。
如果不能定位,请记住这个返回值,并到百度LBS开放平台论坛Andriod定位SDK版块中进行交流
http://bbs.lbsyun.baidu.com/forum.php?mod=forumdisplay&fid=10 。
若返回值是162~167,请将错误码、imei和定位时间反馈至loc-bugs@baidu.com,
以便我们跟进追查问题。
*/
public void doLocationResult(BDLocation location){
boolean bLocationSuccess = false;
        if (location.getLocType() == BDLocation.TypeGpsLocation){// GPS定位结果
        bLocationSuccess = true;           
        } else if (location.getLocType() == BDLocation.TypeNetWorkLocation){// 网络定位结果
        bLocationSuccess = true;            
        } else if (location.getLocType() == BDLocation.TypeOffLineLocation) {// 离线定位结果
        bLocationSuccess = true;           
        } else if (location.getLocType() == BDLocation.TypeServerError) {
        bLocationSuccess = false;           
        } else if (location.getLocType() == BDLocation.TypeNetWorkException) {
        bLocationSuccess = false;           
        } else if (location.getLocType() == BDLocation.TypeCriteriaException) {
        bLocationSuccess = false;            
        }
        
        @SuppressWarnings("rawtypes")
HashMap hm = new HashMap();
        if (!bLocationSuccess){//定位失败
        hm.put("LocationResult", false);
        myLocationResultI.doLocationResult(hm);
        }else{
        hm.put("LocationResult", true);
        //不包含地址信息
    if (!location.hasAddr()){//仅有经纬度,不包括位置信!
    hm.put("IncludeAddr", false);
    }else{
    hm.put("IncludeAddr", true);
    }
    // 定位用时,单位毫秒
    long locationUsedTime = locationEndDate.getTime() - locationStartDate.getTime();
    //
    hm.put("Province", location.getProvince());//省
    hm.put("City", location.getCity());//市
    hm.put("Address", location.getAddress());//街道
    hm.put("LocationDescribe", location.getLocationDescribe());//位置语义化信息,ex:"在天安门附近", 可以用作地址信息的补充
    hm.put("Longitude", Float.parseFloat(location.getLongitude()+""));//经度
    hm.put("Latitude", Float.parseFloat(location.getLatitude()+""));//纬度
    hm.put("Radius", location.getRadius());//定位精度
    hm.put("LocType", location.getLocType());//定位类型
    hm.put("Loctime", locationUsedTime);//定位耗时

    myLocationResultI.doLocationResult(hm);
        }
}
}



百度官方文档,很详细仔细阅读下什么都有了

导入库文件

在相关下载里下载最新的库文件。将so文件的压缩文件解压出来,把对应架构下的so文件放入开发者自己APP的对应架构下的文件夹中(建议全部放入以提高程序兼容性),将locSDK_6.X.jar文件拷贝到工程的libs目录下,这样您就可以在程序中使用百度定位SDK了。

使用eclipse开发的开发者,只需要将SO的文件夹放到libs下即可;使用AndroidStutio的开发者除了上述操作,还需要在build.gradle中配置SO的使用,如下所示:

sourceSets {
        	main {
    			jniLibs.srcDirs = ['libs']
        	}
}

开发者如果开发的是系统应用,则只在工程中配置SO还是不够的,还需要手动把对应架构的SO拷贝到/system/lib下,如果是64位系统的话需要将64位的SO拷贝到/sytem/lib64下。

注意:每次新版本的定位SDK,开发者除了要更新JAR包之外,也要注意一下SO有无更新,如果SO名称不一样了,也要及时替换老的SO版本,不然会导致定位失败!

设置AndroidManifest.xml

在application标签中声明service组件,每个app拥有自己单独的定位service

<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote">
</service>

【重要提醒】

定位SDKv3.1版本之后,以下权限已不需要,请取消声明,否则将由于Android 5.0多帐户系统加强权限管理而导致应用安装失败。 <uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE"></uses-permission>

声明使用权限

<!-- 这个权限用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!-- 这个权限用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!-- 获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!-- 用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!-- 访问网络,网络定位需要上网-->
<uses-permission android:name="android.permission.INTERNET" />
<!-- SD卡读取权限,用户写入离线定位数据-->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>

设置AcessKey

SDK4.2及之后版本需要在Mainfest.xml设置Accesskey,设置有误会引起定位和地理围栏服务不能正常使用,必须进行Accesskey的正确设置。

设置AccessKey,在application标签中加入

<meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="key" />       //key:开发者申请的key

import相关类

import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.location.BDNotifyListener;//假如用到位置提醒功能,需要import该类
import com.baidu.location.Poi;

功能类的使用

使用综合定位功能

综合定位功能指的根据用户实际需求,返回用户当前位置的基础定位服务。包含GPS和网络定位(Wi-Fi和基站定位)功能。基本定位功能同时还支持结合定位结果的反地理编码功能,离线定位,位置提醒功能和位置语义化功能。

第一步,初始化LocationClient类

此处需要注意:LocationClient类必须在主线程中声明。需要Context类型的参数。

Context需要时全进程有效的context,推荐用getApplicationConext获取全进程有效的context

public LocationClient mLocationClient = null;
public BDLocationListener myListener = new MyLocationListener();
 
public void onCreate() {
    mLocationClient = new LocationClient(getApplicationContext());     //声明LocationClient类
    mLocationClient.registerLocationListener( myListener );    //注册监听函数
}

LocationClient类是定位SDK的核心类,具体方法详见类参考。

第二步,配置定位SDK参数

设置定位参数包括:定位模式(高精度定位模式,低功耗定位模式和仅用设备定位模式),返回坐标类型,是否打开GPS,是否返回地址信息、位置语义化信息、POI信息等等。

LocationClientOption类,该类用来设置定位SDK的定位方式,e.g.:

private void initLocation(){
        LocationClientOption option = new LocationClientOption();
        option.setLocationMode(LocationMode.Hight_Accuracy
);//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
        option.setCoorType("bd09ll");//可选,默认gcj02,设置返回的定位结果坐标系
        int span=1000;
        option.setScanSpan(span);//可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的
        option.setIsNeedAddress(true);//可选,设置是否需要地址信息,默认不需要
        option.setOpenGps(true);//可选,默认false,设置是否使用gps
        option.setLocationNotify(true);//可选,默认false,设置是否当gps有效时按照1S1次频率输出GPS结果
        option.setIsNeedLocationDescribe(true);//可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近”
        option.setIsNeedLocationPoiList(true);//可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到
option.setIgnoreKillProcess(false);//可选,默认false,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认杀死
        option.SetIgnoreCacheException(false);//可选,默认false,设置是否收集CRASH信息,默认收集
option.setEnableSimulateGps(false);//可选,默认false,设置是否需要过滤gps仿真结果,默认需要
        mLocationClient.setLocOption(option);
    }

高精度定位模式:这种定位模式下,会同时使用网络定位和GPS定位,优先返回最高精度的定位结果;

低功耗定位模式:这种定位模式下,不会使用GPS,只会使用网络定位(Wi-Fi和基站定位);

仅用设备定位模式:这种定位模式下,不需要连接网络,只使用GPS进行定位,这种模式下不支持室内环境的定位。

第三步,实现BDLocationListener接口

BDLocationListener接口有1个方法需要实现: 1.接收异步返回的定位结果,参数是BDLocation类型参数。

public class MyLocationListener implements BDLocationListener {
 
        @Override
        public void onReceiveLocation(BDLocation location) {
            //Receive Location
            StringBuffer sb = new StringBuffer(256);
            sb.append("time : ");
            sb.append(location.getTime());
            sb.append("\nerror code : ");
            sb.append(location.getLocType());
            sb.append("\nlatitude : ");
            sb.append(location.getLatitude());
            sb.append("\nlontitude : ");
            sb.append(location.getLongitude());
            sb.append("\nradius : ");
            sb.append(location.getRadius());
            if (location.getLocType() == BDLocation.TypeGpsLocation){// GPS定位结果
                sb.append("\nspeed : ");
                sb.append(location.getSpeed());// 单位:公里每小时
                sb.append("\nsatellite : ");
                sb.append(location.getSatelliteNumber());
                sb.append("\nheight : ");
                sb.append(location.getAltitude());// 单位:米
                sb.append("\ndirection : ");
                sb.append(location.getDirection());// 单位度
                sb.append("\naddr : ");
                sb.append(location.getAddrStr());
                sb.append("\ndescribe : ");
                sb.append("gps定位成功");
 
            } else if (location.getLocType() == BDLocation.TypeNetWorkLocation){// 网络定位结果
                sb.append("\naddr : ");
                sb.append(location.getAddrStr());
                //运营商信息
                sb.append("\noperationers : ");
                sb.append(location.getOperators());
                sb.append("\ndescribe : ");
                sb.append("网络定位成功");
            } else if (location.getLocType() == BDLocation.TypeOffLineLocation) {// 离线定位结果
                sb.append("\ndescribe : ");
                sb.append("离线定位成功,离线定位结果也是有效的");
            } else if (location.getLocType() == BDLocation.TypeServerError) {
                sb.append("\ndescribe : ");
                sb.append("服务端网络定位失败,可以反馈IMEI号和大体定位时间到loc-bugs@baidu.com,会有人追查原因");
            } else if (location.getLocType() == BDLocation.TypeNetWorkException) {
                sb.append("\ndescribe : ");
                sb.append("网络不同导致定位失败,请检查网络是否通畅");
            } else if (location.getLocType() == BDLocation.TypeCriteriaException) {
                sb.append("\ndescribe : ");
                sb.append("无法获取有效定位依据导致定位失败,一般是由于手机的原因,处于飞行模式下一般会造成这种结果,可以试着重启手机");
            }
sb.append("\nlocationdescribe : ");
                sb.append(location.getLocationDescribe());// 位置语义化信息
                List<Poi> list = location.getPoiList();// POI数据
                if (list != null) {
                    sb.append("\npoilist size = : ");
                    sb.append(list.size());
                    for (Poi p : list) {
                        sb.append("\npoi= : ");
                        sb.append(p.getId() + " " + p.getName() + " " + p.getRank());
                    }
                }
            Log.i("BaiduLocationApiDem", sb.toString());
        }

BDLocation类,封装了定位SDK的定位结果,在BDLocationListener的onReceive方法中获取。通过该类用户可以获取error code,位置的坐标,精度半径等信息。具体方法请参考类参考。

获取error code:

public int getLocType ( )

返回值:

61 : GPS定位结果,GPS定位成功。

62 : 无法获取有效定位依据,定位失败,请检查运营商网络或者wifi网络是否正常开启,尝试重新请求定位。

63 : 网络异常,没有成功向服务器发起请求,请确认当前测试手机网络是否通畅,尝试重新请求定位。

65 : 定位缓存的结果。

66 : 离线定位结果。通过requestOfflineLocaiton调用时对应的返回结果。

67 : 离线定位失败。通过requestOfflineLocaiton调用时对应的返回结果。

68 : 网络连接失败时,查找本地离线定位时对应的返回结果。

161: 网络定位结果,网络定位定位成功。

162: 请求串密文解析失败。

167: 服务端定位失败,请您检查是否禁用获取位置信息权限,尝试重新请求定位。

502: key参数错误,请按照说明文档重新申请KEY。

505: key不存在或者非法,请按照说明文档重新申请KEY。

601: key服务被开发者自己禁用,请按照说明文档重新申请KEY。

602: key mcode不匹配,您的ak配置过程中安全码设置有问题,请确保:sha1正确,“;”分号是英文状态;且包名是您当前运行应用的包名,请按照说明文档重新申请KEY。

501~700:key验证失败,请按照说明文档重新申请KEY。

如果不能定位,请记住这个返回值,并到百度LBS开放平台论坛Andriod定位SDK版块中进行交流http://bbs.lbsyun.baidu.com/forum.php?mod=forumdisplay&fid=10 。若返回值是162~167,请将错误码、imei和定位时间反馈至loc-bugs@baidu.com,以便我们跟进追查问题。

第四步,开始定位

开启:

mLocationClient.start();

start:启动定位SDK。 stop:关闭定位SDK。调用start之后只需要等待定位结果自动回调即可。

开发者定位场景如果是单次定位的场景,在收到定位结果之后直接调用stop函数即可。

如果stop之后仍然想进行定位,可以再次start等待定位结果回调即可。

如果开发者想按照自己逻辑请求定位,可以在start之后按照自己的逻辑请求locationclient.requestLocation()函数,会主动触发定位SDK内部定位逻辑,等待定位回调即可。

位置提醒使用

位置提醒最多提醒3次,3次过后将不再提醒。 假如需要再次提醒,或者要修改提醒点坐标,都可通过函数SetNotifyLocation()来实现。

//位置提醒相关代码
mNotifyer = new NotifyLister();
mNotifyer.SetNotifyLocation(42.03249652949337,113.3129895882556,3000,"gps");//4个参数代表要位置提醒的点的坐标,具体含义依次为:纬度,经度,距离范围,坐标系类型(gcj02,gps,bd09,bd09ll)
mLocationClient.registerNotify(mNotifyer);
//注册位置提醒监听事件后,可以通过SetNotifyLocation 来修改位置提醒设置,修改后立刻生效。
//BDNotifyListner实现
public class NotifyLister extends BDNotifyListener{
       public void onNotify(BDLocation mlocation, float distance){
 	   mVibrator01.vibrate(1000);//振动提醒已到设定位置附近
       }
    }
//取消位置提醒
mLocationClient.removeNotifyEvent(mNotifyer);

需要注意的问题

定位SDK必须注册GPS和网络的使用权限。

使用定位SDK请尽量保证网络连接通畅(GPS定位方式不需要连网,但如果需要地址信息、位置语义化、POI等信息都需要联网的)。目前离线功能已经支持获取上述信息,但离线定位不是百分百都能定位成功的,增加我们如何保证在线定位成功的措施,以打消用户对于离线定位的顾虑。

我们强烈建议您设置自己的prodName,并保管好,这样方便我们为您提供更好的定位服务。

若需要返回的定位结果里包含地址信息,请保证网络连接。因为GPS是本地获取的定位位置,在某些情况下有可能不带地址信息。

定位SDK可以返回bd09、bd09ll、gcj02三种类型坐标,若需要将定位点的位置通过百度Android地图 SDK进行地图展示,请返回bd09ll,将无偏差的叠加在百度地图上。

有的移动设备锁屏后为了省电会自动关闭网络连接,此时网络定位模式的定位失效。此外,锁屏后移动设备若进入cpu休眠,定时定位功能也失效。若您需要实现在cpu休眠状态仍需定时定位,可以用alarmManager 实现1个cpu可叫醒的timer,定时请求定位。

android调用百度地图实现地理围栏 效果: 实现功能: 后台定位 地图长按添加marker得到当前位置经纬度坐标 创建地理围栏(以marker所在位置为中心,半径默认设置为100米) 通过BroadcastReceiver监听当前位置与围栏的位置关系 实现过程: 1. 后台定位 为了最大程度的增加定位进程的存活率,百度Android定位SDK提供后台持续定位的能力,可在应用退后台的状态下,持续记录位置信息。 首先初始化定位... 阅读详情

相关推荐

ZYNQ专题-7020驱动KSZ9031 PHY芯片

之所以有这篇文章,得益于Alinx的开发板。

Anitawen的博客 4970

Android定位SDK

Android百度定位 第一步,环境的配置 在相关下载里下载最新的库文件。将so文件的压缩文件解压出来,把对应架构下的so文件放入开发者自己APP的对应架构下的文件夹中(建议全部放入以提高程序兼容性),将locSDK_6.X.jar文件拷贝到工程的libs目录下,这样您就可以在程序中使用百度定位SDK了。 使用eclipse开发的开发者,只需要将SO的文件夹放到libs下即可;

u013338165的专栏 2014

Fortigate 在AWS中配置HA

方案1: 1、将两台服务器配置在相同可用区中,使用飞塔原生HA功能,可以实现配置同步功能。 2、配置SSLVPN,在主服务器不可用时,可以实现自动切换到备用服务器继续提供VPN服务。 当前问题: 1、主挂掉后可以自动切换到备,但是原主服务器修复后不会自动切换到主状态。 2、如下图所示切换中丢包明显,需要客户端开启“保持连接”功能。 配置过程如下: 1、整体架构 2、创建VPC和子网,如下图所示...

子苏蓝莓的博客 892

Android 百度地图定位

定位我们使用的是百度 Android 定位SDKv4.0,我们先了解下定位原理和定位精度 定位原理 使用百度Android定位SDK必须注册GPS和网络使用权限。定位SDK采用GPS、基站、Wi-Fi信号进行定位。当应用程序向定位SDK发起定位请求时,定位SDK会根据应用的定位因素(GPS、基站、Wi-Fi信号)的实际情况(如是否开启GPS、是否连接网络、是否有信号等)

qq_23276711的博客 435

城市规划师必备:ArcMap里用这个免费工具,5步完成建筑群通风廊道分析

本文介绍了城市规划中利用ArcMap进行建筑群通风廊道分析的高效方法,重点讲解了迎风面投影指数(FAI)的应用。通过5个步骤,从数据准备到规划应用,帮助规划师快速评估城市通风潜力,优化建筑布局,提升城市风环境质量。

weixin_26800111的博客 412

【成功安装】Ubuntu22.04极简方式安装Nvidia驱动

今天下午安装了实机的Ubuntu,面临在Linux上安装Nvidia的问题,被这个问题困扰了一整个下午,各种报错整的我头大。后来发现了不需要按照传统的方式去Nvidia官网下载,再命令行安装,直接在线安装即可。

清筱明的博客 5346

百度Android定位SDK3.1使用经验

1   若用户设置GPS优先,则优先使用GPS进行定位,如果GPS定位未打开或者没有可用位置信息,且网络连接正常,定位SDK则会返回网络定位(即Wi-Fi与基站)的最优结果。为了使获得的网络定位结果更加精确,请打开手机的Wi-Fi开关。/**   * 如果gps关闭则打开手机gps设置,如果gps已打开则关闭gps设置   */  public void opengps(){    Intent

chy2z的专栏 491

一分钟教会你搭建steam新游幻兽帕鲁服务器

总结: 游戏对服务器搭建要求相对较高、且对服务器网络协议有要求不能封堵UDP、多开、游戏运行久、同时在线人数多了这些会很吃内存 我自己用的64G内存多开4区测试玩家同时在线50多人的情况下内存已经跑满了、对于想用服务器搭建联机的小伙伴建议根据开区数量以及玩家人数去选择配置、当然也可以直接找我阿杰购买、我可以提供技术搭建服务。注:如果用的是本地电脑局域网搭建直接输入127.0.0.1:8211就行 如果用的是服务器搭建输入自己服务器IP+端口或解析的域名+端口进入游戏。

用最简单的方式说最重要的事!服务器、存储、云计 算、A智能的大数据产品、游戏开发技术。致力于广 大开发者、政企用户、各项机构等,构建云上世界提供全方位云计算解决方案。旨在打造差异化的开放式闭环生态系统帮助用户快速构建稳定、安全的云计算环境。 2237

百度地图v3.5 地图定位和封装定位功能

最近的的项目让我负责地图这一块,在耗费了20天后(水平渣渣慢的很)一这一块总算是基本已经弄完了,为了方便在去做百度地图这一块的朋友和为自己回顾一下,记录下来了这篇博客。下面就不废话了。 百度地图的KEY注册,SDK下载和导入项目我这里就不再说了,看百度的API官网就完成这些操作了。 集成成功后更具第一篇集成文档就能将北京的地图显示出来了。这一块网上也有很多贴在在说的。 我要说的第一个

sinat_23134455的专栏 894

无人机信号干扰系统设计方案

设计定向阻塞干扰器需要结合射频(RF)技术、功率放大技术和定向天线技术,核心目标是向特定方向发射高功率噪声信号,覆盖目标频段,阻断无人机的通信或导航信号。实际设计中需平衡功率、效率、散热和便携性,同时需考虑抗干扰技术的快速演进(如无人机加密通信和AI避障)。在合法框架下,此类设备可有效应对“黑飞”威胁,但技术滥用风险需严格管控。定向阻塞干扰器的硬件设计核心在于。

wanghao312的博客 3061

Dify工作流构建案例:迭代驱动的多维深度搜索

为了克服这些挑战,我们可以设计一个能够智能协同内部知识库与外部互联网搜索,并最终由大型语言模型(LLM)进行深度整合与精准回答的高级工作流。

同名公众号:dify实验室 2293

vue-baidu-map:基于Vue.js的百度地图组件

vue-baidu-map是一个基于Vue.js的百度地图组件,它封装了百度地图的JavaScript API,提供了一系列的Vue组件,可以快速方便地在Vue.js项目中使用百度地图。 ## 技术分析 vue-baidu-map使用了百度地图的JavaScript API,通过Vue.js的组件化开发方式,将百度地图封装成了一系列的Vue组件,包括地图容器、标注、信息窗口、覆盖物等等。这些组

gitblog_00027的博客 515

Triton server的部署、构建、backend插件机制代码梳理、模型加载、自定义C++backend流程

Triton inference server的部署、构建、backend机制代码详细梳理、模型加载过程、自定义C++backend流程.

C/C++、嵌入式开发、深度学习算法、模型部署与推理优化 474

vue3 Element plus 百度地图封装( 搜索定位功能,拖拽回显功能)

vue3 Element plus 百度地图封装( 搜索定位功能,拖拽回显功能)

meixinmeifei__的博客 2562

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

使用百度地图定位SDK获取定位信息。

最近了解了下百度地图SDK,记录下。        百度给出了详细的开发者文档,可以参见http://developer.baidu.com/map/sdk-android.htm,其中百度地图SDK现在将定位单独弄出来个SDK,现在讲下我对定位SDK的一些封装。        关于定位SDK的使用,百度讲的很详细了,我就不再赘述。详细参见:http://developer.baidu.com

liuhanhan512的专栏 2849

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

百度地图 sdk 简单封装使用 获取当前位置

因为项目中有几处用到了定位功能,所以简单封装了一下百度地图SDK,不用每次初始化,记录于此. 使用前提是项目app已经导入了百度地图的SDK,项目比较陈旧,v7.2之前的版本,非最新版sdk. 一共两个类,还是很简单的,第一个MyLocationListener: public abstract class MyLocationListener implements BDLocationLi

tyxo的博客 1751

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

关于百度地图的一个定位功能

今天开发使用到了百度地图,其中在用到地位功能的时候遇到个问题,并解决之。以此记录一下。 问题1:百度地图默认中心点是北京天安门,而百度地图的定位功能是异步任务,所以,当你地图+定位功能一起用在同个Activity中时就会有个问题,就是每次地图的视角会先在北京天安门那,然后再移动到我们定位的位置. 解决1:解决问题1的思路:先获取到定位点,然后再加载地图。先在一个Activity中获取到定位点,

画虎烂的专栏 2604

vue添加定位功能_Vue项目引用百度地图并实现搜索定位等功能

Tip:本篇文章为案例分析,技术点较多,所以篇幅较长,认真阅览的你一定会学到很多知识。前言:百度地图开放平台 给开发者们提供了丰富的地图功能与服务,使我们的项目中可以轻松地实现地图定位、地址搜索、路线导航等功能。本文给大家介绍如何在vue项目中引用百度地图,并设计实现简单的地图定位、地址搜索功能。一、效果图及功能点先来看一下效果图效果图看不够? 点此 试试在线操作!(初次进入加载较慢,请耐心等待)...

weixin_39717121的博客 1580

ios 集成百度地图(获取定位信息)

对应以前版本集成和处理(链接https://blog.youkuaiyun.com/u013983033/article/details/83062861) 下面部分内容可以参考 上面链接 1 、首先去百度地图开放平台注册账户 2 、然后进行邮箱激活 ,申请秘钥 进入这个界面 3 、使用百度sdk 1) 首先在info.plist 文件中加入 2) 引入头文件 #import <BaiduMapAPI_Base/BMKBaseComponent.h> #define BMK_KEY @"qqdGrSQf

哈皮吖的博客 1871

将百度定位封装为library

序言在很多项目中我们需要使用定位,但是每次都要去配置AndroidManifest.xml,添加很多权限,而且每次都要配置jni相关的目录,特别在需要定位的时候需要声明一个server,就是这个家伙,很多时候我都忘记配置,结果搞了半天。而且当我们项目集成了百度地图,ShareSDK等等第三方SDK的时候,我们都需要为它们单独配置混淆规则,基于以上原因,我觉得有必要把百度地位封装成library,今天

SOLO的博客 1759

百度API获取城市名地名(附源码)

在做一个软件时,用到了定位功能。网上有很多关于google 的GPS定位,但网上关于google定位都没有用,  搜索下原因:(这里建议大家在中国就尽量不使用系统自带的定位)     因为Google的服务器不在中国(就算能网上关于定位的代码能用,那也非常的慢,除非你的应用是在国外使用)     由于网络等原因所以定位一般会失败    于是转向使用百度api来定位。

djun100的专栏 2万+

运用百度api实现定位城市

运用百度api实现定位城市 1.在index.html中写 <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script> 2.在lib里面封装一个getLocation.js let getCurrentCityName = function()...

weixin_44251396的博客 1217

百度地图基础功能

又是新的一年了,2016年我就要毕业了,我得要好好奋斗,毕业找份工资高点的工资,,,,哈哈,博主的自勉博主上班的公司几乎每个项目都会用到地图功能,百度地图用的最多, 我是个喜欢偷懒的人,每次都要写个地图功能实在是没意思,心烦,于是我就把地图功能封装成了一个类,以后用的时候直接copy就行地理位置编码,根据坐标搜索位置信息public void searchAddressByPoint(LatLng

qq_23621155的博客 572

Android 地图 —— 3. 百度地图定位(精简版)

参考链接: 百度地图地图文档 :http://lbsyun.baidu.com/index.php?title=androidsdk 百度地图定位文档:http://lbsyun.baidu.com/index.php?title=android-locsdk/guide/addition-func/error-code 前言: 该篇是对上篇的定位功能进行封装 加入...

weixin_43099819的博客 1108

百度地图Util 简单的封装百度地图

之前做项目,地理位置选择界面用到百度地图,当时全部都写在了Activity 导致整个Activity代码看起来特别乱  于是决定对百度地图这块做提取 好了废话不多说 直接上代码  有不足之处请指教   现在只初步封装了  定位  poi  逆地理解析 import android.content.Context; import android.util.Log; import com.b

刘艺冰博客 1086

vue2+百度地图web端开发

在Vue 2中开发百度地图Web端应用,你可以使用百度地图JavaScript API来实现地图功能。

一步一个脚印,踏实努力,向着目标前进 1186
上一篇: redis 学习笔记(1)-编译、启动、停止
下一篇: 请尝试启用“逐用户重定向”,或者使用提升的权限从命令提示符处注册该组件 错误解决
codepython
博客等级 码龄20年 125粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值