android

您所在的位置:网站首页 高德地图户外跑步轨迹 android

android

2023-09-30 08:12| 来源: 网络整理| 查看: 265

目录 一、简介1.准备 二、高德地图的使用

一、简介

由于种种原因公司app打算更换百度地图定位与轨迹sdk为高德地图定位与轨迹(PS:道长的心中填满了泪水)。如果需要使用百度地图定位与轨迹sdk请右拐传送门:android-百度地图:鹰眼轨迹的实时绘制,或者走对门:百度地图:定位,轨迹,白板,加载崩溃,定位到非洲。

1.准备

获取key 咳咳,由于高德开发文档比较完善具体的就不说了(不是道长懒),直接开传送门:获取高德地图的kay

下载sdk 高德地图的sdk下载也是和百度地图一样的需要根据需要选择,传送门:sdk下载

配置studio 道长没有按照这个studio的配置教程做,当然有人还是需要的:配置studio 因为道长公司的项目app是组件化开发。所以一些设置是不同的,个人推荐在高德的地图的示例中心下载一个示例,然后仿照示例进行配置。示例中心传送门:示例中心。既然说到示例中心,示例中心的示例还是非常全面的(PS:高德地图是大大的好人啊,泪目) 在这里插入图片描述

当然示例中心含有轨迹功能的示例,如下所示: 在这里插入图片描述

注:在示例中心的示例都是有应用场景的,尽量按照推荐应用场景使用

二、高德地图的使用

前面已经说过高德地图的开发文档比较完善。具体的使用道长就不细说了,道长说一下开发时认为需要注意的点:

高德地图的缩放级别对应的比例尺

设置高德地图缩放的api:

aMap.moveCamera(CameraUpdateFactory.zoomTo(13));

带动画的高德地图缩放的api:

aMap.animateCamera(CameraUpdateFactory.zoomTo(13));

设置高德地图以比例尺13缩放到某个点的api:

aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(mOriginList.get(0),13));

带动画的高德地图以比例尺13缩放到某个点的api:

aMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 13));

缩放级别-比例尺-cameraPosition.zoom:

20-10m -(19= filePath = Environment.getExternalStorageDirectory() + "/DCIM/Camera/test_" + sdf.format(new Date()) + ".png"; // 保存在SD卡根目录下,图片为png格式。 FileOutputStream fos = new FileOutputStream(filePath); boolean ifSuccess = bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos); try { fos.flush(); } catch (IOException e) { e.printStackTrace(); } try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } } @Override public void onMapScreenShot(Bitmap bitmap, int i) { } }); }

调用系统api进行截图:

private void screenshot() { // 获取屏幕 View dView = getWindow().getDecorView(); dView.setDrawingCacheEnabled(true); dView.buildDrawingCache(); Bitmap bmp = dView.getDrawingCache(); if (bmp != null) { try { // 获取内置SD卡路径 String sdCardPath = Environment.getExternalStorageDirectory().getPath(); // 图片文件路径 String filePath = sdCardPath + File.separator + currentTime + ".png"; File file = new File(filePath); FileOutputStream os = new FileOutputStream(file); bmp.compress(Bitmap.CompressFormat.PNG, 100, os); os.flush(); os.close(); ShareImg = filePath; } catch (Exception e) { } layout_title.setVisibility(View.VISIBLE); iv_screen_shot.setVisibility(View.GONE); if (shareMenuWindow == null) { Map parameters = new HashMap(); parameters.put("mScreenWidth", mScreenWidth); parameters.put("fromWhere", "ShareTrackActivity"); parameters.put("ShareImg", ShareImg); parameters.put("ShareUrl", ""); parameters.put("ShareInfo", ""); parameters.put("RecommendTitle", ""); shareMenuWindow = new ShareMenuPop(ShareTrackActivity.this, parameters); } Window window = shareMenuWindow.getWindow(); window.setGravity(Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL); // 此处可以设置dialog显示的位置 window.setWindowAnimations(R.style.AnimBottom); shareMenuWindow.setCancelable(true); shareMenuWindow.show(); iv_cover.setVisibility(View.GONE); } } 高德地图参数样式设置 差不多是高德地图的所有设置,包括定位间隔、定位点的精度圈的样式、定位的模式、隐藏系统罗盘、隐藏系统定位到中心、隐藏系统比例尺等,代码如下: /** * 高德地图参数样式设置 */ private void initAMap() { myLocationStyle = new MyLocationStyle();//初始化定位蓝点样式类myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。(1秒1次定位)如果不设置myLocationType,默认也会执行此种模式。 myLocationStyle.interval(2000); //设置连续定位模式下的定位间隔,只在连续定位模式下生效,单次定位模式下不会生效。单位为毫秒。 myLocationStyle.myLocationIcon(BitmapDescriptorFactory.fromResource(R.drawable.icon_track_myself)); myLocationStyle.strokeColor(Color.argb(255, 245, 140, 40));// 设置圆形的边框颜色 myLocationStyle.radiusFillColor(Color.argb(100, 245, 140, 40));// 设置圆形的填充颜色 myLocationStyle.strokeWidth(5);//设置定位蓝点精度圈的边框宽度的方法。 // myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_SHOW);//只定位一次。 // myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATE) ;//定位一次,且将视角移动到地图中心点。 // myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_FOLLOW) ;//连续定位、且将视角移动到地图中心点,定位蓝点跟随设备移动。(1秒1次定位) // myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_MAP_ROTATE);//连续定位、且将视角移动到地图中心点,地图依照设备方向旋转,定位点会跟随设备移动。(1秒1次定位) // myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。(1秒1次定位)默认执行此种模式。 //以下三种模式从5.1.0版本开始提供 myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER);//连续定位、蓝点不会移动到地图中心点,定位点依照设备方向旋转,并且蓝点会跟随设备移动。 // myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_FOLLOW_NO_CENTER);//连续定位、蓝点不会移动到地图中心点,并且蓝点会跟随设备移动。 // myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_MAP_ROTATE_NO_CENTER);//连续定位、蓝点不会移动到地图中心点,地图依照设备方向旋转,并且蓝点会跟随设备移动。 aMap.setMyLocationStyle(myLocationStyle);//设置定位蓝点的Style aMap.getUiSettings().setZoomControlsEnabled(false);//去掉地图右下角隐藏的缩放按钮 aMap.getUiSettings().setMyLocationButtonEnabled(false);//设置默认定位按钮是否显示,非必需设置。 aMap.getUiSettings().setCompassEnabled(false);// 设置指南针 aMap.setMyLocationEnabled(true);// 设置为true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。 // aMap.moveCamera(CameraUpdateFactory.zoomTo(16)); uiSettings.setMyLocationButtonEnabled(false);//设置默认定位按钮是否显示,非必需设置。 uiSettings.setScaleControlsEnabled(true);//控制比例尺控件是否显示 }

道长就简单的分享到这里,希望这篇博客对你有所帮助。具体的示例可以看一下到账的Demo,如下: aMapDemo



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3