修复定位数据锁定错误问题
This commit is contained in:
parent
5e66647495
commit
395674d302
@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Fri Mar 21 09:01:41 GMT 2025
|
#Fri Mar 21 13:06:16 GMT 2025
|
||||||
stageCount=0
|
stageCount=0
|
||||||
libraryProject=
|
libraryProject=
|
||||||
baseVersion=1.0
|
baseVersion=1.0
|
||||||
publishVersion=1.0.0
|
publishVersion=1.0.0
|
||||||
buildCount=355
|
buildCount=365
|
||||||
baseBetaVersion=1.0.1
|
baseBetaVersion=1.0.1
|
||||||
|
@ -66,8 +66,9 @@ public class PositionsFragment extends Fragment {
|
|||||||
static Location _LocationPhoneGPSLock;
|
static Location _LocationPhoneGPSLock;
|
||||||
|
|
||||||
LocationManager locationManagerPhoneGPS;
|
LocationManager locationManagerPhoneGPS;
|
||||||
volatile static int nFixActivationCountValue = 20;
|
volatile static int nFixActivationCountValue = 70;
|
||||||
volatile static int nCurrentFixActivationCountValue = 0;
|
volatile static int nCurrentFixActivationCountValue = 0;
|
||||||
|
volatile static int nGPSUpdateCount = 0;
|
||||||
|
|
||||||
// public static PositionsFragment newInstance(int page) {
|
// public static PositionsFragment newInstance(int page) {
|
||||||
// Bundle args = new Bundle();
|
// Bundle args = new Bundle();
|
||||||
@ -93,6 +94,7 @@ public class PositionsFragment extends Fragment {
|
|||||||
View viewMain = inflater.inflate(R.layout.fragment_positions, container, false);
|
View viewMain = inflater.inflate(R.layout.fragment_positions, container, false);
|
||||||
|
|
||||||
nCurrentFixActivationCountValue = 0;
|
nCurrentFixActivationCountValue = 0;
|
||||||
|
nGPSUpdateCount = 0;
|
||||||
|
|
||||||
// Toolbar toolbar = viewMain.findViewById(R.id.toolbar);
|
// Toolbar toolbar = viewMain.findViewById(R.id.toolbar);
|
||||||
// getActivity().getMenuInflater().inflate(R.menu.toolbar_positions, toolbar.getMenu());
|
// getActivity().getMenuInflater().inflate(R.menu.toolbar_positions, toolbar.getMenu());
|
||||||
@ -121,8 +123,6 @@ public class PositionsFragment extends Fragment {
|
|||||||
_LocationPhoneGPSLock.setLongitude(Double.parseDouble(metLockLongitude.getText().toString()));
|
_LocationPhoneGPSLock.setLongitude(Double.parseDouble(metLockLongitude.getText().toString()));
|
||||||
ToastUtils.show("定位手动设定位置");
|
ToastUtils.show("定位手动设定位置");
|
||||||
} else {
|
} else {
|
||||||
// 用腾讯定位数据与GPS定位数据的数据差修复模型,来修复一下GPS定位数据。
|
|
||||||
mPostionFixModel = PostionFixModel.loadPostionFixModel();
|
|
||||||
Location locationFix = fixGPSLocationFromPostionFixModel(_LocationPhoneGPS);
|
Location locationFix = fixGPSLocationFromPostionFixModel(_LocationPhoneGPS);
|
||||||
//_LocationPhoneGPSLock = _LocationTX;
|
//_LocationPhoneGPSLock = _LocationTX;
|
||||||
_LocationPhoneGPSLock = locationFix;
|
_LocationPhoneGPSLock = locationFix;
|
||||||
@ -154,7 +154,7 @@ public class PositionsFragment extends Fragment {
|
|||||||
|
|
||||||
void showLocationPhoneGPS() {
|
void showLocationPhoneGPS() {
|
||||||
if (_LocationPhoneGPS != null) {
|
if (_LocationPhoneGPS != null) {
|
||||||
String szTemp = String.format("\nPhoneGPS MyLocation Info\nLatitude %f\nLongitude %f\nAccuracy %f\n", _LocationPhoneGPS.getLatitude(), _LocationPhoneGPS.getLongitude(), _LocationPhoneGPS.getAccuracy());
|
String szTemp = String.format("\n(%d)PhoneGPS MyLocation Info\nLatitude %f\nLongitude %f\nAccuracy %f\n", nGPSUpdateCount, _LocationPhoneGPS.getLatitude(), _LocationPhoneGPS.getLongitude(), _LocationPhoneGPS.getAccuracy());
|
||||||
mtvPhoneMyLocationInfo.append(szTemp);
|
mtvPhoneMyLocationInfo.append(szTemp);
|
||||||
LogUtils.d(TAG, szTemp);
|
LogUtils.d(TAG, szTemp);
|
||||||
}
|
}
|
||||||
@ -162,7 +162,8 @@ public class PositionsFragment extends Fragment {
|
|||||||
|
|
||||||
void showPostionFixModelInfo() {
|
void showPostionFixModelInfo() {
|
||||||
if (mPostionFixModel != null && _LocationTX != null && _LocationPhoneGPS != null) {
|
if (mPostionFixModel != null && _LocationTX != null && _LocationPhoneGPS != null) {
|
||||||
String szTemp = String.format("\nFixModel Info\nLatitude TX %f\nLatitude GPS %f\nLatitude Fix %f\nLongitude TX %f\nLongitude GPS %f\nLongitude Fix %f\n\n",
|
String szTemp = String.format("\n(%d)FixModel Info\nLatitude TX %f\nLatitude GPS %f\nLatitude Fix %f\nLongitude TX %f\nLongitude GPS %f\nLongitude Fix %f\n\n",
|
||||||
|
nCurrentFixActivationCountValue,
|
||||||
_LocationTX.getLatitude(),
|
_LocationTX.getLatitude(),
|
||||||
_LocationPhoneGPS.getLatitude(),
|
_LocationPhoneGPS.getLatitude(),
|
||||||
mPostionFixModel.getLatitudeFixModel(),
|
mPostionFixModel.getLatitudeFixModel(),
|
||||||
@ -176,14 +177,16 @@ public class PositionsFragment extends Fragment {
|
|||||||
|
|
||||||
void showLockPostionInfo() {
|
void showLockPostionInfo() {
|
||||||
if (mPostionFixModel != null && _LocationTX != null && _LocationPhoneGPSLock != null) {
|
if (mPostionFixModel != null && _LocationTX != null && _LocationPhoneGPSLock != null) {
|
||||||
String szTemp = String.format("\n%s\nFixModel Info\nLatitude TX %f\nLatitude GPS %f\nLatitude Fix %f\nLongitude TX %f\nLongitude GPS %f\nLongitude Fix %f\n\n",
|
String szTemp = String.format("\n%s\nFixModel Info\nLatitude TX %f\nLatitude GPS %f\nLatitude Fix %f\nLatitude GPSLock %f\nLongitude TX %f\nLongitude GPS %f\nLongitude Fix %f\nLongitude GPSLock %f\n\n",
|
||||||
TimeUtils.getCurrentTimeString(),
|
TimeUtils.getCurrentTimeString(),
|
||||||
_LocationTX.getLatitude(),
|
_LocationTX.getLatitude(),
|
||||||
_LocationPhoneGPS.getLatitude(),
|
_LocationPhoneGPS.getLatitude(),
|
||||||
mPostionFixModel.getLatitudeFixModel(),
|
mPostionFixModel.getLatitudeFixModel(),
|
||||||
|
_LocationPhoneGPSLock.getLatitude(),
|
||||||
_LocationTX.getLongitude(),
|
_LocationTX.getLongitude(),
|
||||||
_LocationPhoneGPS.getLongitude(),
|
_LocationPhoneGPS.getLongitude(),
|
||||||
mPostionFixModel.getLongitudeFixModel());
|
mPostionFixModel.getLongitudeFixModel(),
|
||||||
|
_LocationPhoneGPSLock.getLongitude());
|
||||||
mtvLockPostionInfo.append(szTemp);
|
mtvLockPostionInfo.append(szTemp);
|
||||||
LogUtils.d(TAG, szTemp);
|
LogUtils.d(TAG, szTemp);
|
||||||
}
|
}
|
||||||
@ -265,6 +268,9 @@ public class PositionsFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Location fixGPSLocationFromPostionFixModel(Location location) {
|
private Location fixGPSLocationFromPostionFixModel(Location location) {
|
||||||
|
// 用腾讯定位数据与GPS定位数据的数据差修复模型,来修复一下GPS定位数据。
|
||||||
|
mPostionFixModel = PostionFixModel.loadPostionFixModel();
|
||||||
|
|
||||||
//Location location = locationTX;
|
//Location location = locationTX;
|
||||||
Location locationFix = new Location("GPS_Fix_Map_Manual");
|
Location locationFix = new Location("GPS_Fix_Map_Manual");
|
||||||
|
|
||||||
@ -273,17 +279,18 @@ public class PositionsFragment extends Fragment {
|
|||||||
locationFix.setLongitude(location.getLongitude() - mPostionFixModel.getLongitudeFixModel());
|
locationFix.setLongitude(location.getLongitude() - mPostionFixModel.getLongitudeFixModel());
|
||||||
|
|
||||||
// 设置必要元数据
|
// 设置必要元数据
|
||||||
location.setTime(System.currentTimeMillis());
|
locationFix.setTime(System.currentTimeMillis());
|
||||||
location.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());
|
locationFix.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());
|
||||||
location.setAccuracy(5.0f); // 手动点击精度设为5米
|
locationFix.setAccuracy(5.0f); // 手动点击精度设为5米
|
||||||
|
|
||||||
return location;
|
return locationFix;
|
||||||
}
|
}
|
||||||
|
|
||||||
private LocationListener phoneGPSLocationListener = new LocationListener() {
|
private LocationListener phoneGPSLocationListener = new LocationListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onLocationChanged(Location location) {
|
public void onLocationChanged(Location location) {
|
||||||
// 处理GPS定位结果
|
// 处理GPS定位结果
|
||||||
|
nGPSUpdateCount++;
|
||||||
updateGPSLocation(location);
|
updateGPSLocation(location);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ package cc.winboll.studio.positions.fragments;
|
|||||||
* @Date 2025/02/25 12:44:39
|
* @Date 2025/02/25 12:44:39
|
||||||
* @Describe 腾讯地图服务视图
|
* @Describe 腾讯地图服务视图
|
||||||
*/
|
*/
|
||||||
|
import com.tencent.tencentmap.mapsdk.maps.model.LatLng;
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
@ -55,7 +56,7 @@ import com.tencent.tencentmap.mapsdk.maps.model.MarkerOptions;
|
|||||||
import com.tencent.tencentmap.mapsdk.maps.model.MyLocationStyle;
|
import com.tencent.tencentmap.mapsdk.maps.model.MyLocationStyle;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class TXMSFragment extends Fragment implements /*EasyPermissions.PermissionCallbacks,*/LocationSource, TencentLocationListener {
|
public class TXMSFragment extends Fragment implements /*EasyPermissions.PermissionCallbacks,*/LocationSource, TencentLocationListener,TencentMap.OnMapClickListener {
|
||||||
|
|
||||||
public static final String TAG = "TXMSFragment";
|
public static final String TAG = "TXMSFragment";
|
||||||
|
|
||||||
@ -100,24 +101,7 @@ public class TXMSFragment extends Fragment implements /*EasyPermissions.Permissi
|
|||||||
checkLocationPermission();
|
checkLocationPermission();
|
||||||
|
|
||||||
// 设置地图点击监听
|
// 设置地图点击监听
|
||||||
tencentMap.setOnMapClickListener(new TencentMap.OnMapClickListener(){
|
tencentMap.setOnMapClickListener(this);
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMapClick(com.tencent.tencentmap.mapsdk.maps.model.LatLng latLng) {
|
|
||||||
//创建Marker对象之前,设置属性
|
|
||||||
//LatLng position = new LatLng(40.011313,116.391907);
|
|
||||||
BitmapDescriptor custom = BitmapDescriptorFactory.fromResource(R.drawable.marker);
|
|
||||||
Location location = createTXLocationFromLatLng(latLng);
|
|
||||||
addLocationToMap(location);
|
|
||||||
Marker mCustomMarker = tencentMap.addMarker(new MarkerOptions(latLng));
|
|
||||||
|
|
||||||
//创建Marker对象之后,修改属性
|
|
||||||
// Animation animation = new AlphaAnimation(0.7f, 0f);
|
|
||||||
// animation.setDuration(2000);
|
|
||||||
// mCustomMarker.setAnimation(animation);
|
|
||||||
// mCustomMarker.startAnimation();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
loadLocations();
|
loadLocations();
|
||||||
|
|
||||||
@ -140,6 +124,22 @@ public class TXMSFragment extends Fragment implements /*EasyPermissions.Permissi
|
|||||||
|
|
||||||
return viewRoot;
|
return viewRoot;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMapClick(LatLng latLng) {
|
||||||
|
//创建Marker对象之前,设置属性
|
||||||
|
//LatLng position = new LatLng(40.011313,116.391907);
|
||||||
|
BitmapDescriptor custom = BitmapDescriptorFactory.fromResource(R.drawable.marker);
|
||||||
|
Location location = createTXLocationFromLatLng(latLng);
|
||||||
|
addLocationToMap(location);
|
||||||
|
Marker mCustomMarker = tencentMap.addMarker(new MarkerOptions(latLng));
|
||||||
|
|
||||||
|
//创建Marker对象之后,修改属性
|
||||||
|
// Animation animation = new AlphaAnimation(0.7f, 0f);
|
||||||
|
// animation.setDuration(2000);
|
||||||
|
// mCustomMarker.setAnimation(animation);
|
||||||
|
// mCustomMarker.startAnimation();
|
||||||
|
}
|
||||||
|
|
||||||
void genLocationFixModel() {
|
void genLocationFixModel() {
|
||||||
|
|
||||||
@ -356,7 +356,7 @@ public class TXMSFragment extends Fragment implements /*EasyPermissions.Permissi
|
|||||||
CameraUpdate cameraSigma =
|
CameraUpdate cameraSigma =
|
||||||
CameraUpdateFactory.newCameraPosition(new CameraPosition(
|
CameraUpdateFactory.newCameraPosition(new CameraPosition(
|
||||||
convertLocationToLatLng(location),
|
convertLocationToLatLng(location),
|
||||||
19f,
|
20f,
|
||||||
0f,
|
0f,
|
||||||
0f));
|
0f));
|
||||||
//移动地图
|
//移动地图
|
||||||
|
Loading…
x
Reference in New Issue
Block a user