From 64a156657e44a944b80e3641ea9f4d9c37d8f2aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Fri, 18 Dec 2020 17:53:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=AF=BC=E8=88=AA=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE=E5=AE=8C=E6=88=90=E4=BA=86=E5=9C=86=E5=BD=A2=E5=B0=8F?= =?UTF-8?q?=E5=9C=B0=E5=9B=BE=E7=9A=84=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/AndroidManifest.xml | 2 +- .../src/main/assets/small_map_style.data | Bin 141822 -> 141822 bytes .../main/assets/small_map_style_extra.data | Bin 2734 -> 3118 bytes .../small/map/SmallMapDirectionView.java | 173 ++++++++++++------ .../module/small/map/SmallMapService.java | 9 - .../small/map/utils/MapAssetStyleUtils.java | 60 ++++++ .../icon_module_small_map_four_corners.png | Bin 0 -> 1017 bytes .../main/res/layout/module_small_map_view.xml | 4 +- 8 files changed, 180 insertions(+), 68 deletions(-) create mode 100644 modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/utils/MapAssetStyleUtils.java create mode 100644 modules/mogo-module-smp/src/main/res/drawable-xhdpi/icon_module_small_map_four_corners.png diff --git a/modules/mogo-module-smp/src/main/AndroidManifest.xml b/modules/mogo-module-smp/src/main/AndroidManifest.xml index 3d0a81ab9f..32b078729c 100644 --- a/modules/mogo-module-smp/src/main/AndroidManifest.xml +++ b/modules/mogo-module-smp/src/main/AndroidManifest.xml @@ -6,6 +6,6 @@ + android:process=":smallMap"/> \ No newline at end of file diff --git a/modules/mogo-module-smp/src/main/assets/small_map_style.data b/modules/mogo-module-smp/src/main/assets/small_map_style.data index 75195b39a29c1b139f8e5ce6b0e9c22c01de40b3..412a2ab911461b5fab38b7083914ac978c20bd0e 100644 GIT binary patch literal 141822 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 ZQ81`#?TB~o*Db{WYZu`Js-^Rx)BZ|r6;l8J diff --git a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java index 529a290183..3c8676cefa 100644 --- a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java +++ b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java @@ -1,7 +1,9 @@ package com.mogo.module.small.map; import android.content.Context; +import android.graphics.BitmapFactory; import android.util.AttributeSet; +import android.util.Log; import android.view.LayoutInflater; import android.view.animation.LinearInterpolator; import android.widget.ImageView; @@ -17,10 +19,14 @@ import com.amap.api.maps.TextureMapView; import com.amap.api.maps.UiSettings; import com.amap.api.maps.model.BitmapDescriptor; import com.amap.api.maps.model.BitmapDescriptorFactory; +import com.amap.api.maps.model.CameraPosition; import com.amap.api.maps.model.CustomMapStyleOptions; import com.amap.api.maps.model.MyLocationStyle; +import com.amap.api.navi.AMapNaviView; +import com.amap.api.navi.AMapNaviViewOptions; import com.mogo.module.common.view.RoundLayout; import com.mogo.module.small.map.animation.DirectionRotateAnimation; +import com.mogo.module.small.map.utils.MapAssetStyleUtils; import java.io.IOException; import java.io.InputStream; @@ -34,7 +40,7 @@ import java.io.InputStream; public class SmallMapDirectionView extends RoundLayout { private ImageView mIvMapBorder; - private TextureMapView mTextureMapView; + private AMapNaviView mAMapNaviView; private AMap mAMap; private UiSettings mUiSettings; private CameraUpdate mCameraUpdate; @@ -63,73 +69,127 @@ public class SmallMapDirectionView extends RoundLayout { LayoutInflater.from(context).inflate(R.layout.module_small_map_view, this); mIvMapBorder = findViewById(R.id.ivMapBorder); - mTextureMapView = findViewById(R.id.textureMapView); + mAMapNaviView = findViewById(R.id.aMapNaviView); + mAMapNaviView.onCreate(null); + // 车头朝上 + mAMapNaviView.setNaviMode(AMapNaviView.CAR_UP_MODE); + mAMap = mAMapNaviView.getMap(); - mTextureMapView.onCreate(null); - mAMap = mTextureMapView.getMap(); + // 导航地图 + AMapNaviViewOptions options = mAMapNaviView.getViewOptions(); + //设置导航界面UI是否显示。 + if (options != null) { + // 设置是否开启自动黑夜模式切换,默认为false,不自动切换 + options.setAutoNaviViewNightMode(false); + // 设置6秒后是否自动锁车 + options.setAutoLockCar(true); + // 设置路线上的摄像头气泡是否显示 + options.setCameraBubbleShow(false); + // 设置路线相关的配置属性,如:路线的路况颜色,路线上是否显示摄像头气泡等。 + // options.setRouteOverlayOptions( MapStyleUtils.getRouteOverlayOptions() ); + // 设置自车的图片对象 + options.setCarBitmap(BitmapFactory.decodeResource(getContext().getResources(), + R.drawable.module_small_map_view_my_location_logo)); + // 设置罗盘位图对象 + options.setFourCornersBitmap(BitmapFactory.decodeResource(getContext().getResources(), + R.drawable.icon_module_small_map_four_corners)); + // 设置指南针图标否在导航界面显示,默认显示。true,显示;false,隐藏。 + options.setCompassEnabled(false); + // 黑夜模式 + options.setNaviNight(true); + //设置路况光柱条是否显示(只适用于驾车导航,需要联网)。 + options.setTrafficBarEnabled(false); + // 设置[实时交通图层开关按钮]是否显示(只适用于驾车导航,需要联网)。 + options.setTrafficLayerEnabled(false); + // 设置导航界面是否显示路线全览按钮。 + options.setRouteListButtonShow(false); + // 设置屏幕是否常亮,默认开启 + options.setScreenAlwaysBright(false); + // 设置交通播报是否打开(只适用于驾车导航,需要联网)。 + options.setTrafficInfoUpdateEnabled(false); + // 设置摄像头播报是否打开(只适用于驾车导航)。 + options.setCameraInfoUpdateEnabled(false); + // 设置菜单按钮是否在导航界面显示。 + options.setSettingMenuEnabled(false); + // 设置是否绘制显示交通路况的线路(彩虹线),拥堵-红色,畅通-绿色,缓慢-黄色,未知-蓝色。默认不绘制彩虹线。 + options.setTrafficLine(false); + // 设置是否绘制牵引线(当前位置到目的地的指引线)。默认不绘制牵引线。 + options.setLeaderLineEnabled(-1); + // 设置导航界面UI是否显示。 + options.setLayoutVisible(false); + // 设置是否自动画路 + options.setAutoDrawRoute(false); + // 设置是否显示路口放大图(实景图) + options.setRealCrossDisplayShow(false); + // 设置是否显示路口放大图(路口模型图) + options.setModeCrossDisplayShow(false); + // 设置是否显示道路信息view + options.setLaneInfoShow(false); + // 设置是否自动改变缩放等级 + options.setAutoChangeZoom(false); + // 设置是否自动全览模式,即在算路成功后自动进入全览模式 + options.setAutoDisplayOverview(false); + // 设置路线转向箭头隐藏和显示 + options.setNaviArrowVisible(false); + // 通过路线是否自动置灰,仅支持驾车导航 + options.setAfterRouteAutoGray(false); + //options.setZoom(((int) 9)); + //options.setPointToCenter(0.7D, 0.5D); + // 2D模式 + options.setTilt(0); + mAMapNaviView.setViewOptions(options); + } + // 设置电子眼所在路线的可见性 + mAMapNaviView.setRouteOverlayVisible(false); + // 设置是否隐藏AMapNaviView上的CarOverlay,包括自车、罗盘 + mAMapNaviView.setCarOverlayVisible(true); + mAMapNaviView.setViewOptions(options); - // 设置自定义地图样式 - try { - byte[] buffer1 = null; - byte[] buffer2 = null; - InputStream is1 = null; - InputStream is2 = null; - try { - is1 = context.getAssets().open("small_map_style.data"); - int lenght1 = is1.available(); - buffer1 = new byte[lenght1]; - is1.read(buffer1); - is2 = context.getAssets().open("small_map_style_extra.data"); - int lenght2 = is2.available(); - buffer2 = new byte[lenght2]; - is2.read(buffer2); - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - if (is1 != null) - is1.close(); - if (is2 != null) - is2.close(); - } catch (IOException e) { - e.printStackTrace(); + //设置希望展示的地图缩放级别 + mCameraUpdate = CameraUpdateFactory.zoomTo(12); + mAMap.moveCamera(mCameraUpdate); + + // 设置当前位置的样式 +// myLocationStyle = new MyLocationStyle();//初始化定位蓝点样式类 +// myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。(1秒1次定位)如果不设置myLocationType,默认也会执行此种模式。 +// myLocationStyle.interval(1000); //设置连续定位模式下的定位间隔,只在连续定位模式下生效,单次定位模式下不会生效。单位为毫秒。 +// BitmapDescriptor location = BitmapDescriptorFactory.fromResource(R.drawable.module_small_map_view_my_location_logo); +// myLocationStyle.myLocationIcon(location); +// mAMap.setMyLocationStyle(myLocationStyle);//设置定位蓝点的Style +// mAMap.setMyLocationEnabled(true);// 设置为true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。 + + mAMap.setOnCameraChangeListener(new AMap.OnCameraChangeListener() { + @Override + public void onCameraChange(CameraPosition cameraPosition) { + if (cameraPosition != null) { + //Log.w("onCameraChange", "cameraPosition=" + cameraPosition.bearing); + changeAngle((int) cameraPosition.bearing); } } - CustomMapStyleOptions customMapStyleOptions = new CustomMapStyleOptions(); - customMapStyleOptions.setStyleData(buffer1); - customMapStyleOptions.setStyleExtraData(buffer2); - customMapStyleOptions.setEnable(true); - mAMap.setCustomMapStyle(customMapStyleOptions); - } catch (Exception e) { - e.printStackTrace(); - } + @Override + public void onCameraChangeFinish(CameraPosition cameraPosition) { - // 设置当前位置的样式 - myLocationStyle = new MyLocationStyle();//初始化定位蓝点样式类 - myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。(1秒1次定位)如果不设置myLocationType,默认也会执行此种模式。 - myLocationStyle.interval(1000); //设置连续定位模式下的定位间隔,只在连续定位模式下生效,单次定位模式下不会生效。单位为毫秒。 - BitmapDescriptor location = BitmapDescriptorFactory.fromResource(R.drawable.module_small_map_view_my_location_logo); - myLocationStyle.myLocationIcon(location); - mAMap.setMyLocationStyle(myLocationStyle);//设置定位蓝点的Style - mAMap.setMyLocationEnabled(true);// 设置为true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。 - - //设置希望展示的地图缩放级别 - mCameraUpdate = CameraUpdateFactory.zoomTo(17); - mAMap.moveCamera(mCameraUpdate); + } + }); + // 关闭地图文字标注 + mAMap.showMapText(false); // 设置地图的样式 mUiSettings = mAMap.getUiSettings(); mUiSettings.setZoomControlsEnabled(false);// 地图缩放级别的交换按钮 -// mUiSettings.setZoomGesturesEnabled(false);// 缩放手势 -// mUiSettings.setScrollGesturesEnabled(false);// 滑动手势 -// mUiSettings.setRotateGesturesEnabled(false);// 旋转手势 -// mUiSettings.setTiltGesturesEnabled(false);// 倾斜手势 mUiSettings.setAllGesturesEnabled(false);// 所有手势 mUiSettings.setMyLocationButtonEnabled(false); // 显示默认的定位按钮 mUiSettings.setLogoBottomMargin(-150); //设置Logo下边界距离屏幕底部的边距,设置为负值即可 + + CustomMapStyleOptions customMapStyleOptions = new CustomMapStyleOptions(); + customMapStyleOptions.setStyleData(MapAssetStyleUtils.getAssetsStyle(context)); + customMapStyleOptions.setStyleExtraData(MapAssetStyleUtils.getAssetsExtraStyle(context)); + customMapStyleOptions.setEnable(true); + mAMap.setCustomMapStyle(customMapStyleOptions); + } @@ -139,9 +199,10 @@ public class SmallMapDirectionView extends RoundLayout { * @param angle 角度 0 - 359度旋转,相对于自身中心位置 */ public void changeAngle(int angle) { - int tempAngle = angle; - if (angle <= 180) { - tempAngle = angle; + int tempAngle = 360 - angle; + + if (tempAngle <= 180) { + tempAngle = tempAngle; } else { tempAngle = -(360 - tempAngle); } diff --git a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapService.java b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapService.java index f50a457f25..5841270767 100644 --- a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapService.java +++ b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapService.java @@ -88,15 +88,6 @@ public class SmallMapService extends Service { mSmallMapDirectionView = mWindowManagerView.findViewById(R.id.smallMapDirectionView); - - mSmallMapDirectionView.postDelayed(new Runnable() { - @Override - public void run() { - Random random = new Random(); - mSmallMapDirectionView.changeAngle(random.nextInt(360)); - } - }, 1000); - } diff --git a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/utils/MapAssetStyleUtils.java b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/utils/MapAssetStyleUtils.java new file mode 100644 index 0000000000..4f640ea613 --- /dev/null +++ b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/utils/MapAssetStyleUtils.java @@ -0,0 +1,60 @@ +package com.mogo.module.small.map.utils; + +import android.content.Context; + +import java.io.IOException; +import java.io.InputStream; + +/** + * @author donghongyu + * @date 12/18/20 5:37 PM + */ +public class MapAssetStyleUtils { + + public static byte[] getAssetsStyle(Context context) { + byte[] buffer1 = null; + InputStream is1 = null; + try { + is1 = context.getResources().getAssets().open("small_map_style.data"); + int lenght1 = is1.available(); + buffer1 = new byte[lenght1]; + is1.read(buffer1); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + if (is1 != null) { + is1.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return buffer1; + } + + + public static byte[] getAssetsExtraStyle(Context context) { + byte[] buffer1 = null; + InputStream is1 = null; + try { + is1 = context.getResources().getAssets().open("small_map_style_extra.data"); + int lenght1 = is1.available(); + buffer1 = new byte[lenght1]; + is1.read(buffer1); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + if (is1 != null) { + is1.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return buffer1; + } + + +} diff --git a/modules/mogo-module-smp/src/main/res/drawable-xhdpi/icon_module_small_map_four_corners.png b/modules/mogo-module-smp/src/main/res/drawable-xhdpi/icon_module_small_map_four_corners.png new file mode 100644 index 0000000000000000000000000000000000000000..91e02323a8eb1e0d7b2f81bbafe238b702a1fb87 GIT binary patch literal 1017 zcmZ`&&x_MQ6n<&DORX$|9_;QZWY9ynlJ}kGaC0MXS>{0G^x&ICuu|n?VQP0j5=eA434; z6~I~V^~ZZEON{ZLJ2DKo$l@XtgjLA1NPrwWPA9Rz;tNasxebMg1E8@RAU_wD%z18+ zU7zO{ahVgpO|E|i$bGf92XtWEQ7q!f<{sI_a_D%R0BWeP(81IcLucX!O4yVlhQeYF zBT0-X^ifk97(KB~d@Np*t8!J+N}?#L{@zIG>$eg)dumE!N<9Uk*=#1yF3ZHuU8nO5_$`8 zud3+CL{``)6XM_ZObhd#BS{L%vLl -