精华内容
下载资源
问答
  • 至于定位的配置之类的我就不多说,此篇文章重点在于接口回 private static BDAbstractLocationListener mListener = new BDAbstractLocationListener() { @Override public void onReceiveLocation...

    至于定位的配置之类的我就不多说,此篇文章重点在于接口回调

    private static BDAbstractLocationListener mListener = new BDAbstractLocationListener() {
        @Override
        public void onReceiveLocation(BDLocation location) {
            if (null != location && location.getLocType() != BDLocation.TypeServerError) {
                switch (location.getLocType()) {
                    case BDLocation.TypeGpsLocation:   // GPS定位结果
                    case BDLocation.TypeNetWorkLocation:   // 网络定位结果
                        Map<String, Object> locationInfo = getLocationInfo(location.getLongitude(), location.getLatitude(), location.getAddrStr(), location.getLocationDescribe());
                        locationInfoInterface.getLocationInfo(locationInfo);
                        locationService.stop();
                        break;
                    case BDLocation.TypeServerError:     //服务端网络定位失败,可以反馈IMEI号和大体定位时间到loc-bugs@baidu.com,会有人追查原因
                    case BDLocation.TypeNetWorkException:  //网络不同导致定位失败,请检查网络是否通畅
                    case BDLocation.TypeCriteriaException:   //无法获取有效定位依据导致定位失败,一般是由于手机的原因,处于飞行模式下一般会造成这种结果,可以试着重启手机
                        //定位失败
                        Log.i("test_loca", location.getLocType() + "");
                        locationService.stop();
                        break;
                }
            }
        }
    };

     以上先贴出代码部分

    1.添加接口LocationInfoInterface,并添加回调方法

    2.添加接口set方法

    public static void setLocationInfoInterface(LocationInfoInterface locationInfo){
        locationInfoInterface = locationInfo;
    }

    3.将数据给接口的方法设置进去

    locationInfoInterface.getLocationInfo(locationInfo);//locationInfoInterface可直接定义全局的

    4.外部需要定位信息的调用者实现此接口

    5.实现方法,获取定位信息

     

    接口回调就是这么简单,希望能帮到更多朋友

     

    展开全文
  • 高德定位当前位置Util

    2017-03-24 16:26:16
    高德定位当前位置工具类与接口回

    集成高德地图的时候,需要定位当前位置,这里封装了定位的功能,
    方便使用,其中定位获取到的位置信息用了接口回调的方法传递出去,方便获取。

        public class LocationUtils {
    
        private Context mContext;
        public AMapLocationClient locationClient = null;
        private String address;
        private LocationInterface locationInterface;
    
        public LocationUtils(Context mContext) {
            this.mContext = mContext;
            initLocation();
        }
    
        /**
         * 初始化定位
         */
        private void initLocation() {
            //初始化client
            locationClient = new AMapLocationClient(mContext.getApplicationContext());
            //设置定位参数
            locationClient.setLocationOption(getDefaultOption());
            // 设置定位监听
            locationClient.setLocationListener(locationListener);
        }
    
        /**
         * 默认的定位参数
         */
        private static AMapLocationClientOption getDefaultOption() {
            AMapLocationClientOption mOption = new AMapLocationClientOption();
            mOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
            //可选,设置定位模式,可选的模式有高精度、仅设备、仅网络。默认为高精度模式
            mOption.setGpsFirst(false);//可选,设置是否gps优先,只在高精度模式下有效。默认关闭
            mOption.setHttpTimeOut(30000);//可选,设置网络请求超时时间。默认为30秒。在仅设备模式下无效
            mOption.setInterval(2000);//可选,设置定位间隔。默认为2秒
            mOption.setNeedAddress(true);//可选,设置是否返回逆地理地址信息。默认是true
            mOption.setOnceLocation(false);//可选,设置是否单次定位。默认是false
            mOption.setOnceLocationLatest(false);//可选,设置是否等待wifi刷新,默认为false.如果设置为true,会自动变为单次定位,持续定位时不要使用
            AMapLocationClientOption.setLocationProtocol(AMapLocationClientOption.AMapLocationProtocol.HTTP);//可选,
            // 设置网络请求的协议。可选HTTP或者HTTPS。默认为HTTP
            mOption.setSensorEnable(false);//可选,设置是否使用传感器。默认是false
            mOption.setWifiScan(true); //可选,设置是否开启wifi扫描。默认为true,如果设置为false会同时停止主动刷新,停止以后完全依赖于系统刷新,定位位置可能存在误差
            mOption.setLocationCacheEnable(true); //可选,设置是否使用缓存定位,默认为true
            return mOption;
        }
    
    
        /**
         * 定位监听
         */
        AMapLocationListener locationListener = new AMapLocationListener() {
            @Override
            public void onLocationChanged(AMapLocation loc) {
                if (null != loc) {
                    //解析定位结果
                    address = loc.getCity();
                    Log.e("ggg","经纬度"+loc.getLatitude()+""+loc.getLongitude());
                } else {
                    address = "定位失败,loc is null";
                }
    
                locationInterface.addressCallBack(address);
            }
        };
    
        public interface LocationInterface {
            void addressCallBack(String address);
        }
    
        public void setCallBack(LocationInterface locationCallBack) {
            this.locationInterface = locationCallBack;
        }
    }
    展开全文
  • 地理位置定位

    千次阅读 2019-03-21 10:14:56
    watchPosition()一直监视位置:主要是监视移动端用户的位置 三. clearWatch()清除监听位置 1. getCurrentPosition()获取用户(设备)当前位置 navigator.gelolcation.getCurrentPosition(success-cal...

    三个方法:

    一.  getCurrentPosition()获取用户(设备)当前位置
    二.  watchPosition()一直监视位置:主要是监视移动端用户的位置
    三.  clearWatch()清除监听位置
    1.   getCurrentPosition()获取用户(设备)当前位置
        navigator.gelolcation.getCurrentPosition(success-callback,error-callback,{
            geolocation选项
    })
    分析:
    success-callback:用户允许共享geolocation的回调函数,用户不允许时候  不能走里面的函数;
    1.功能:用户允许使用定位服务,并且成功获取到用户未知的回调函数
               接收一个参数,用来获取到地理位置的信息
    2.参数:coords:包含当前地理位置的信息参数
                 参数coords的子属性:
                        latitude:当期那位置的维度
                        longitude:当前位置的经度
                        altitude:当前位置的海拔
                        speed:速度,以  米/秒  为单位
    error-callback:获取地理位置失败时的回调函数
    1.功能:处理错误,规定当获取用户位置失败时执行的函数
    2.参数:error,包含错误信息以及错误代号等信息
                 参数error的子属性:
                        message:错误信息
                        code:错误代码,适用于精确匹配错误时候使用
                                    PERMISSION-EDDIED:用户不允许地理位置
                                    POSITION-UNAVILABLE:无法获取当前位置
                                    TIMEOUT:操作超时
    geolocation选项:包括一些属性,是否启用一些高精度的匹配,是否定义超时时间的配置信息等
    1.功能:定义了获取地理位置的辅助功能的属性
    2.相关属性:enableHightAccuracy:指示浏览器获取高精度的位置,默认为false;(最好启动高精度的位置,改成true)
                        timeout:指定获取地理位置的超时时间,默认不限时,单位为毫秒(如果设置之后时间之后,没有获取用户的地理位置,将走error-callback 函数)
                        maximumAge:最长有效期,在重复获取地理位置时,此参数指定多久再获取位置(每隔多长时间调取一次用户的地理位位置信息)
    2. watchPosition()像一个位置追踪器,与clearwatch成对出现,类似于setinteval和clearinteval的工作方式
    1。调用: var watch =    navigator.watchPosition(success-callback , error-callback,选项)
    3 .clearWatch: 清除位置追踪器(清除之后,就不会再跟踪用户的位置)
        clearWatch(watch)
    代码实现
    <script type="text/javascript">
                window.onload = function{
                    if(navigator.geolocation){
                        navigator.geolocation.getCurrentPosition(function(position){
                            //获取地理位置信息
                            console.log("纬度:"+position.coords.latitude);
                            console.log("经度:"+position.coords.longitude);
                        },function(error){
                            console.log(error.message)
                        },{
                            enableHighAccuracy:true,
                            timeout:3000  //如果在三秒钟之内还没有得到用户信息,报出错误超时的错误
                        })
                    }else{
                        alert("不支持定位")
                    }
                }
    </script>
    
    用百度的方法:获取设备地理位置
    百度的geolocation对象
    var geolocation = new BMap.Geolocation();
    通过getCurrentPosition事件,添加回调函数,并且传递position参数获取当前位置
        geolocation.getCurrentPosition(function(position){});
    通过geolocation 的getstatus()判读地理位置获取状态
    BMAP-STATUS-SUCCESS:检索成功(当getstatus = BMAP-STATUS-SUCCESS说明可以显示当前位置)
    BMAP-STATUS-TIMEOUT:超时
    position参数
    1.功能:获取当前设备的地理位置
    2.属性:position.point:表示当前位置坐标对象
                 position.point.lng;当前位置的经度
                 position.point.lat:当前位置的纬度
    3.操作:
    创建标点:
    函数:var marker = new BMap.marker(point);
    将覆盖物添加到地图上
        map.addOverlay(marker)
    将地图的中心移动到指定的点上
        map.panTo(point)
    例子(可能有些小问题,但是可以借鉴):
    <div id="map" style="width: 500px;height: 500px;"></div>
            <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.4"></script>
            <script type="text/javascript">
    
                window.onload = function(){
                    new geolocation = new BMap.Geolocation();
                    geolocation.getCurrentPosition(function(position){
                        if(geolocation.getstatus() == BMAP_STATUS_SUCCESS){
                            var point = position.point;
                            console.log(point)
    
                            var map = new BMap.Map("map")
                            map.centerAndZoom(point,12)
                            map.enablescroolWheelZoom(true)
                            //添加标点
                            var marker = new BMap.marker(point)
                            map.addOverlay(marker)
                            map.panTo(point)
                        }
                    })
                }
    </script>
    复制代码

    转载于:https://juejin.im/post/5c9363f26fb9a070cb24aed4

    展开全文
  • Android 腾讯地图 选点定位,仿微信发送位置

    千次阅读 热门讨论 2019-03-29 15:10:27
    不需要集成定位、地图,然后标记 回等繁琐的操作,你只需要一个webview,使用腾讯地图的地图选点组件即可。 申请key 接入指引 使用地图选点组件 调用方式一: 通过iframe内嵌调用,地图选点组件的页面会根据...
    效果图:

    在这里插入图片描述在这里插入图片描述

    不需要集成定位、地图,然后标记 回调等繁琐的操作,你只需要一个webview,使用腾讯地图的地图选点组件即可。

    申请key

    接入指引

    使用地图选点组件

    调用方式一:

    通过iframe内嵌调用,地图选点组件的页面会根据开发者设置的iframe宽高自适应。

    调用方式二:

    通过页面跳转的方式调用该组件的时候,开发者需要设置backurl参数,用户点击选中的位置点后,页面跳转至开发者指定的返回地址(backurl),并将位置信息添加到回跳地址(backurl)上。

    例如:https://apis.map.qq.com/tools/locpicker?search=1&type=0&backurl=http://3gimg.qq.com/lightmap/components/locationPicker2/back.html&key=yourkey&referer=myapp

    方式一明显是html的使用方式,方式二是通过页面跳转的方式调用,我们就可以用webview来加载。


    这里要注意backurl,是我们自定义的回调地址,位置信息会添加到回跳地址(backurl)上,所以,拦截了回调地址就能知道位置信息了。


    参数说明:

    在这里插入图片描述

    1,WebView

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:orientation="vertical">
    
        <WebView
            android:id="@+id/web_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    
    </LinearLayout>
    
    

    2,初始化WebView并拦截跳转请求

            String mUrl = "https://apis.map.qq.com/tools/locpicker?search=1&type=0&backurl=http://callback&key=QULBZ-6M6KO-5YZWR-SEYTJ-GNNS5-O6B3L&referer=myapp";
    
            WebSettings settings = mWebView.getSettings();
            settings.setRenderPriority(WebSettings.RenderPriority.HIGH);
            settings.setSupportMultipleWindows(true);
            settings.setJavaScriptEnabled(true);
            settings.setSavePassword(false);
            settings.setJavaScriptCanOpenWindowsAutomatically(true);
            settings.setMinimumFontSize(settings.getMinimumFontSize() + 8);
            settings.setAllowFileAccess(false);
            settings.setTextSize(WebSettings.TextSize.NORMAL);
            mWebView.setVerticalScrollbarOverlay(true);
            mWebView.setWebViewClient(new WebViewClient() {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    if (!url.startsWith("http://callback")) {
                        view.loadUrl(url);
                    } else {
                        try {
                            LogUtil.i(url);
    
                            //转utf-8编码
                            String decode = URLDecoder.decode(url, "UTF-8");
                            LogUtil.i(decode);
    
                            //转uri,然后根据key取值
                            Uri uri = Uri.parse(decode);
                            String latng = uri.getQueryParameter("latng");//纬度在前,经度在后,以逗号分隔
                            String[] split = latng.split(",");
                            String lat = split[0];//纬度
                            String lng = split[1];//经度
                            String address = uri.getQueryParameter("addr");//地址
    
                            LogUtil.i(uri.getQueryParameter("addr"));
    
                        } catch (UnsupportedEncodingException e) {
                            e.printStackTrace();
                        }
                    }
                    return true;
                }
            });
            mWebView.loadUrl(mUrl);
    
    • 回调地址http://callback
    • 然后在shouldOverrideUrlLoading中处理逻辑

    初始url是这样的:

    http://callback/?name=%E9%99%86%E5%AE%B6%E5%98%B4&latng=31.23776,121.50218&addr=%E4%B8%8A%E6%B5%B7%E5%B8%82%E6%B5%A6%E4%B8%9C%E6%96%B0%E5%8C%BA%E9%99%86%E5%AE%B6%E5%98%B4&city=%E4%B8%8A%E6%B5%B7%E5%B8%82&module=locationPicker
    

    明显是编码不对啊,然后转成utf-8:

    String decode = URLDecoder.decode(url, "UTF-8");
    
    http://callback/?name=陆家嘴&latng=31.23776,121.50218&addr=上海市浦东新区陆家嘴&city=上海市&module=locationPicker
    

    然后把url转成uri,直接根据key取值即可

     Uri uri = Uri.parse(decode);
     String latng = uri.getQueryParameter("latng");//经纬度
     String name = uri.getQueryParameter("name");//标题
     String address = uri.getQueryParameter("addr");//地址
    

    最后:如果不能获取位置附近的地址列表,在key控制台中,把WebServiceApi选项 选中即可。


    感谢:https://www.jianshu.com/p/e466d6fce3e3

    展开全文
  • Android 百度定位sdkv61.3获取位置信息

    万次阅读 2015-11-19 10:36:27
    最近在弄混合定位,使用Android自带的network定位经常会定位不到,也就是location经常为空,而gps只能在室外定位,室内收不到星。使用很不方便。那就用了一下百度定位sdk,感觉很不错。 百度定位分为三种定位模式: ...
  • 高德地图自定义定位当前位置按钮

    万次阅读 2017-07-19 14:19:01
    项目改版需要在特定位置添加自定义的点位按钮,由于高德地图自带的定位按钮是默认的,在地图右上角而且是有一行代码控制来显示与隐藏 mUiSettings.setMyLocationButtonEnabled(true); 所以需要自己写方法来将地图...
  • 基于位置的服务简称LBS,主要的工作原理就是利用无线电通讯网络或GPS等定位方式来确定出移动设备所在的位置。 基于位置的服务所围绕的核心就是要先确定出用户所在的位置。一种是通过GPS定位,一种是通过网络定位。GPS...
  • 我现在做的是在应用中每次拍照或是摄像后,有一个保存按钮,点击保存的时候开启定位服务,有坐标信息后在定位信息的回中发送广播,然后接受坐标信息。但是现在遇到的一个问题是地理位置已经移动了,但是返回的坐标...
  • 腾讯位置 - 服务端IP定位(结尾附视频)

    千次阅读 多人点赞 2021-01-16 23:11:40
    本文关键字:腾讯位置定位、服务端、IP定位、使用教程。通过获取客户端或终端设备IP地址来获取其当前所在地理位置,可以精确到市级,常用于显示当地城市天气预报、初始化用户城市等非精确定位场景。
  • Android 定位服务和位置权限

    千次阅读 2020-07-27 16:43:33
    做地图功能时,在之前只需要一个位置权限即可,但不知道什么时候加了个定位服务,还是在系统设置里面。 看代码:lm.isProviderEnabled(LocationManager.GPS_PROVIDER);这一句就是定位服务的判断,如果没有开启定位...
  • 里面的位置信息,响应到页面当中去,这样就实现了点击后地图选择定位位置,代码如下所示: handleChooseLocationSuccess ( res ) { this . setData ( { address : res . address } ) }
  • 拖拽高德地图或定位定位mark进行改变位置定位(图片资源在高德地图官网下载的demo中有) public class writePipeActivity1 extends Activity implements AMap.OnMarkerClickListener, AMap.OnMapLoadedListener,...
  • CLLocationManager 位置定位

    千次阅读 2014-02-19 10:11:40
    最近由于项目需要,需要使用LBS相关技术,但网上搜索了一圈,文章不是很多... 下面就开始吧,首先,如标题,先定位吧。  第一步,新建一个singleView的空白工程,如果新建,这里不做赘述了。  第二步:因为地图开
  • 定位当前地理位置

    万次阅读 2018-05-02 10:57:40
    根据用户的地理位置提供相关地区服务,已经是非常普遍的一项功能,例如本地生活类网站、外卖网站等。HTML5新功能中提供了获取用户位置的能力,使用HTML5 Geolocation API来构建基于地理位置的应用。Geolocation API...
  • 微信公众号定位用户所在位置

    千次阅读 2017-12-07 10:40:16
    微信公众号定位用户所在位置 最近由于项目的原因,涉及到了微信公众号,看了几天文档加上问了问同事,对这个玩意有一点了解,写一下微信公众号定位的方法,记一下以后方便用。 //获取code var url = location.href....
  • 地图实时定位我的位置

    千次阅读 2018-11-11 16:59:00
    首先需要显示地图,请看我的另一篇文章 ...然后启动定位功能标记我的位置 开启定位图层 setMyLocationEnabled(true) 构造定位数据 MyLocationData对象 设置定位数据,并配置定位图层的信息 关闭定位图...
  • Html5/JavaScript涉及地理定位与回函数的问题 W3cSchool关于Html5教程中有一节地理定位的教程,先附代码: 其中navigatitor.getCurrentPosition (showPosition ) 这句话涉及到了回函数的概念。 讲述回...
  • 有时候我们在写页面中,会发现绝对定位的父级元素已经相对定位了,但是在不同分辨率的电脑下,绝对定位还是会错乱,似乎父级的相对定位并没有起了作用。 首先要明白如下几个原理: 1、笔记本电脑的分辨率一般为1366*...
  • 测工具VcTester攻略--快速定位问题

    千次阅读 2010-03-10 14:39:00
    测工具VcTester攻略之快速定位问题作者:网际游民,成稿于2010年2月 关于本系列文章本系列文章罗列如下:《测工具VcTester攻略之:搭建敏捷开发环境》《测工具VcTester攻略之:使用快捷编辑功能》《测工具...
  • HTML5地理位置定位API接口开发

    千次阅读 2017-02-12 14:22:54
    地理位置定位原理介绍 地理位置定位目前有如下几种方式:GPS,IP地址,Wifi(国内基本不用),GSM/CDMA基站的方式。  HTML5地理位置定位的实现:  1. 实现基于浏览器(无需后端支持)获取用户的地理位置技术。 ...
  • 主要实现功能: a.进入地图界面,会自动获取...左下角定位当前位置实现,当移动地图到别的位置,点击左下角图标,会回归到当前位置 下面是代码的实现 1. app.json文件中 "permission":{ "scope.userLocat...
  • 安卓系统百度定位将获得的经纬度上传到服务器, 代码: option.setOpenGps(true); option.setCoorType("bd09"); option.setPriority(LocationClientOption.GpsFirst); 然后电脑上用arcgis获取经纬度描画...
  • 高德地图定位拖动改变位置

    万次阅读 2017-08-03 23:19:40
    现在关于地图使用越来越多,相信大家可能都或多或少的用到过,本篇文章简单总结了一下关于高德地图定位且可以拖动改变位置的功能的实现。 首先按照高德开发文档,导入jar包,申请key,可以在高德地图的开放平台查看...
  • 该篇文章主要讲述如何定位城市位置定位自己的位置和进行城市兴趣点POI(Point of Interest)搜索.那么如何在百度地图上定位某一个位置呢?通过类GeoPoint可以定义经纬度,它存放着纬度值和经度值,通过位置提供的...
  • 定位城市位置和城市POI搜索",主要通过监听对象MKSearchListener类实现城市兴趣点POI(Point of Interest)搜索。该篇讲述定位当前自己的位置及使用getLastKnownLocation获取location总时为空值的问题。其基本步骤如下...
  • 本项目的出发点就是针对如何解决位置的实时共享问题,使得人们组队外出游玩时的安全性得到保障,还有让每个家庭成员之间可以随时随地地查看其他成员的位置,特别是让老人、小孩的安全得到家人的实时监护。...
  • 微信端H5使用百度地图定位获取当前位置安卓定位不准的问题解决如下: 使用微信端定位,签名方法看微信接口文档: <script type="text/javascript"> $.ajax({ type : "post", url : "../user/sign.vc",...
  • Android 快速获得当前所在地理位置(简单定位)

    万次阅读 多人点赞 2018-03-30 15:00:06
    本篇主要介绍谷歌自带的LocationManager 获取手机定位的方法,以及通过谷歌服务Geocoder 来进行反地理编码。但是由于国内的手机厂商很多都不能使用geocoder 服务了,所以为了稳定,消除不同手机系统所带来的不稳定性...
  • HTML5地理位置定位 lbs

    千次阅读 2015-08-09 21:29:29
    HTML5 地理位置定位 LBS Geolocation

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 116,779
精华内容 46,711
关键字:

怎么调定位位置