This commit is contained in:
tongchenfei
2020-10-22 15:24:46 +08:00
parent bb7f9a14fc
commit 258452a633
7 changed files with 69 additions and 76 deletions

View File

@@ -9,16 +9,19 @@ public class PoiWrapper {
private int id;
private String poiType;
private int iconRes;
private String iconUrl;
private String title;
private int iconInfoRes;
private String iconUrl = "";
private String iconInfoUrl = "";
private String title = "拥堵";
public PoiWrapper(){
}
public PoiWrapper(String poiType, int iconRes, String title) {
public PoiWrapper(String poiType, int iconRes,int iconInfoRes, String title) {
this.poiType = poiType;
this.iconRes = iconRes;
this.iconInfoRes = iconInfoRes;
this.title = title;
}
@@ -61,4 +64,20 @@ public class PoiWrapper {
public void setTitle(String title) {
this.title = title;
}
public int getIconInfoRes() {
return iconInfoRes;
}
public void setIconInfoRes(int iconInfoRes) {
this.iconInfoRes = iconInfoRes;
}
public String getIconInfoUrl() {
return iconInfoUrl;
}
public void setIconInfoUrl(String iconInfoUrl) {
this.iconInfoUrl = iconInfoUrl;
}
}

View File

@@ -94,15 +94,15 @@ public class MapMarkerInfoView extends MapMarkerBaseView {
MapMarkerManager.getInstance().getWrapperByPoiType(poiType);
if (poiWrapper != null) {
// 加载图片
if(poiWrapper.getIconUrl().isEmpty()){
if(poiWrapper.getIconInfoUrl().isEmpty()){
// 没有网络图片
GlideApp.with(ivIcon).load(poiWrapper.getIconRes()).into(ivIcon);
GlideApp.with(getContext()).load(poiWrapper.getIconInfoRes()).into(ivIcon);
}else{
// 有网络图片
GlideApp.with(ivIcon).load(poiWrapper.getIconUrl()).placeholder(poiWrapper.getIconRes()).into(ivIcon);
GlideApp.with(getContext()).load(poiWrapper.getIconInfoUrl()).placeholder(poiWrapper.getIconInfoRes()).into(ivIcon);
}
}else{
Logger.e(TAG, "未能根据poiType获取对应poi信息无法渲染marker====" + poiType);
Logger.e(TAG, "未能根据poiType获取对应poi信息无法渲染info marker====" + poiType);
}
}
break;

View File

@@ -1034,49 +1034,51 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
private Map<String, PoiWrapper> poiIconMap = new ArrayMap<>();
public void updateIconWithPoiType(){
// 先生成本地默认map
poiIconMap.put(MarkerPoiTypeEnum.GAS_STATION, new PoiWrapper(MarkerPoiTypeEnum.GAS_STATION,
poiIconMap.put(MarkerPoiTypeEnum.GAS_STATION, new PoiWrapper(MarkerPoiTypeEnum.GAS_STATION,R.drawable.icon_map_marker_refuel,
R.drawable.icon_map_marker_refuel, "加油站"));
poiIconMap.put(MarkerPoiTypeEnum.TRAFFIC_CHECK, new PoiWrapper(MarkerPoiTypeEnum.TRAFFIC_CHECK,
R.drawable.icon_map_marker_road_check2_white, "交通检查"));
R.drawable.icon_map_marker_road_check2,R.drawable.icon_map_marker_road_check2_white, "交通检查"));
poiIconMap.put(MarkerPoiTypeEnum.ROAD_CLOSED, new PoiWrapper(MarkerPoiTypeEnum.ROAD_CLOSED,
R.drawable.icon_map_marker_road_block_off2_white, "封路"));
R.drawable.icon_map_marker_road_block_off2,R.drawable.icon_map_marker_road_block_off2_white, "封路"));
poiIconMap.put(MarkerPoiTypeEnum.SHOP_DISCOUNT, new PoiWrapper(MarkerPoiTypeEnum.SHOP_DISCOUNT,
R.drawable.icon_map_marker_shop_discount, "商场打折"));
R.drawable.icon_map_marker_shop_discount,R.drawable.icon_map_marker_shop_discount, "商场打折"));
poiIconMap.put(MarkerPoiTypeEnum.FOURS_4S, new PoiWrapper(MarkerPoiTypeEnum.FOURS_4S,
R.drawable.icon_map_marker_4s, "4S店"));
R.drawable.icon_map_marker_4s,R.drawable.icon_map_marker_4s, "4S店"));
poiIconMap.put(MarkerPoiTypeEnum.FOURS_ROAD_WORK, new PoiWrapper(MarkerPoiTypeEnum.FOURS_ROAD_WORK,
R.drawable.icon_map_marker_road_work2_white, "施工"));
R.drawable.icon_map_marker_road_work2,R.drawable.icon_map_marker_road_work2_white, "施工"));
poiIconMap.put(MarkerPoiTypeEnum.FOURS_BLOCK_UP, new PoiWrapper(MarkerPoiTypeEnum.FOURS_BLOCK_UP,
R.drawable.icon_map_marker_road_block_up2_white, "拥堵"));
R.drawable.icon_map_marker_road_block_up2_white,R.drawable.icon_map_marker_road_block_up2, "拥堵"));
poiIconMap.put(MarkerPoiTypeEnum.FOURS_PONDING, new PoiWrapper(MarkerPoiTypeEnum.FOURS_PONDING,
R.drawable.icon_map_marker_pondingl2_white, "积水"));
R.drawable.icon_map_marker_pondingl2,R.drawable.icon_map_marker_pondingl2_white, "积水"));
poiIconMap.put(MarkerPoiTypeEnum.FOURS_SHOP_FREE, new PoiWrapper(MarkerPoiTypeEnum.FOURS_SHOP_FREE,
R.drawable.icon_map_marker_shop, "超时打折"));
R.drawable.icon_map_marker_shop,R.drawable.icon_map_marker_shop, "超时打折"));
poiIconMap.put(MarkerPoiTypeEnum.FOURS_FOG, new PoiWrapper(MarkerPoiTypeEnum.FOURS_FOG,
R.drawable.module_service_ic_rc_dark_frog2_white, "浓雾"));
R.drawable.module_service_ic_rc_dark_frog2,R.drawable.module_service_ic_rc_dark_frog2_white, "浓雾"));
poiIconMap.put(MarkerPoiTypeEnum.FOURS_ICE, new PoiWrapper(MarkerPoiTypeEnum.FOURS_ICE,
R.drawable.module_service_ic_rc_freeze2_white, "结冰"));
R.drawable.module_service_ic_rc_freeze2,R.drawable.module_service_ic_rc_freeze2_white, "结冰"));
poiIconMap.put(MarkerPoiTypeEnum.FOURS_PARKING, new PoiWrapper(MarkerPoiTypeEnum.FOURS_PARKING,
R.drawable.module_service_ic_rc_parking2, "停车场"));
R.drawable.module_service_ic_rc_parking2,R.drawable.module_service_ic_rc_parking2, "停车场"));
poiIconMap.put(MarkerPoiTypeEnum.FOURS_ACCIDENT, new PoiWrapper(MarkerPoiTypeEnum.FOURS_ACCIDENT,
R.drawable.module_service_ic_rc_accident3_white, "事故"));
R.drawable.module_service_ic_rc_accident3,R.drawable.module_service_ic_rc_accident3_white, "事故"));
poiIconMap.put(MarkerPoiTypeEnum.FOURS_NEALY, new PoiWrapper(MarkerPoiTypeEnum.FOURS_NEALY,
R.drawable.icon_map_marker_shear_news, "身边"));
R.drawable.icon_map_marker_shear_news,R.drawable.icon_map_marker_shear_news, "身边"));
poiIconMap.put(MarkerPoiTypeEnum.FOURS_LIVING, new PoiWrapper(MarkerPoiTypeEnum.FOURS_LIVING,
R.drawable.icon_map_marker_living_white, "实时路况"));
R.drawable.icon_map_marker_living,R.drawable.icon_map_marker_living_white, "实时路况"));
poiIconMap.put(MarkerPoiTypeEnum.ILLEGAL_PARK_LIVING, new PoiWrapper(MarkerPoiTypeEnum.ILLEGAL_PARK_LIVING,
R.drawable.module_service_ic_rc_illegal_park_white, "违章停车"));
R.drawable.module_service_ic_rc_illegal_park,R.drawable.module_service_ic_rc_illegal_park_white, "违章停车"));
// 从sp中获取config属性将服务端配置内容合并到本地
String config = SharedPrefsMgr.getInstance(mContext).getString("SHARE_BUTTON_CONFIG", "");
if (!config.isEmpty()) {
List<PoiWrapper> configWrappers = GsonUtil.arrayFromJson(config, PoiWrapper.class);
if(configWrappers!=null) {
for (PoiWrapper wrapper : configWrappers) {
wrapper.setIconRes(R.drawable.icon_map_marker_road_block_up2_white);
wrapper.setIconInfoRes(R.drawable.icon_map_marker_road_block_up2_white);
wrapper.setIconRes(R.drawable.icon_map_marker_road_block_up2);
if(poiIconMap.containsKey(wrapper.getPoiType())) {
PoiWrapper defWrapper = poiIconMap.get(wrapper.getPoiType());
if(defWrapper!=null) {
wrapper.setIconRes(defWrapper.getIconRes());
wrapper.setIconInfoRes(defWrapper.getIconInfoRes());
}
}
poiIconMap.put(wrapper.getPoiType(), wrapper);

View File

@@ -10,8 +10,11 @@ import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.module.common.entity.MarkerExploreWay;
import com.mogo.module.common.entity.MarkerPoiTypeEnum;
import com.mogo.module.common.entity.MarkerShowEntity;
import com.mogo.module.common.marker.PoiWrapper;
import com.mogo.module.service.R;
import com.mogo.module.service.ServiceConst;
import com.mogo.utils.glide.GlideApp;
import com.mogo.utils.logger.Logger;
/**
* author : donghongyu
@@ -54,59 +57,26 @@ public class MapMarkerView extends MapMarkerBaseView {
case ServiceConst.CARD_TYPE_ROAD_CONDITION:
case ServiceConst.CARD_TYPE_NOVELTY:
if ( bindObj instanceof MarkerExploreWay && ( ( MarkerExploreWay ) bindObj ).getPoiType() != null ) {
switch ( ( ( MarkerExploreWay ) bindObj ).getPoiType() ) {
case MarkerPoiTypeEnum.GAS_STATION:
ivIcon.setImageResource( R.drawable.icon_map_marker_refuel );
break;
case MarkerPoiTypeEnum.TRAFFIC_CHECK:
ivIcon.setImageResource( R.drawable.icon_map_marker_road_check2 );
break;
case MarkerPoiTypeEnum.ROAD_CLOSED:
ivIcon.setImageResource( R.drawable.icon_map_marker_road_block_off2 );
break;
case MarkerPoiTypeEnum.SHOP_DISCOUNT:
ivIcon.setImageResource( R.drawable.icon_map_marker_shop_discount );
break;
case MarkerPoiTypeEnum.FOURS_4S:
ivIcon.setImageResource( R.drawable.icon_map_marker_4s );
break;
case MarkerPoiTypeEnum.FOURS_ROAD_WORK:
ivIcon.setImageResource( R.drawable.icon_map_marker_road_work2 );
break;
case MarkerPoiTypeEnum.FOURS_BLOCK_UP:
ivIcon.setImageResource( R.drawable.icon_map_marker_road_block_up2 );
break;
case MarkerPoiTypeEnum.FOURS_PONDING:
ivIcon.setImageResource( R.drawable.icon_map_marker_pondingl2 );
break;
case MarkerPoiTypeEnum.FOURS_SHOP_FREE:
ivIcon.setImageResource( R.drawable.icon_map_marker_shop );
break;
case MarkerPoiTypeEnum.FOURS_FOG:
ivIcon.setImageResource( R.drawable.module_service_ic_rc_dark_frog2 );
break;
case MarkerPoiTypeEnum.FOURS_ICE:
ivIcon.setImageResource( R.drawable.module_service_ic_rc_freeze2 );
break;
case MarkerPoiTypeEnum.FOURS_ACCIDENT:
ivIcon.setImageResource( R.drawable.module_service_ic_rc_accident3 );
break;
case MarkerPoiTypeEnum.FOURS_NEALY:
ivIcon.setImageResource( R.drawable.icon_map_marker_shear_news );
break;
case MarkerPoiTypeEnum.FOURS_LIVING:
ivIcon.setImageResource( R.drawable.icon_map_marker_living );
break;
case MarkerPoiTypeEnum.ILLEGAL_PARK_LIVING:
ivIcon.setImageResource( R.drawable.module_service_ic_rc_illegal_park );
break;
case MarkerPoiTypeEnum.FOURS_PARKING:
default:
ivIcon.setImageResource( R.drawable.icon_map_marker_road_block_up2 );
break;
// 根据poiType获取对应的图片
String poiType = ((MarkerExploreWay) bindObj).getPoiType();
PoiWrapper poiWrapper =
MapMarkerManager.getInstance().getWrapperByPoiType(poiType);
if (poiWrapper != null) {
// 加载图片
if(poiWrapper.getIconUrl().isEmpty()){
// 没有网络图片
GlideApp.with(getContext()).load(poiWrapper.getIconRes()).into(ivIcon);
}else{
// 有网络图片
GlideApp.with(getContext()).load(poiWrapper.getIconUrl()).placeholder(poiWrapper.getIconRes()).into(ivIcon);
}
}else{
Logger.e(TAG, "未能根据poiType获取对应poi信息无法渲染marker====" + poiType);
}
}
break;
default:
break;
}
} catch ( Exception e ) {

View File

@@ -20,6 +20,7 @@
android:layout_width="@dimen/module_service_marker_bubble_icon_width"
android:layout_height="@dimen/module_service_marker_bubble_icon_height"
android:layout_gravity="center"
android:background="#fff"
android:layout_marginBottom="@dimen/module_service_marker_bubble_icon_marginBottom"
tools:src="@drawable/icon_map_marker_road_block_up2" />

View File

@@ -35,6 +35,7 @@
android:layout_width="@dimen/module_service_marker_bubble_icon_width"
android:layout_height="@dimen/module_service_marker_bubble_icon_height"
android:layout_gravity="center"
android:background="#000"
android:layout_marginLeft="@dimen/dp_15"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -477,8 +477,8 @@ public class ShareControl implements IMogoShareManager, Handler.Callback {
Logger.d(TAG, "获取分享框成功但是detailMsg没有内容");
}
Logger.d(TAG, "获取分享框配置成功: " + config);
SharedPrefsMgr.getInstance(mContext).putString(KEY_SHARE_CONFIG, config);
MapMarkerManager.getInstance().updateIconWithPoiType();
// SharedPrefsMgr.getInstance(mContext).putString(KEY_SHARE_CONFIG, config);
// MapMarkerManager.getInstance().updateIconWithPoiType();
}
@Override