Commit 0d0d6e64 by Luosp

导航基本完成,需优化

parent 94111397
......@@ -11,8 +11,6 @@ android {
consumerProguardFiles 'consumer-rules.pro'
ndk {
abiFilters "armeabi-v7a"
// abiFilters "arm64-v8a"
// abiFilters "armeabi"
}
}
......@@ -29,28 +27,6 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/'] } }
packagingOptions {
exclude 'assets/tnavi/HCI_AUTH/HCI_AUTH_FOREVER'
exclude 'assets/tnavi/log/gpspos_data.txt'
exclude 'assets/tnavi/pdata/fx.sdb'
exclude 'assets/tnavi/pdata/font.pdt'
exclude 'assets/tnavi/pdata/res.pdt'
exclude 'assets/tnavi/sdb/cdata/rsh_0.sdb'
exclude 'assets/tnavi/sdb/cdata/zon.sdb'
exclude 'assets/tnavi/sdb/cdata/man.cdt'
exclude 'assets/tnavi/sdb/cdata/rsh.sdb'
exclude 'assets/tnavi/sdb/cdata/url.cdt'
exclude 'assets/tnavi/sdb/cdata/gd.sdb'
exclude 'assets/tnavi/sdb/cdata/ano.cdt'
exclude 'assets/tnavi/sdb/adata/tmp'
exclude 'assets/tnavi/config.ini'
exclude 'assets/tnavi/Dictionary.Dat'
exclude 'assets/tnavi/udata/utmp.txt'
exclude 'assets/tnavi/DictionaryWordSort.dat'
exclude 'assets/AccountInfo.txt'
}
}
dependencies {
......@@ -65,9 +41,10 @@ dependencies {
//日志类
implementation 'com.jakewharton.timber:timber:4.5.1'
//工具类
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.mapzen.android:lost:2.1.2'
implementation 'com.squareup.okhttp3:okhttp:3.12.3'
implementation 'org.greenrobot:eventbus:3.0.0'
implementation 'com.gyf.immersionbar:immersionbar:3.0.0'
implementation 'com.google.code.gson:gson:2.8.6'
implementation 'com.mapzen.android:lost:2.1.2'
implementation 'com.jakewharton.timber:timber:4.7.0'
}
apply from: '../mvn_push.gradle'
package cn.com.founder.arcgislib.navi;
import cn.com.founder.arcgislib.common.Variable;
import cn.com.founder.arcgislib.model.PointModel;
import cn.com.founder.arcgislib.navi.option.IArcGisNaviOption;
import cn.com.founder.arcgislib.view.ArcGisNaviView;
......@@ -21,27 +23,27 @@ public class ArcGisNavi implements IArcGisNaviOption {
this.mArcGisNaviView = arcGisNaviView;
}
// @Override
// public IArcGisNaviOption setShowNaviLayout(boolean isShow) {
// mArcGisNaviView.setShowNaviLayout(isShow);
// return this;
// }
//
// @Override
// public IArcGisNaviOption setNaviViewLocation(Variable.ViewLocation location) {
// mArcGisNaviView.setNaviViewLocation(location);
// return this;
// }
//
// @Override
// public IArcGisNaviOption setNaviImage(int naviImage) {
// mArcGisNaviView.setNaviImage(naviImage);
// return this;
// }
//
// @Override
// public IArcGisNaviOption setCustomPointNavi(PointModel startPoint, PointModel endPoint) {
// mArcGisNaviView.setCustomPointNavi(startPoint,endPoint);
// return this;
// }
@Override
public IArcGisNaviOption setShowNaviLayout(boolean isShow) {
mArcGisNaviView.setShowNaviLayout(isShow);
return this;
}
@Override
public IArcGisNaviOption setNaviViewLocation(Variable.ViewLocation location) {
mArcGisNaviView.setNaviViewLocation(location);
return this;
}
@Override
public IArcGisNaviOption setNaviImage(int naviImage) {
mArcGisNaviView.setNaviImage(naviImage);
return this;
}
@Override
public IArcGisNaviOption setCustomPointNavi(PointModel startPoint, PointModel endPoint) {
mArcGisNaviView.setCustomPointNavi(startPoint,endPoint);
return this;
}
}
package cn.com.founder.arcgislib.navi.option;
import cn.com.founder.arcgislib.common.Variable;
import cn.com.founder.arcgislib.model.PointModel;
/**
* Copyright: 方正国际软件有限公司
* Author:luo_shaopeng
......@@ -9,26 +12,26 @@ package cn.com.founder.arcgislib.navi.option;
* Description:导航操作
*/
public interface IArcGisNaviOption {
// /**
// * @param isShow boolean-是否显示导航布局
// * 默认隐藏
// */
// IArcGisNaviOption setShowNaviLayout(boolean isShow);
//
// /**
// * @param location {@link Variable.ViewLocation } NaviView显示位置
// */
// IArcGisNaviOption setNaviViewLocation(Variable.ViewLocation location);
//
// /**
// * @param naviImage int(资源ID)-导航图片
// */
// IArcGisNaviOption setNaviImage(int naviImage);
//
// /**
// * 自定义点导航
// * @param startPoint 起点
// * @param endPoint 终点
// */
// IArcGisNaviOption setCustomPointNavi(PointModel startPoint, PointModel endPoint);
/**
* @param isShow boolean-是否显示导航布局
* 默认隐藏
*/
IArcGisNaviOption setShowNaviLayout(boolean isShow);
/**
* @param location {@link Variable.ViewLocation } NaviView显示位置
*/
IArcGisNaviOption setNaviViewLocation(Variable.ViewLocation location);
/**
* @param naviImage int(资源ID)-导航图片
*/
IArcGisNaviOption setNaviImage(int naviImage);
/**
* 自定义点导航
* @param startPoint 起点
* @param endPoint 终点
*/
IArcGisNaviOption setCustomPointNavi(PointModel startPoint, PointModel endPoint);
}
......@@ -54,7 +54,7 @@ public class GpsUtil {
}
/**
* Description: WGS-84 to GCJ-02 <BR>
* Description: WGS-84 to d <BR>
*
* @param latitude 纬度
* @param longitude 经度
......
......@@ -6,6 +6,7 @@ import android.os.Build;
import android.widget.Toast;
import com.yanzhenjie.permission.AndPermission;
import com.yanzhenjie.permission.runtime.Permission;
import java.util.List;
......@@ -18,6 +19,10 @@ import java.util.List;
*/
public class PermissionUtil {
public static final String[] STORAGE_LOCATION_PERMISSION_GROUP = new String[]{Permission.READ_EXTERNAL_STORAGE, Permission.WRITE_EXTERNAL_STORAGE,Permission.ACCESS_COARSE_LOCATION, Permission.ACCESS_FINE_LOCATION};
public static final String[] LOCATION_PERMISSION_GROUP = new String[]{Permission.ACCESS_COARSE_LOCATION, Permission.ACCESS_FINE_LOCATION};
public static final String[] STORAGE_PERMISSION_GROUP = new String[]{Permission.READ_EXTERNAL_STORAGE, Permission.WRITE_EXTERNAL_STORAGE};
/**
* 请求权限
* @param requestPermissionCode 总是拒绝后提示用户去设置
......
......@@ -329,4 +329,42 @@ public class ToolUtil {
};
return hostnameVerifier;
}
/**
* 返回路程
*
* @param roadValue
* @return
*/
public static String getRoadLenght(float roadValue) {
String speedText = String.valueOf(roadValue / 1000);
if (speedText.contains(".")) {
BigDecimal b = new BigDecimal(roadValue / 1000);
float speed = b.setScale(1, BigDecimal.ROUND_HALF_UP).floatValue();
return String.valueOf(speed);
} else {
return speedText;
}
}
/**
* 返回剩余的时间
*
* @param timeValue
* @return
*/
public static String getRoadTime(int timeValue) {
int hour = timeValue / 3600;
int minuter = (timeValue % 3600) / 60;
if (hour == 0 && minuter == 0) {
return timeValue + "秒";
} else if (hour == 0 && minuter != 0) {
return minuter + "分钟";
} else if (hour != 0 && minuter == 0) {
return hour + "小时";
} else {
return hour + "小时" + minuter + "分钟";
}
}
}
......@@ -47,7 +47,6 @@ import com.esri.arcgisruntime.symbology.PictureMarkerSymbol;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.yanzhenjie.permission.AndPermission;
import com.yanzhenjie.permission.runtime.Permission;
import org.json.JSONException;
import org.json.JSONObject;
......@@ -81,8 +80,7 @@ import okhttp3.Response;
* Description:位置相关类
*/
public class ArcGisLocationView extends LinearLayout implements View.OnClickListener, ArcGisMapView.MyTouchLocationListener {
private final String[] LOCTION_PERMISSION_GROUP = new String[]{Permission.ACCESS_COARSE_LOCATION, Permission.ACCESS_FINE_LOCATION};
private final String[] STORAGE_PERMISSION_GROUP = new String[]{Permission.READ_EXTERNAL_STORAGE, Permission.WRITE_EXTERNAL_STORAGE};
private final int FLAG_START_LOCATION = 0;
private final int FLAG_CREATE_MARKER = 1;
......@@ -140,7 +138,7 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
/**
* 定位图片
*/
private ImageView mLocationIv;
protected ImageView mLocationIv;
/**
* 导入图片
*/
......@@ -248,10 +246,9 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
this.mLabelLocationNormalImage = R.drawable.icon_label_location_normal;
this.mLabelLocationSelectedImage = R.drawable.icon_label_location_selected;
this.mFollowMapGetCenterPoint = false;
arcGisMapView.setMyTouchLocationListener(this);
mCalloutStyleBuilder = new CalloutStyleBuilder(context);
mCalloutContentBuilder = new CalloutContentBuilder();
arcGisMapView.setMyTouchLocationListener(this);
mMapView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
......@@ -346,7 +343,7 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
* @param scale
*/
public void startLocation(double x, double y, double scale) {
if (AndPermission.hasPermissions(getContext(), LOCTION_PERMISSION_GROUP)) {
if (AndPermission.hasPermissions(getContext(), PermissionUtil.LOCATION_PERMISSION_GROUP)) {
ManualLocation(x, y, scale);
} else {
PermissionUtil.requestPermission(getContext(), 0, new PermissionUtil.PermissionQuestListener() {
......@@ -363,7 +360,7 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
public String onAlwaysDenied() {
return "定位权限获取失败";
}
}, LOCTION_PERMISSION_GROUP);
}, PermissionUtil.LOCATION_PERMISSION_GROUP);
}
}
......@@ -533,7 +530,7 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
*/
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void initLocationPermission(double scale) {
if (AndPermission.hasPermissions(getContext(), LOCTION_PERMISSION_GROUP)) {
if (AndPermission.hasPermissions(getContext(), PermissionUtil.LOCATION_PERMISSION_GROUP)) {
getLocation(scale);
} else {
PermissionUtil.requestPermission(getContext(), 0, new PermissionUtil.PermissionQuestListener() {
......@@ -550,7 +547,7 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
public String onAlwaysDenied() {
return "定位权限获取失败";
}
}, LOCTION_PERMISSION_GROUP);
}, PermissionUtil.LOCATION_PERMISSION_GROUP);
}
}
......@@ -559,7 +556,7 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
*/
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void initStoragePermission() {
if (AndPermission.hasPermissions(getContext(), STORAGE_PERMISSION_GROUP)) {
if (AndPermission.hasPermissions(getContext(), PermissionUtil.STORAGE_PERMISSION_GROUP)) {
getSDTxtFile();
} else {
PermissionUtil.requestPermission(getContext(), 0, new PermissionUtil.PermissionQuestListener() {
......@@ -576,7 +573,7 @@ public class ArcGisLocationView extends LinearLayout implements View.OnClickList
public String onAlwaysDenied() {
return "文件读取权限失败";
}
}, STORAGE_PERMISSION_GROUP);
}, PermissionUtil.STORAGE_PERMISSION_GROUP);
}
}
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/navi_layout"
style="@style/MatchParent"
android:orientation="vertical"
android:layout_marginTop="@dimen/dimen_block_20"
android:layout_marginLeft="@dimen/dimen_block_10"
android:layout_marginRight="@dimen/dimen_block_10"
android:layout_marginBottom="@dimen/dimen_block_20"
android:gravity="right|top"
>
<ImageView
android:id="@+id/navi_iv"
style="@style/WrapContent"
android:src="@drawable/icon_route_navi"
android:layout_alignParentRight="true"
android:paddingTop="@dimen/dimen_block_20"
android:paddingLeft="@dimen/dimen_block_10"
android:paddingRight="@dimen/dimen_block_10"
android:paddingBottom="@dimen/dimen_block_20"
/>
</LinearLayout>
\ No newline at end of file
</RelativeLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/bottom_navi_ll"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="bottom|center">
style="@style/WrapContent.WidthMatchParent"
android:padding="@dimen/dimen_block_10"
android:gravity="bottom|center"
android:background="@color/colorWhite"
>
<RelativeLayout style="@style/WrapContent.WidthMatchParent">
<ImageView
android:id="@+id/bottom_navi_close_iv"
style="@style/WrapContent"
android:src="@drawable/icon_gray_close"
android:layout_alignParentRight="true"
android:paddingTop="@dimen/dimen_block_10"
android:paddingBottom="@dimen/dimen_block_10"
android:paddingLeft="@dimen/dimen_block_10" />
<TextView
android:id="@+id/bottom_navi_title_tv"
style="@style/WrapContent.main_text_style"
android:text="@string/string_navi_navi_detail"
android:layout_centerInParent="true" />
</RelativeLayout>
<LinearLayout
style="@style/WrapContent.WidthMatchParent"
android:orientation="horizontal">
<TextView
android:id="@+id/navi_address_label"
style="@style/WrapContent"
android:text="路\u3000线:"
android:textColor="@color/color_666666"
android:textSize="@dimen/dimen_font_16sp"
android:layout_gravity="center_vertical"
/>
<TextView
android:id="@+id/navi_start_address"
style="@style/WrapContent"
android:text="-"
android:textColor="@color/color_333333"
android:textSize="@dimen/dimen_font_16sp"
android:singleLine="true"
android:maxLines="1"
android:lines="1"
android:ellipsize="end"
android:layout_gravity="center_vertical"
/>
<ImageView
android:id="@+id/navi_address_arrow"
style="@style/WrapContent"
android:layout_marginLeft="@dimen/dimen_block_2"
android:layout_marginRight="@dimen/dimen_block_2"
android:src="@drawable/icon_right_black_arrow"
android:layout_gravity="center_vertical"
/>
<TextView
android:id="@+id/navi_end_address"
style="@style/WrapContent"
android:text="-"
android:textColor="@color/color_333333"
android:textSize="@dimen/dimen_font_16sp"
android:singleLine="true"
android:maxLines="1"
android:lines="1"
android:ellipsize="end"
android:layout_gravity="center_vertical"
/>
</LinearLayout>
<LinearLayout
style="@style/WrapContent.WidthMatchParent"
android:layout_marginTop="@dimen/dimen_block_5"
android:orientation="horizontal">
<TextView
android:id="@+id/navi_distance_label"
style="@style/WrapContent"
android:text="路\u3000程:"
android:textColor="@color/color_666666"
android:textSize="@dimen/dimen_font_16sp"
android:layout_gravity="center_vertical"
/>
<TextView
android:id="@+id/navi_distance"
style="@style/WrapContent"
android:text="-"
android:textColor="@color/color_333333"
android:textSize="@dimen/dimen_font_16sp"
android:singleLine="true"
android:maxLines="1"
android:lines="1"
android:ellipsize="end"
android:layout_gravity="center_vertical"
/>
</LinearLayout>
<LinearLayout
style="@style/WrapContent.WidthMatchParent"
android:layout_marginTop="@dimen/dimen_block_5"
android:orientation="horizontal">
<TextView
android:id="@+id/navi_time_label"
style="@style/WrapContent"
android:text="时\u3000间:"
android:textColor="@color/color_666666"
android:textSize="@dimen/dimen_font_16sp"
android:layout_gravity="center_vertical"
/>
<TextView
android:id="@+id/navi_time"
style="@style/WrapContent"
android:text="-"
android:textColor="@color/color_333333"
android:textSize="@dimen/dimen_font_16sp"
android:singleLine="true"
android:maxLines="1"
android:lines="1"
android:ellipsize="end"
android:layout_gravity="center_vertical"
/>
</LinearLayout>
<TextView
android:id="@+id/navi_start_tv"
......
......@@ -5,7 +5,9 @@
<color name="colorWhite">#FFFFFF</color>
<color name="colorWhiteTras">#E6FFFFFF</color>
<color name="colorBlank">#000000</color>
<color name="colorTrans">#00000000</color>
<color name="colorBlankTras">#80000000</color>
<color name="colorHalfTrans">#B2000000</color>
<color name="color_333333">#333333</color>
<color name="color_666666">#666666</color>
<color name="color_999999">#999999</color>
......@@ -17,6 +19,7 @@
<color name="color_1A34BC">#1A34BC</color>
<color name="color_F05B48">#F05B48</color>
<color name="color_515151">#515151</color>
<color name="color_737373">#737373</color>
......
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="divide_line_color">#eaeaea</color><!-- 分割线色 -->
<color name="divide_view_color">#f0f0f0</color><!-- 分割块色 -->
<color name="white">#ffffff</color><!--主题颜色-->
<color name="purple_200">#FFBB86FC</color>
<color name="purple_500">#FF6200EE</color>
<color name="purple_700">#FF3700B3</color>
<color name="teal_200">#FF03DAC5</color>
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="divide_line_color">#eaeaea</color>
<color name="divide_view_color">#f0f0f0</color>
<color name="MultipleChoiceButtonChoiceText">#ffffff</color>
<color name="MultipleChoiceButtonUnchoiceText">#0079FE</color>
<color name="data_stores_gray">#80ffffff</color>
<color name="feedback_green">#26d589</color>
<color name="feedback_gray">#dfe1e3</color>
<color name="shallow_gray">#9e9e9e</color>
<color name="item_pressed">#E8E8E8</color>
<color name="black_06">#0f000000</color><!-- 黑色透明6%push色 -->
<color name="black">#000000</color>
<color name="red">#ffff0000</color>
<color name="blue">#008ef2</color>
<color name="gray">#B8B8B8</color> <!-- 灰色 -->
<color name="grey_text_color">#a3a3a3</color><!-- 灰色字 -->
<color name="gps_accuracy_big">#5bd636</color><!-- GPS强色 -->
<color name="gps_accuracy_small">#f93e3c</color><!-- GPS弱色 -->
<color name="sa_color">#008B87</color>
<color name="bar_pass_color">#9aabc4</color>
<color name="bar_mask_tmc_1">#45cc6a</color>
<color name="bar_mask_tmc_2">#ffae00</color>
<color name="bar_mask_tmc_3">#ff5453</color>
<color name="navingViewLinkUpInfoColor">#96989b</color>
<color name="mask_tmc_no">#ff0088cc</color><!--路径的填充-->
<color name="mask_tmc_1">#00be4c</color>
<color name="mask_tmc_2">#ffae00</color>
<color name="mask_tmc_3">#f45656</color>
<color name="mask_tmc_4">#ff101010</color>
<color name="mask_out_tmc_1">#237042</color><!--路径的边填充-->
<color name="mask_out_tmc_2">#c28000</color>
<color name="mask_out_tmc_3">#b23434</color>
<color name="mask_out_tmc_4">#741111</color>
</resources>
\ No newline at end of file
......@@ -25,7 +25,9 @@
<string name="string_navi_input_hint">请选择</string>
<string name="string_navi_finish">路线规划</string>
<string name="string_navi_navi">导航</string>
<string name="string_navi_navi_detail">详情</string>
<string name="string_navi_start_navi">开始导航</string>
<string name="string_navi_quit_navi">退出导航</string>
<!--搜索-->
<string name="string_search_hint">请输入关键字</string>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment