我使用官方的导航demo,想要在官方导航demo的基础上获取导航过程中的自车(蓝色箭头)实时位置,并且将位置数据保存下来,要怎么实现?求大家帮忙!也可以加QQ1979860295。求赐教!

解决方案 »

  1.   

    官方的Demo说的很清楚了,如果只是记录位置信息用2D就可以了.蓝色箭头3D地图自带,不过不建议使用3d,因为会导致项目过大。
        private fun initGDMap() {
            //声明定位回调监听器
            val mLocationListener = AMapLocationListener(this)
            //初始化定位
            mLocationClient = AMapLocationClient(applicationContext)
            //设置定位回调监听
            mLocationClient?.setLocationListener(mLocationListener)
            //初始化AMapLocationClientOption对象
            mLocationOption = AMapLocationClientOption()
            //设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。
            mLocationOption?.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy
            //给定位客户端对象设置定位参数
            //设置定位间隔,单位毫秒,默认为2000ms,最低1000ms。
            //mLocationOption?.interval = 1000 * 60
            mLocationClient?.setLocationOption(mLocationOption)
            //启动定位
            //mLocationClient?.startLocation()
        }
     override fun invoke(amapLocation: AMapLocation) {
            if (amapLocation != null) {
                if (amapLocation.errorCode == 0) {
                    this.amapLocation = amapLocation
                    locationListener?.LocationSuccess(amapLocation)
                    mLocationClient?.stopLocation()
                    amapLocation.locationType//获取当前定位结果来源,如网络定位结果,详见定位类型表
                    amapLocation.latitude//获取纬度
                    amapLocation.longitude//获取经度
                    amapLocation.accuracy//获取精度信息
                    amapLocation.address//地址,如果option中设置isNeedAddress为false,则没有此结果,网络定位结果中会有地址信息,GPS定位不返回地址信息。
                    amapLocation.country//国家信息
                    amapLocation.province//省信息
                    amapLocation.city//城市信息
                    amapLocation.district//城区信息
                    amapLocation.street//街道信息
                    amapLocation.streetNum//街道门牌号信息
                    amapLocation.cityCode//城市编码
                    amapLocation.adCode//地区编码
                    amapLocation.aoiName//获取当前定位点的AOI信息
                    amapLocation.buildingId//获取当前室内定位的建筑物Id
                    amapLocation.floor//获取当前室内定位的楼层
                    amapLocation.gpsAccuracyStatus//获取GPS的当前状态
                    //获取定位时间
                    val df = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
                    val date = Date(amapLocation.time)
                    df.format(date)
                    Log.e("AmapError", "location:"
                            + amapLocation.getCity() + "======="
                            + amapLocation.getDistrict() + "======="
                            + amapLocation.getStreet() + "=======")
                    EventBus.getDefault().postSticky(LocationEvent(amapLocation))
                } else {
                    //定位失败时,可通过ErrCode(错误码)信息来确定失败的原因,errInfo是错误信息,详见错误码表。
                    Log.e("AmapError", "location Error, ErrCode:"
                            + amapLocation.getErrorCode() + ", errInfo:"
                            + amapLocation.getErrorInfo())
                }
            }
        }