parent
0814bc4f89
commit
133941b13f
12 changed files with 760 additions and 2 deletions
Binary file not shown.
Binary file not shown.
@ -0,0 +1,445 @@ |
||||
package com.project.survey.ui.instrument.basestationtranslation; |
||||
|
||||
import android.content.DialogInterface; |
||||
import android.content.SharedPreferences; |
||||
import android.graphics.Color; |
||||
import android.view.Menu; |
||||
import android.view.MenuItem; |
||||
import android.view.View; |
||||
|
||||
import androidx.appcompat.app.AlertDialog; |
||||
import androidx.preference.PreferenceManager; |
||||
|
||||
import com.afollestad.materialdialogs.MaterialDialog; |
||||
import com.bingce.coordlib.model.Blh; |
||||
import com.bingce.coordlib.model.Coordinate; |
||||
import com.bingce.coordlib.model.CoordinateSystem; |
||||
import com.bingce.data.cache.AbstractCachedObserver; |
||||
import com.bingce.data.cache.CachedCurrentCoordinateSystem; |
||||
import com.bingce.data.database.ProjectDb; |
||||
import com.bingce.device.Device; |
||||
import com.bingce.device.enums.ConnectTypeEnum; |
||||
import com.bingce.log.BCLog; |
||||
import com.bingce.rtk.gnss.Gnss; |
||||
import com.bingce.rtk.gnss.setting.BaseCorrect; |
||||
import com.bingce.rtk.model.GnssPosition; |
||||
import com.bingce.rtk.util.CoordTransUtil; |
||||
|
||||
import com.bingce.surveyor.agentweb.HelpWebActivity; |
||||
|
||||
import com.bingce.utils.ThreadPoolUtil; |
||||
import com.bingce.utils.Util; |
||||
import com.project.survey.App; |
||||
import com.project.survey.R; |
||||
import com.project.survey.databinding.ActivityRtkCorrectBinding; |
||||
import com.project.survey.ui.base.BaseSurveyNewActivity; |
||||
import com.project.survey.ui.instrument.setupstation.ControlPointsNewActivity; |
||||
import com.project.survey.ui.instrument.setupstation.CoordinatePointsLibraryActivity; |
||||
import com.project.survey.ui.instrument.setupstation.StakingNewJobActivity; |
||||
import com.project.survey.util.CommonUtils; |
||||
import com.project.survey.util.DrawableUtils; |
||||
|
||||
import blankj.utilcode.util.StringUtils; |
||||
import blankj.utilcode.util.ToastUtils; |
||||
import blankj.utilcode.util.Utils; |
||||
|
||||
|
||||
public class RtkBaseCorrectActivity extends BaseSurveyNewActivity { |
||||
private int mTimes = -1; |
||||
double latSum = 0, lngSum = 0, altSum = 0; |
||||
private double originalLatitude, originalLongitude, originalAltitude; |
||||
protected final CachedCurrentCoordinateSystem cachedCoordinateSystem = new CachedCurrentCoordinateSystem(this); |
||||
|
||||
private ActivityRtkCorrectBinding binding; |
||||
|
||||
@Override |
||||
public View getContentView() { |
||||
binding = ActivityRtkCorrectBinding.inflate(getLayoutInflater()); |
||||
return binding.getRoot(); |
||||
} |
||||
|
||||
@Override |
||||
protected void initView() { |
||||
// setTitle(R.string.rtk_base_correct);
|
||||
cachedCoordinateSystem.observe(new AbstractCachedObserver<CoordinateSystem>() { |
||||
@Override |
||||
public void onChanged(boolean isFirstTimeDataChanged, CoordinateSystem coordinateSystem) { |
||||
if (isFirstTimeDataChanged) { |
||||
binding.activityRtkCorrectTvCorrectCurrent.setText(String.format("%s:\n%s:%s\n%s:%s\n%s:%s", |
||||
getString(R.string.current), getString(R.string.rtk_correct_x), |
||||
Util.formatDouble2StringDotAuto(coordinateSystem.correctN), |
||||
getString(R.string.rtk_correct_y), |
||||
Util.formatDouble2StringDotAuto(coordinateSystem.correctE), |
||||
getString(R.string.rtk_correct_z), |
||||
Util.formatDouble2StringDotAuto(coordinateSystem.correctH))); |
||||
} |
||||
} |
||||
}); |
||||
|
||||
binding.activityRtkCorrectBtnSmoothCollectTenTimes.setOnClickListener(new View.OnClickListener() { |
||||
@Override |
||||
public void onClick(View view) { |
||||
binding.activityRtkCorrectEt0.requestFocus();//作用:输入框不聚焦,防止实测坐标后页面自动滑动到顶部,同样避免RTK继续后输入框没有失效焦点,导致再输入内容输入法自动隐藏的问题
|
||||
CommonUtils.hideSoftInput(); |
||||
|
||||
Device.getInstance().isRtkRunning = true; |
||||
mTimes = 0; |
||||
latSum = 0; |
||||
lngSum = 0; |
||||
altSum = 0; |
||||
originalLatitude = 0; |
||||
originalLongitude = 0; |
||||
originalAltitude = 0; |
||||
binding.activityRtkCorrectMetOriginalLatitude.setText(""); |
||||
binding.activityRtkCorrectMetOriginalLongitude.setText(""); |
||||
binding.activityRtkCorrectMetOriginalAltitude.setText(""); |
||||
binding.activityRtkCorrectProgressbar.setProgress(0); |
||||
} |
||||
}); |
||||
binding.activityRtkCorrectBtnCorrect.setOnClickListener(new View.OnClickListener() { |
||||
@Override |
||||
public void onClick(View v) { |
||||
binding.activityRtkCorrectEt0.requestFocus();//作用:输入框不聚焦,防止实测坐标后页面自动滑动到顶部
|
||||
CommonUtils.hideSoftInput(); |
||||
if (checkCalEnable()) { |
||||
double control_x = Double.parseDouble(binding.activityRtkCorrectMetControlPointX.getText().toString()); |
||||
double control_y = Double.parseDouble(binding.activityRtkCorrectMetControlPointY.getText().toString()); |
||||
double control_z = Double.parseDouble(binding.activityRtkCorrectMetControlPointZ.getText().toString()); |
||||
Coordinate coordinate = CoordTransUtil.blh2Xyz(originalLatitude, originalLongitude, originalAltitude, false, cachedCoordinateSystem.coordinateSystem()); |
||||
if (coordinate == null) { |
||||
ToastUtils.showShort(R.string.input_illegal); |
||||
return; |
||||
} |
||||
double correctN = control_x - coordinate.getX(); |
||||
double correctE = control_y - coordinate.getY(); |
||||
double correctH = control_z - coordinate.getZ(); |
||||
|
||||
new AlertDialog.Builder(RtkBaseCorrectActivity.this).setTitle(R.string.rtk_correct_result) |
||||
.setMessage(getString(R.string.rtk_correct_x) + ":" + Util.formatDouble2StringDotAuto(correctN) + "\n" |
||||
+ getString(R.string.rtk_correct_y) + ":" + Util.formatDouble2StringDotAuto(correctE) + "\n" |
||||
+ getString(R.string.rtk_correct_z) + ":" + Util.formatDouble2StringDotAuto(correctH) + "\n") |
||||
.setPositiveButton(R.string.global_apply, new DialogInterface.OnClickListener() { |
||||
@Override |
||||
public void onClick(DialogInterface dialogInterface, int i) { |
||||
binding.activityRtkCorrectBtnCorrect.setEnabled(false); |
||||
cachedCoordinateSystem.coordinateSystem().correctN = correctN; |
||||
cachedCoordinateSystem.coordinateSystem().correctE = correctE; |
||||
cachedCoordinateSystem.coordinateSystem().correctH = correctH; |
||||
|
||||
BCLog.BugCoordinateSystem.log(cachedCoordinateSystem.coordinateSystem(), () -> "坐标系校正后"); |
||||
|
||||
Coordinate correctPoint = new Coordinate(binding.activityRtkCorrectMetControlPointName.getText().toString(), control_x, control_y, control_z); |
||||
ThreadPoolUtil.execute(() -> { |
||||
CachedCurrentCoordinateSystem.saveCurrentCoordinateSystem(cachedCoordinateSystem.coordinateSystem()); |
||||
BCLog.BugCoordinateSystem.log(cachedCoordinateSystem.coordinateSystem(), () -> "执行坐标系存储"); |
||||
Gnss.getInstance().getSetting().setBaseCorrect(new BaseCorrect(correctPoint)); |
||||
Gnss.getInstance().save(); |
||||
runOnUiThread(new Runnable() { |
||||
@Override |
||||
public void run() { |
||||
binding.activityRtkCorrectTvCorrectCurrent.setText(String.format("%s:\n%s:%s\n%s:%s\n%s:%s", |
||||
getString(R.string.current), getString(R.string.rtk_correct_x), |
||||
Util.formatDouble2StringDotAuto(cachedCoordinateSystem.coordinateSystem().correctN), |
||||
getString(R.string.rtk_correct_y), |
||||
Util.formatDouble2StringDotAuto(cachedCoordinateSystem.coordinateSystem().correctE), |
||||
getString(R.string.rtk_correct_z), |
||||
Util.formatDouble2StringDotAuto(cachedCoordinateSystem.coordinateSystem().correctH))); |
||||
ToastUtils.showShort(R.string.apply_success); |
||||
} |
||||
}); |
||||
}); |
||||
} |
||||
}).setNegativeButton(R.string.close, null).show(); |
||||
} |
||||
} |
||||
}); |
||||
binding.activityRtkCorrectBtnCorrect.setEnabled(false); |
||||
DrawableUtils.tintModifyColorVector(binding.activityRtkCorrectBtnOpen1, R.drawable.icon_vector_folder); |
||||
binding.activityRtkCorrectBtnOpen1.setOnClickListener(v -> { |
||||
binding.activityRtkCorrectEt0.requestFocus();//作用:输入框不聚焦,防止实测坐标后页面自动滑动到顶部
|
||||
CommonUtils.hideSoftInput(); |
||||
new MaterialDialog.Builder(RtkBaseCorrectActivity.this) |
||||
.title(R.string.data_source) |
||||
.items(new String[]{getString(R.string.road_control_point), getString(R.string.global_control_point), getString(R.string.point_survey_point_library), getString(R.string.staking_point_library)}) |
||||
.itemsCallback((dialog, itemView, which, text) -> { |
||||
switch (which) { |
||||
case 0: |
||||
ControlPointsNewActivity.pickPoint(this, false, (name, code, x, y, z, remarks) -> { |
||||
onPicked(name, x, y, z); |
||||
}); |
||||
break; |
||||
case 1: |
||||
ControlPointsNewActivity.pickPoint(this, true, (name, code, x, y, z, remarks) -> { |
||||
onPicked(name, x, y, z); |
||||
}); |
||||
break; |
||||
case 2: |
||||
CoordinatePointsLibraryActivity.pickPoint(RtkBaseCorrectActivity.this, (name, code, x, y, z, b, l, h) -> { |
||||
onPicked(name, x, y, z); |
||||
}); |
||||
break; |
||||
case 3: |
||||
StakingNewJobActivity.pickPoint(RtkBaseCorrectActivity.this, (name, x, y, z) -> { |
||||
onPicked(name, x, y, z); |
||||
}); |
||||
break; |
||||
} |
||||
}).show(); |
||||
}); |
||||
|
||||
initMaterialEditTextColor(); |
||||
|
||||
if (Device.getInstance().connectType == ConnectTypeEnum.CONNECT_TYPE_PHONE_LOCATION) { |
||||
new AlertDialog.Builder(this) |
||||
.setTitle(R.string.hint) |
||||
.setMessage("使用手机自带GPS时,请在RTK坐标系统里,坐标转换方法选择:手机gps校正,再点击校正;如果您想使用RTK放样,请重启软件,选择对应的RTK型号,再进入此界面校正") |
||||
.setPositiveButton(R.string.i_know, null) |
||||
.show(); |
||||
} else { |
||||
if (Gnss.getInstance().getSetting().getBaseCorrect().getCorrectPoint() != null |
||||
&& !StringUtils.isEmpty(Gnss.getInstance().getSetting().getBaseCorrect().getCorrectPoint().getName())) { |
||||
try { |
||||
new AlertDialog.Builder(this) |
||||
.setTitle(R.string.hint) |
||||
.setMessage(getString(R.string.ask_use_last_rtk_coordinate) + Gnss.getInstance().getSetting().getBaseCorrect().getCorrectPoint().getName()) |
||||
.setPositiveButton(R.string.use, new DialogInterface.OnClickListener() { |
||||
@Override |
||||
public void onClick(DialogInterface dialog, int which) { |
||||
binding.activityRtkCorrectMetControlPointName.setText(Gnss.getInstance().getSetting().getBaseCorrect().getCorrectPoint().getName()); |
||||
binding.activityRtkCorrectMetControlPointX.setText(Util.formatDouble2StringDotAuto(Gnss.getInstance().getSetting().getBaseCorrect().getCorrectPoint().getX())); |
||||
binding.activityRtkCorrectMetControlPointY.setText(Util.formatDouble2StringDotAuto(Gnss.getInstance().getSetting().getBaseCorrect().getCorrectPoint().getY())); |
||||
binding.activityRtkCorrectMetControlPointZ.setText(Util.formatDouble2StringDotAuto(Gnss.getInstance().getSetting().getBaseCorrect().getCorrectPoint().getZ())); |
||||
} |
||||
}) |
||||
.setNegativeButton(R.string.cancel, null) |
||||
.show(); |
||||
} catch (NumberFormatException ignored) { |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
protected void initData() { |
||||
|
||||
} |
||||
|
||||
private boolean checkCalEnable() { |
||||
//已知点检查
|
||||
if ("".equals(binding.activityRtkCorrectMetControlPointX.getText().toString().trim()) |
||||
&& "".equals(binding.activityRtkCorrectMetControlPointY.getText().toString().trim()) |
||||
&& "".equals(binding.activityRtkCorrectMetControlPointZ.getText().toString().trim())) { |
||||
binding.activityRtkCorrectMetControlPointX.setError(getString(R.string.known_point_cannot_be_empty)); |
||||
binding.activityRtkCorrectMetControlPointY.setError(getString(R.string.known_point_cannot_be_empty)); |
||||
binding.activityRtkCorrectMetControlPointZ.setError(getString(R.string.known_point_cannot_be_empty)); |
||||
return false; |
||||
} else if ("-".equals(binding.activityRtkCorrectMetControlPointX.getText().toString().trim()) |
||||
|| "-.".equals(binding.activityRtkCorrectMetControlPointX.getText().toString().trim()) |
||||
|| ".".equals(binding.activityRtkCorrectMetControlPointX.getText().toString().trim()) |
||||
|| "+.".equals(binding.activityRtkCorrectMetControlPointX.getText().toString().trim()) |
||||
|| "+".equals(binding.activityRtkCorrectMetControlPointX.getText().toString().trim())) { |
||||
binding.activityRtkCorrectMetControlPointX.setError(getString(R.string.input_illegal)); |
||||
return false; |
||||
} else if ("-".equals(binding.activityRtkCorrectMetControlPointY.getText().toString().trim()) |
||||
|| "-.".equals(binding.activityRtkCorrectMetControlPointY.getText().toString().trim()) |
||||
|| ".".equals(binding.activityRtkCorrectMetControlPointY.getText().toString().trim()) |
||||
|| "+.".equals(binding.activityRtkCorrectMetControlPointY.getText().toString().trim()) |
||||
|| "+".equals(binding.activityRtkCorrectMetControlPointY.getText().toString().trim())) { |
||||
binding.activityRtkCorrectMetControlPointY.setError(getString(R.string.input_illegal)); |
||||
return false; |
||||
} else if ("-".equals(binding.activityRtkCorrectMetControlPointZ.getText().toString().trim()) |
||||
|| "-.".equals(binding.activityRtkCorrectMetControlPointZ.getText().toString().trim()) |
||||
|| ".".equals(binding.activityRtkCorrectMetControlPointZ.getText().toString().trim()) |
||||
|| "+.".equals(binding.activityRtkCorrectMetControlPointZ.getText().toString().trim()) |
||||
|| "+".equals(binding.activityRtkCorrectMetControlPointZ.getText().toString().trim())) { |
||||
binding.activityRtkCorrectMetControlPointZ.setError(getString(R.string.input_illegal)); |
||||
return false; |
||||
} |
||||
if ("".equals(binding.activityRtkCorrectMetControlPointX.getText().toString().trim())) { |
||||
binding.activityRtkCorrectMetControlPointX.setText("0"); |
||||
} |
||||
if ("".equals(binding.activityRtkCorrectMetControlPointY.getText().toString().trim())) { |
||||
binding.activityRtkCorrectMetControlPointY.setText("0"); |
||||
} |
||||
if ("".equals(binding.activityRtkCorrectMetControlPointZ.getText().toString().trim())) { |
||||
binding.activityRtkCorrectMetControlPointZ.setText("0"); |
||||
} |
||||
return true; |
||||
} |
||||
|
||||
private void onPicked(String name, double x, double y, double z) { |
||||
String lastCorrectStr = null; |
||||
// int jobIndex = data.getIntExtra("returnJobIndex", -1);
|
||||
// int coordIndex = data.getIntExtra("returnCoordIndex", -1);
|
||||
// IStakingJobDataSource stakingJobDataSource = VersionController.instance.getStakingJobDataSource();
|
||||
// if (jobIndex >= 0 && jobIndex < stakingJobDataSource.size()) {
|
||||
// if (coordIndex >= 0 && coordIndex < stakingJobDataSource.get(jobIndex).getPointList().size()) {
|
||||
// Point point = stakingJobDataSource.get(jobIndex).getPointList().get(coordIndex);
|
||||
// binding.activityRtkCorrectMetControlPointName.setText(point.getName());
|
||||
// binding.activityRtkCorrectMetControlPointX.setText(Util.formatDouble2String(point.getX()));
|
||||
// binding.activityRtkCorrectMetControlPointY.setText(Util.formatDouble2String(point.getY()));
|
||||
// binding.activityRtkCorrectMetControlPointZ.setText(Util.formatDouble2String(point.getZ()));
|
||||
// lastCorrectStr = point.getName() + "," + point.getX() + "," + point.getY() + "," + point.getZ();
|
||||
// ToastUtils.showShort(R.string.open_point_successful);
|
||||
// }
|
||||
// } else {
|
||||
// String name = data.getStringExtra("name");
|
||||
// double x = data.getDoubleExtra("x", 0);
|
||||
// double y = data.getDoubleExtra("y", 0);
|
||||
// double z = data.getDoubleExtra("z", 0);
|
||||
binding.activityRtkCorrectMetControlPointName.setText(name); |
||||
binding.activityRtkCorrectMetControlPointX.setText(Util.formatDouble2StringDotAuto(x)); |
||||
binding.activityRtkCorrectMetControlPointY.setText(Util.formatDouble2StringDotAuto(y)); |
||||
binding.activityRtkCorrectMetControlPointZ.setText(Util.formatDouble2StringDotAuto(z)); |
||||
lastCorrectStr = name + "," + x + "," + y + "," + z; |
||||
ToastUtils.showShort(R.string.open_point_successful); |
||||
// }
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); |
||||
SharedPreferences.Editor editor = prefs.edit(); |
||||
editor.putString("lastRtkCorrectPoint", lastCorrectStr); |
||||
editor.apply(); |
||||
ToastUtils.showShort(R.string.open_point_successful); |
||||
} |
||||
|
||||
@Override |
||||
public boolean onOptionsItemSelected(MenuItem item) { |
||||
switch (item.getItemId()) { |
||||
case R.id.menu_activity_rtk_correct_reset: |
||||
cachedCoordinateSystem.coordinateSystem().correctN = 0; |
||||
cachedCoordinateSystem.coordinateSystem().correctE = 0; |
||||
cachedCoordinateSystem.coordinateSystem().correctH = 0; |
||||
binding.activityRtkCorrectTvCorrectCurrent.setText(String.format("%s:\n%s:%s\n%s:%s\n%s:%s", |
||||
getString(R.string.current), getString(R.string.rtk_correct_x), |
||||
Util.formatDouble2StringDotAuto(cachedCoordinateSystem.coordinateSystem().correctN), |
||||
getString(R.string.rtk_correct_y), |
||||
Util.formatDouble2StringDotAuto(cachedCoordinateSystem.coordinateSystem().correctE), |
||||
getString(R.string.rtk_correct_z), |
||||
Util.formatDouble2StringDotAuto(cachedCoordinateSystem.coordinateSystem().correctH))); |
||||
ThreadPoolUtil.execute(() -> { |
||||
ProjectDb.getInstance().updateCurrentCoordinator(cachedCoordinateSystem.coordinateSystem()); |
||||
ToastUtils.showShort(R.string.rtk_correct_reset); |
||||
}); |
||||
break; |
||||
case R.id.menu_help: |
||||
HelpWebActivity.navigation2RtkBaseCorrectHelp(this); |
||||
break; |
||||
} |
||||
return super.onOptionsItemSelected(item); |
||||
} |
||||
|
||||
@Override |
||||
public boolean onCreateOptionsMenu(Menu menu) { |
||||
super.onCreateOptionsMenu(menu); |
||||
getMenuInflater().inflate(R.menu.menu_activity_rtk_correct, menu); |
||||
return true; |
||||
} |
||||
|
||||
private void initMaterialEditTextColor() { |
||||
if (((App) Utils.getApp()).isThemeDark) { |
||||
binding.activityRtkCorrectMetOriginalLatitude.setMetTextColor(Color.WHITE); |
||||
binding.activityRtkCorrectMetOriginalLongitude.setMetTextColor(Color.WHITE); |
||||
binding.activityRtkCorrectMetOriginalAltitude.setMetTextColor(Color.WHITE); |
||||
binding.activityRtkCorrectMetControlPointX.setMetTextColor(Color.WHITE); |
||||
binding.activityRtkCorrectMetControlPointY.setMetTextColor(Color.WHITE); |
||||
binding.activityRtkCorrectMetControlPointZ.setMetTextColor(Color.WHITE); |
||||
|
||||
binding.activityRtkCorrectMetOriginalLatitude.setPrimaryColor(Color.LTGRAY); |
||||
binding.activityRtkCorrectMetOriginalLongitude.setPrimaryColor(Color.LTGRAY); |
||||
binding.activityRtkCorrectMetOriginalAltitude.setPrimaryColor(Color.LTGRAY); |
||||
binding.activityRtkCorrectMetControlPointX.setPrimaryColor(Color.LTGRAY); |
||||
binding.activityRtkCorrectMetControlPointY.setPrimaryColor(Color.LTGRAY); |
||||
binding.activityRtkCorrectMetControlPointZ.setPrimaryColor(Color.LTGRAY); |
||||
|
||||
binding.activityRtkCorrectMetOriginalLatitude.setFocusFraction(1.0f); |
||||
binding.activityRtkCorrectMetOriginalLongitude.setFocusFraction(1.0f); |
||||
binding.activityRtkCorrectMetOriginalAltitude.setFocusFraction(1.0f); |
||||
binding.activityRtkCorrectMetControlPointX.setFocusFraction(1.0f); |
||||
binding.activityRtkCorrectMetControlPointY.setFocusFraction(1.0f); |
||||
binding.activityRtkCorrectMetControlPointZ.setFocusFraction(1.0f); |
||||
|
||||
binding.activityRtkCorrectMetOriginalLatitude.setMetHintTextColor(Color.GRAY); |
||||
binding.activityRtkCorrectMetOriginalLongitude.setMetHintTextColor(Color.GRAY); |
||||
binding.activityRtkCorrectMetOriginalAltitude.setMetHintTextColor(Color.GRAY); |
||||
binding.activityRtkCorrectMetControlPointX.setMetHintTextColor(Color.GRAY); |
||||
binding.activityRtkCorrectMetControlPointY.setMetHintTextColor(Color.GRAY); |
||||
binding.activityRtkCorrectMetControlPointZ.setMetHintTextColor(Color.GRAY); |
||||
|
||||
binding.activityRtkCorrectMetOriginalLatitude.setUnderlineColor(Color.GRAY); |
||||
binding.activityRtkCorrectMetOriginalLongitude.setUnderlineColor(Color.GRAY); |
||||
binding.activityRtkCorrectMetOriginalAltitude.setUnderlineColor(Color.GRAY); |
||||
binding.activityRtkCorrectMetControlPointX.setUnderlineColor(Color.GRAY); |
||||
binding.activityRtkCorrectMetControlPointY.setUnderlineColor(Color.GRAY); |
||||
binding.activityRtkCorrectMetControlPointZ.setUnderlineColor(Color.GRAY); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public void onRtkPositionReceived(double antennaHeight, Blh blh, Blh originalBlh, Coordinate coordinate, double hdop, double vdop, double pdop) { |
||||
super.onRtkPositionReceived(antennaHeight, blh, originalBlh, coordinate, hdop, vdop, pdop); |
||||
if (mTimes >= 0 && mTimes < 10) { |
||||
latSum += originalBlh.getLatitude(); |
||||
lngSum += originalBlh.getLongitude(); |
||||
altSum += originalBlh.getAltitude(); |
||||
mTimes++; |
||||
binding.activityRtkCorrectProgressbar.setProgress(mTimes); |
||||
if (mTimes == 10) { |
||||
originalLatitude = latSum / mTimes; |
||||
originalLongitude = lngSum / mTimes; |
||||
originalAltitude = altSum / mTimes; |
||||
binding.activityRtkCorrectMetOriginalLatitude.setText(Util.radianToDmsDoubleString(Math.toRadians(originalLatitude), 6, false)); |
||||
binding.activityRtkCorrectMetOriginalLongitude.setText(Util.radianToDmsDoubleString(Math.toRadians(originalLongitude), 6, false)); |
||||
binding.activityRtkCorrectMetOriginalAltitude.setText(Util.formatDouble2StringDotAuto(originalAltitude)); |
||||
binding.activityRtkCorrectBtnCorrect.setEnabled(true); |
||||
} |
||||
} |
||||
if (Device.getInstance().isRtkRunning) { |
||||
if (Gnss.getInstance().getDevice().isTiltOpen()) { |
||||
if (GnssPosition.getInstance().isTiltEnable()) { |
||||
if (((App) Utils.getApp()).isThemeDark) { |
||||
binding.activityRtkCorrectMetOriginalLatitude.setMetTextColor(Color.WHITE); |
||||
binding.activityRtkCorrectMetOriginalLongitude.setMetTextColor(Color.WHITE); |
||||
binding.activityRtkCorrectMetOriginalAltitude.setMetTextColor(Color.WHITE); |
||||
} else { |
||||
binding.activityRtkCorrectMetOriginalLatitude.setMetTextColor(Color.BLACK); |
||||
binding.activityRtkCorrectMetOriginalLongitude.setMetTextColor(Color.BLACK); |
||||
binding.activityRtkCorrectMetOriginalAltitude.setMetTextColor(Color.BLACK); |
||||
} |
||||
} else { |
||||
binding.activityRtkCorrectMetOriginalLatitude.setMetTextColor(Color.RED); |
||||
binding.activityRtkCorrectMetOriginalLongitude.setMetTextColor(Color.RED); |
||||
binding.activityRtkCorrectMetOriginalAltitude.setMetTextColor(Color.RED); |
||||
} |
||||
} else { |
||||
switch (GnssPosition.getInstance().getPosType()) { |
||||
case GnssPosition.POS_TYPE_FIXED: |
||||
if (((App) Utils.getApp()).isThemeDark) { |
||||
binding.activityRtkCorrectMetOriginalLatitude.setMetTextColor(Color.WHITE); |
||||
binding.activityRtkCorrectMetOriginalLongitude.setMetTextColor(Color.WHITE); |
||||
binding.activityRtkCorrectMetOriginalAltitude.setMetTextColor(Color.WHITE); |
||||
} else { |
||||
binding.activityRtkCorrectMetOriginalLatitude.setMetTextColor(Color.BLACK); |
||||
binding.activityRtkCorrectMetOriginalLongitude.setMetTextColor(Color.BLACK); |
||||
binding.activityRtkCorrectMetOriginalAltitude.setMetTextColor(Color.BLACK); |
||||
} |
||||
break; |
||||
case GnssPosition.POS_TYPE_FLOAT: |
||||
binding.activityRtkCorrectMetOriginalLatitude.setMetTextColor(getResources().getColor(R.color.md_deep_orange_400)); |
||||
binding.activityRtkCorrectMetOriginalLongitude.setMetTextColor(getResources().getColor(R.color.md_deep_orange_400)); |
||||
binding.activityRtkCorrectMetOriginalAltitude.setMetTextColor(getResources().getColor(R.color.md_deep_orange_400)); |
||||
break; |
||||
default: |
||||
binding.activityRtkCorrectMetOriginalLatitude.setMetTextColor(Color.RED); |
||||
binding.activityRtkCorrectMetOriginalLongitude.setMetTextColor(Color.RED); |
||||
binding.activityRtkCorrectMetOriginalAltitude.setMetTextColor(Color.RED); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
@Override |
||||
public void onPause() { |
||||
super.onPause(); |
||||
binding.activityRtkCorrectEt0.requestFocus();//作用:输入框不聚焦,防止实测坐标后页面自动滑动到顶部
|
||||
} |
||||
} |
@ -0,0 +1,5 @@ |
||||
<vector android:alpha="0.9" android:autoMirrored="true" |
||||
android:height="200dp" android:viewportHeight="200" |
||||
android:viewportWidth="200" android:width="200dp" xmlns:android="http://schemas.android.com/apk/res/android"> |
||||
<path android:fillColor="#000000" android:pathData="M99.69,47.5C101.25,52.81 106.25,56.25 111.56,56.25H162.19C162.19,49.38 156.56,43.75 149.69,43.75H98.44L99.69,47.5ZM94.69,31.25H149.69C163.44,31.25 174.69,42.5 174.69,56.25V61.25C180.63,65.94 184.69,73.13 184.69,81.25V156.25C184.69,170 173.44,181.25 159.69,181.25H40.63C26.88,181.25 15.63,170 15.63,156.25V43.75C15.63,30 26.88,18.75 40.63,18.75H72.81C81.88,18.75 90.31,23.75 94.69,31.25ZM72.81,31.25H40.63C33.75,31.25 28.13,36.88 28.13,43.75V156.25C28.13,163.13 33.75,168.75 40.63,168.75H159.38C166.25,168.75 171.88,163.13 171.88,156.25V81.25C171.88,74.38 166.25,68.75 159.38,68.75H112.19C101.25,68.75 91.56,61.56 88.44,51.25L84.69,40C83.13,34.69 78.44,31.25 72.81,31.25ZM53.13,137.5H103.13C106.56,137.5 109.38,140.31 109.38,143.75C109.38,147.19 106.56,150 103.13,150H53.13C49.69,150 46.88,147.19 46.88,143.75C46.88,140.31 49.69,137.5 53.13,137.5Z"/> |
||||
</vector> |
@ -0,0 +1,178 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||
xmlns:app="http://schemas.android.com/apk/res-auto" |
||||
xmlns:custom="http://schemas.android.com/apk/res-auto" |
||||
xmlns:tools="http://schemas.android.com/tools" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="match_parent" |
||||
android:orientation="vertical"> |
||||
|
||||
<EditText |
||||
android:id="@+id/activity_rtk_correct_et_0" |
||||
android:layout_width="0px" |
||||
android:layout_height="0px" /> |
||||
|
||||
<ScrollView |
||||
android:layout_width="match_parent" |
||||
android:layout_height="0dp" |
||||
android:layout_weight="1"> |
||||
|
||||
<LinearLayout |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:orientation="vertical" |
||||
android:paddingStart="16dp" |
||||
android:paddingEnd="16dp"> |
||||
|
||||
<LinearLayout |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:orientation="vertical"> |
||||
|
||||
<com.daimajia.numberprogressbar.NumberProgressBar |
||||
android:id="@+id/activity_rtk_correct_progressbar" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:layout_marginTop="16dp" |
||||
custom:progress_current="0" |
||||
custom:progress_max="10" |
||||
custom:progress_reached_bar_height="4dp" |
||||
custom:progress_reached_color="?colorPrimary" |
||||
custom:progress_text_size="10sp" |
||||
custom:progress_text_visibility="visible" |
||||
custom:progress_unreached_bar_height="3dp" /> |
||||
|
||||
<com.rengwuxian.materialedittext.MaterialEditText |
||||
android:id="@+id/activity_rtk_correct_met_original_latitude" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:editable="false" |
||||
android:hint="@string/latitude" |
||||
android:textSize="@dimen/myTextSize" |
||||
app:met_floatingLabel="normal" |
||||
app:met_floatingLabelText="@string/latitude" /> |
||||
|
||||
<com.rengwuxian.materialedittext.MaterialEditText |
||||
android:id="@+id/activity_rtk_correct_met_original_longitude" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:editable="false" |
||||
android:hint="@string/longitude" |
||||
android:textSize="@dimen/myTextSize" |
||||
app:met_floatingLabel="normal" |
||||
app:met_floatingLabelText="@string/longitude" /> |
||||
|
||||
<com.rengwuxian.materialedittext.MaterialEditText |
||||
android:id="@+id/activity_rtk_correct_met_original_altitude" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:editable="false" |
||||
android:hint="@string/altitude" |
||||
android:textSize="@dimen/myTextSize" |
||||
app:met_floatingLabel="normal" |
||||
app:met_floatingLabelText="@string/altitude" /> |
||||
|
||||
</LinearLayout> |
||||
|
||||
<TextView |
||||
android:id="@+id/activity_rtk_correct_met_control_point_name" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:layout_marginTop="16dp" |
||||
android:hint="@string/point_name" /> |
||||
|
||||
<LinearLayout |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:orientation="vertical"> |
||||
|
||||
<LinearLayout |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content"> |
||||
|
||||
<com.rengwuxian.materialedittext.MaterialEditText |
||||
android:id="@+id/activity_rtk_correct_met_control_point_x" |
||||
android:layout_width="0dp" |
||||
android:layout_height="wrap_content" |
||||
android:layout_weight="1" |
||||
android:hint="@string/control_x" |
||||
android:inputType="numberDecimal|numberSigned" |
||||
android:textSize="@dimen/myTextSize" |
||||
app:met_clearButton="true" |
||||
app:met_floatingLabel="normal" |
||||
app:met_floatingLabelText="@string/control_x" /> |
||||
|
||||
<ImageView |
||||
android:id="@+id/activity_rtk_correct_btn_open1" |
||||
android:layout_width="30dp" |
||||
android:layout_height="30dp" |
||||
android:layout_gravity="bottom" |
||||
android:layout_marginBottom="15dp" |
||||
android:layout_marginLeft="10dp" |
||||
android:src="@drawable/icon_vector_folder" /> |
||||
|
||||
</LinearLayout> |
||||
|
||||
<com.rengwuxian.materialedittext.MaterialEditText |
||||
android:id="@+id/activity_rtk_correct_met_control_point_y" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:hint="@string/control_y" |
||||
android:inputType="numberDecimal|numberSigned" |
||||
android:textSize="@dimen/myTextSize" |
||||
app:met_clearButton="true" |
||||
app:met_floatingLabel="normal" |
||||
app:met_floatingLabelText="@string/control_y" /> |
||||
|
||||
<com.rengwuxian.materialedittext.MaterialEditText |
||||
android:id="@+id/activity_rtk_correct_met_control_point_z" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:hint="@string/control_z" |
||||
android:inputType="numberDecimal|numberSigned" |
||||
android:textSize="@dimen/myTextSize" |
||||
app:met_clearButton="true" |
||||
app:met_floatingLabel="normal" |
||||
app:met_floatingLabelText="@string/control_z" /> |
||||
|
||||
</LinearLayout> |
||||
|
||||
<TextView |
||||
android:id="@+id/activity_rtk_correct_tv_correct_current" |
||||
android:layout_width="wrap_content" |
||||
android:layout_height="wrap_content" |
||||
android:layout_marginTop="10dp" |
||||
tools:text="当前点: 0/10" /> |
||||
|
||||
<TextView |
||||
android:layout_width="wrap_content" |
||||
android:layout_height="wrap_content" |
||||
android:layout_marginTop="10dp" |
||||
android:text="@string/rtk_base_correct_tips" |
||||
android:textSize="11sp" /> |
||||
</LinearLayout> |
||||
</ScrollView> |
||||
|
||||
<LinearLayout |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
android:orientation="horizontal"> |
||||
|
||||
<Button |
||||
android:id="@+id/activity_rtk_correct_btn_smooth_collect_ten_times" |
||||
style="@style/Widget.AppCompat.Button.Colored" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="@dimen/bt_height" |
||||
android:layout_weight="1" |
||||
android:text="@string/smooth_collect_ten_times" /> |
||||
|
||||
<Button |
||||
android:id="@+id/activity_rtk_correct_btn_correct" |
||||
style="@style/Widget.AppCompat.Button.Colored" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="@dimen/bt_height" |
||||
android:layout_weight="1" |
||||
android:text="@string/correcting" /> |
||||
</LinearLayout> |
||||
|
||||
</LinearLayout> |
@ -0,0 +1,14 @@ |
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android" |
||||
xmlns:app="http://schemas.android.com/apk/res-auto"> |
||||
|
||||
<item |
||||
android:id="@+id/menu_activity_rtk_correct_reset" |
||||
android:title="@string/reset" |
||||
app:showAsAction="ifRoom" /> |
||||
|
||||
<item |
||||
android:id="@+id/menu_help" |
||||
android:title="@string/help" |
||||
app:showAsAction="ifRoom" /> |
||||
|
||||
</menu> |
Loading…
Reference in new issue