定位图标指示方向 |
您所在的位置:网站首页 › 高德地图搜索定位怎么设置 › 定位图标指示方向 |
使用场景 让地图中的定位图标能够识别&指示方向。 需要用户移动位置的app,尤其是用到路径规划、导航的app中,可以增加该指示效果,以便app用户能够分清移动方向。 用到产品Android 地图SDK Android 定位 SDK 核心类/接口 类 接口 说明 版本 AMap setLocationSource(LocationSource locationSource) 设置定位资源 V2.0.0版本起 AMap addMarker(MarkerOptions options) 加一个Marker(标记)到地图上 V2.0.0版本起 AMap addCircle(CircleOptions options) 添加圆形(circle)覆盖物到地图上 V2.0.0版本起 AMapLocationClient startLocation() 启动定位 V2.0.0版本起 AMapLocationClient setLocationOption(mLocationOption) 给定位客户端设置参数 V2.0.0版本起 AMapLocationListener onLocationChanged(AMapLocation amapLocation) 监听器回调方法 V2.0.0版本起 核心难点1、获取手机sensor角度值并过滤 Java@Override public void onSensorChanged(SensorEvent event) { if (System.currentTimeMillis() - lastTime < TIME_SENSOR) { return; } switch (event.sensor.getType()) { case Sensor.TYPE_ORIENTATION: { float x = event.values[0]; x += getScreenRotationOnPhone(mContext); x %= 360.0F; if (x > 180.0F) x -= 360.0F; else if (x < -180.0F) x += 360.0F; if (Math.abs(mAngle - x) < 3.0f) { break; } mAngle = Float.isNaN(x) ? 0 : x; if (mMarker != null) { mMarker.setRotateAngle(360 - mAngle); } lastTime = System.currentTimeMillis(); } } }2、获取当前手机屏幕旋转角度 Java/** * 获取当前屏幕旋转角度 * * @param context * @return 0表示是竖屏; 90表示是左横屏; 180表示是反向竖屏; 270表示是右横屏 */ public static int getScreenRotationOnPhone(Context context) { final Display display = ((WindowManager) context .getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); switch (display.getRotation()) { case Surface.ROTATION_0: return 0; case Surface.ROTATION_90: return 90; case Surface.ROTATION_180: return 180; case Surface.ROTATION_270: return -90; } return 0; }3、定位回调成功处理Marker与Circle绘制 Javaif (!mFirstFix) { mFirstFix = true; addCircle(location, amapLocation.getAccuracy());//添加定位精度圆 addMarker(location);//添加定位图标 mSensorHelper.setCurrentMarker(mLocMarker);//定位图标旋转 aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(location,18)); } else { mCircle.setCenter(location); mCircle.setRadius(amapLocation.getAccuracy()); mLocMarker.setPosition(location); aMap.moveCamera(CameraUpdateFactory.changeLatLng(location)); } |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |