Beispiel #1
0
        public void GetGPSInfo(object args = null)
        {
            LocationClientOption option = null;

            if (args != null && args is LocationClientOption)
            {
                sLocOption = args as LocationClientOption;
                sLocationClient.LocOption = sLocOption;
            }

            if (sLocOption == null)
            {
                option = new LocationClientOption();
                option.SetLocationMode(LocationClientOption.LocationMode.HightAccuracy); //可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
                option.CoorType = "bd09ll";                                              //可选,默认gcj02,设置返回的定位结果坐标系
                int scanSpan = 5000;                                                     // 默认0,即仅定位一次
                option.ScanSpan = scanSpan;                                              //可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的
                option.SetIsNeedAddress(true);                                           //可选,设置是否需要地址信息,默认不需要
                option.OpenGps        = true;                                            //可选,默认false,设置是否使用gps
                option.LocationNotify = false;                                           //可选,默认false,设置是否当GPS有效时按照1S/1次频率输出GPS结果
                option.SetIsNeedLocationDescribe(true);                                  //可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近”
                option.SetIsNeedLocationPoiList(true);                                   //可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到
                option.SetIgnoreKillProcess(false);                                      //可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死
                option.SetIgnoreCacheException(false);                                   //可选,默认false,设置是否收集CRASH信息,默认收集
                option.EnableSimulateGps = true;                                         //可选,默认false,设置是否需要过滤GPS仿真结果,默认需要
                option.SetNeedNewVersionRgc(true);                                       //可选,设置是否需要最新版本的地址信息。默认需要,即参数为true
                option.SetWifiCacheTimeOut(60 * 1000);                                   //可选, 首次启动定位时,会先判断当前Wi-Fi是否超出有效期,若超出有效期,会先重新扫描Wi-Fi,然后定位

                sLocOption = option;
                sLocationClient.LocOption = sLocOption;
            }

            sLocationClient.Restart();
        }
Beispiel #2
0
        private void StartLocationService()
        {
            LocationClientOption option = new LocationClientOption();

            option.SetLocationMode(LocationClientOption.LocationMode.HightAccuracy); //可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
            option.CoorType = "bd09ll";                                              //可选,默认gcj02,设置返回的定位结果坐标系
            int span = 1000;

            option.ScanSpan = span;                 //可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的
            option.SetIsNeedAddress(true);          //可选,设置是否需要地址信息,默认不需要
            option.OpenGps        = true;           //可选,默认false,设置是否使用gps
            option.LocationNotify = true;           //可选,默认false,设置是否当GPS有效时按照1S/1次频率输出GPS结果
            option.SetIsNeedLocationDescribe(true); //可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近”
            option.SetIsNeedLocationPoiList(true);  //可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到
            option.SetIgnoreKillProcess(false);     //可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死
            option.SetIgnoreCacheException(false);  //可选,默认false,设置是否收集CRASH信息,默认收集
            option.EnableSimulateGps  = false;      //可选,默认false,设置是否需要过滤GPS仿真结果,默认需要
            mLocationClient.LocOption = option;
            mLocationClient.Start();
        }
Beispiel #3
0
        public LocationServiceImpl(BMap.MapView mapView, Context context)
        {
            this.mapView = mapView;
            LocationClientOption option = new LocationClientOption();

            option.SetLocationMode(LocationClientOption.LocationMode.HightAccuracy);
            option.CoorType = "bd09ll";              // gcj02 by default
            option.ScanSpan = 1000;                  // 0 by default(just once)
            option.SetIsNeedAddress(false);          // false by default
            option.OpenGps        = true;            // false by default
            option.LocationNotify = true;            // false by default
            option.SetIsNeedLocationDescribe(false); // 通过 getLocationDescribe 获取语义化结果
            option.SetIsNeedLocationPoiList(false);  // 通过 getPoiList 获取
            option.IsIgnoreKillProcess    = false;
            option.IsIgnoreCacheException = false;
            option.SetEnableSimulateGps(false);
            option.LocationNotify = true;
            native           = new LocationClient(context);
            native.LocOption = option;
            native.RegisterLocationListener(this);
        }
        protected override void OnElementChanged(ElementChangedEventArgs <MyBaiduMap> e)
        {
            base.OnElementChanged(e);
            if (e.OldElement == null)
            {
                mMapView = new MapView(Forms.Context, new BaiduMapOptions());

                mBaiduMap = mMapView.Map;
                this.SetNativeControl(mMapView);
                mBaiduMap.MyLocationEnabled = true;
                // 定位初始化
                mLocClient = new LocationClient(Forms.Context);
                mLocClient.RegisterLocationListener(this);
                LocationClientOption option = new LocationClientOption();
                option.OpenGps       = true;          // 打开gps
                option.CoorType      = "bd09ll";      // 设置坐标类型
                option.ScanSpan      = 1000;
                mLocClient.LocOption = option;
                mLocClient.Start();
            }
        }
Beispiel #5
0
        /// <summary>
        /// 定位客户端参数设定
        /// </summary>
        /// <returns></returns>
        private LocationClientOption SetLocationClientOption()
        {
            int span   = 5 * 1000;
            var option = new LocationClientOption
            {
                CoorType = "bd09ll",
                ScanSpan = span
            };

            ////可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
            option.SetLocationMode(LocationClientOption.LocationMode.HightAccuracy);
            option.SetIsNeedAddress(true); //可选,设置是否需要地址信息,默认不需要
            option.OpenGps        = true;  //可选,默认false,设置是否使用gps
            option.LocationNotify = true;  //可选,默认false,设置是否当GPS有效时按照1S/1次频率输出GPS结果
            option.SetIsNeedLocationDescribe(true);
            option.SetIsNeedLocationPoiList(true);
            option.SetIgnoreKillProcess(true);
            option.SetIgnoreCacheException(true); //可选,默认false,设置是否收集CRASH信息,默认收集
            option.EnableSimulateGps = true;      //可选,默认false,设置是否需要过滤GPS仿真结果,默认需要
            return(option);
        }
        public LocationServiceImpl(BMap.MapView mapView, Context context)
        {
            this.mapView = mapView;
            LocationClientOption option = new LocationClientOption();

            //option.SetLocationMode(LocationClientOption.LocationMode.HightAccuracy);
            //option.CoorType = "bd09ll"; // gcj02 by default
            //option.ScanSpan = 1000; // 0 by default(just once)
            //option.SetIsNeedAddress(false); // false by default
            //option.OpenGps = true; // false by default
            //option.LocationNotify = true; // false by default
            //option.SetIsNeedLocationDescribe(false); // 通过 getLocationDescribe 获取语义化结果
            //option.SetIsNeedLocationPoiList(false); // 通过 getPoiList 获取
            //option.IsIgnoreKillProcess = false;
            //option.IsIgnoreCacheException = false;
            //option.SetEnableSimulateGps(false);
            //option.LocationNotify = true;


            option.SetLocationMode(LocationClientOption.LocationMode.HightAccuracy); //可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
            option.CoorType = "bd09ll";                                              //可选,默认gcj02,设置返回的定位结果坐标系
            int span = 1000;

            option.ScanSpan = span;                 //可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的
            option.SetIsNeedAddress(true);          //可选,设置是否需要地址信息,默认不需要
            option.OpenGps        = true;           //可选,默认false,设置是否使用gps
            option.LocationNotify = true;           //可选,默认false,设置是否当GPS有效时按照1S/1次频率输出GPS结果
            option.SetIsNeedLocationDescribe(true); //可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近”
            option.SetIsNeedLocationPoiList(true);  //可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到
            option.SetIgnoreKillProcess(false);     //可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死
            option.SetIgnoreCacheException(false);  //可选,默认false,设置是否收集CRASH信息,默认收集
            option.EnableSimulateGps = false;       //可选,默认false,设置是否需要过滤GPS仿真结果,默认需要
            option.SetEnableSimulateGps(false);
            option.LocationNotify = true;


            native           = new LocationClient(context);
            native.LocOption = option;
            native.RegisterLocationListener(this);
        }
Beispiel #7
0
        private void Init(Context context)
        {
            Location = new LocationClient(context);
            Listener = new LocationListerner();
            CallBack = new LocationCallBack();
            Location.RegisterLocationListener(Listener);
            Location.RegisterLocationListener(CallBack);

            LocationClientOption option = new LocationClientOption();

            option.AddrType = "all";
            option.CoorType = "bd09ll";
            option.DisableCache(true);
            option.Priority    = LocationClientOption.NetWorkFirst;
            Location.LocOption = option;

            MapManager = new BMapManager(context);

            ApplicationInfo info = context.PackageManager.GetApplicationInfo(context.PackageName, PackageInfoFlags.MetaData);

            Api_Key = info.MetaData.GetString(API_KEY_METADATA_KEY);
        }
Beispiel #8
0
 public LocationClientOption GetDefaultLocationClientOption()
 {
     if (mOption == null)
     {
         mOption = new LocationClientOption();
         //高精度
         mOption.SetLocationMode(LocationClientOption.LocationMode.HightAccuracy);
         //附近地址
         mOption.SetIsNeedAddress(true);
         // 可选,默认0,即仅定位一次,设置发起连续定位请求的间隔需要大于等于1000ms才是有效的
         mOption.ScanSpan = 1000;
         // 可选,默认gcj02,设置返回的定位结果坐标系,如果配合百度地图使用,建议设置为bd09ll;
         mOption.CoorType = "bd09ll";
         // 可选,默认false,设置是否开启Gps定位
         mOption.OpenGps = true;
         // 可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop
         mOption.SetIgnoreKillProcess(true);
         // 可选,默认false,设置是否需要位置语义化结果,可以在BDLocation
         mOption.SetIsNeedLocationDescribe(true);
         // 可选,默认false,设置是否需要POI结果,可以在BDLocation
         mOption.SetIsNeedLocationPoiList(true);
     }
     return(mOption);
 }