From 0a7a0593634bd5cddeaca6cf1081fc6d85a20eac Mon Sep 17 00:00:00 2001 From: yezhiqiu <123456@qq.com> Date: Fri, 9 Oct 2026 09:50:26 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E7=99=BE=E5=BA=A6=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE=E5=92=8C=E8=B0=B7=E6=AD=8C=E5=9C=B0=E5=9B=BE=E5=A4=9A?= =?UTF-8?q?=E5=AE=A0=E7=89=A9=E4=BD=8D=E7=BD=AE=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 6 ++-- .../com/abbidot/tracker/bean/MapDeviceBean.kt | 2 ++ .../tracker/ui/common/map/HomeMapCommonV3.kt | 7 +++++ .../tracker/ui/fragment/map/MapV3Fragment.kt | 1 + .../map/baidumap/HomeMapBaiduMapFragment.kt | 28 +++++++++++++++++++ .../googlemap/HomeMapGoogleMapFragmentV3.kt | 23 ++++++++++++++- 6 files changed, 63 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index df4afdf..685fb0e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -28,9 +28,9 @@ android { applicationId "com.abbidot.tracker" minSdkVersion 24 targetSdkVersion 35 - versionCode 2600 - versionName "2.6.0" -// versionName "2.6.0-Beta5" + versionCode 2601 +// versionName "2.6.1" + versionName "2.6.1-Beta1" 4 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/com/abbidot/tracker/bean/MapDeviceBean.kt b/app/src/main/java/com/abbidot/tracker/bean/MapDeviceBean.kt index 682793a..a22dbda 100644 --- a/app/src/main/java/com/abbidot/tracker/bean/MapDeviceBean.kt +++ b/app/src/main/java/com/abbidot/tracker/bean/MapDeviceBean.kt @@ -33,6 +33,7 @@ data class MapDeviceBean( var ledBlueValue: Int, var fences: MutableList?, var wifiZones: MutableList?, + var otherPets: MutableList?, var startTime: String, var endTime: String, var deviceType: Int, @@ -71,6 +72,7 @@ data class MapDeviceBean( 0, null, null, + null, "", "", 1, diff --git a/app/src/main/java/com/abbidot/tracker/ui/common/map/HomeMapCommonV3.kt b/app/src/main/java/com/abbidot/tracker/ui/common/map/HomeMapCommonV3.kt index e4f1e00..159b491 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/common/map/HomeMapCommonV3.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/common/map/HomeMapCommonV3.kt @@ -227,6 +227,13 @@ class HomeMapCommonV3 @Inject constructor() : BaseMapCommon() { } } + fun updateOtherPetLatLng(otherPets: MutableList?) { + if (!otherPets.isNullOrEmpty()) { + mHomeMapGoogleMapFragment?.updateOtherPetLatLng(otherPets) + mHomeMapBaiduMapFragment?.updateOtherPetLatLng(otherPets) + } + } + fun clearOtherPetHeadMarker() { mHomeMapGoogleMapFragment?.clearOtherPetHeadMarker() mHomeMapBaiduMapFragment?.clearOtherPetHeadMarker() diff --git a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/MapV3Fragment.kt b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/MapV3Fragment.kt index 367045e..32629d2 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/MapV3Fragment.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/MapV3Fragment.kt @@ -813,6 +813,7 @@ class MapV3Fragment : BaseFragment(FragmentMapV3Binding::i isMoveCamera = false } mHomeMapCommon.startRefreshUserLocation() + mHomeMapCommon.updateOtherPetLatLng(otherPets) if (isShowFence) { fences?.let { fences -> diff --git a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/baidumap/HomeMapBaiduMapFragment.kt b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/baidumap/HomeMapBaiduMapFragment.kt index 32246b6..560e724 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/baidumap/HomeMapBaiduMapFragment.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/baidumap/HomeMapBaiduMapFragment.kt @@ -3,6 +3,7 @@ package com.abbidot.tracker.ui.fragment.map.baidumap import android.animation.ValueAnimator import android.content.Context import android.graphics.Point +import android.os.Bundle import android.text.TextUtils import android.view.MotionEvent import android.view.View @@ -21,6 +22,7 @@ import com.abbidot.tracker.bean.HistoryDataBean import com.abbidot.tracker.bean.MapDeviceBean import com.abbidot.tracker.bean.PetBean import com.abbidot.tracker.constant.ConstantInt +import com.abbidot.tracker.constant.ConstantString import com.abbidot.tracker.databinding.LayoutPetLocationInfoBinding import com.abbidot.tracker.util.Util import com.abbidot.tracker.util.ViewUtil @@ -30,6 +32,7 @@ import com.baidu.mapapi.map.BaiduMap import com.baidu.mapapi.map.BitmapDescriptor import com.baidu.mapapi.map.CircleOptions import com.baidu.mapapi.map.MapStatus +import com.baidu.mapapi.map.Marker import com.baidu.mapapi.map.MarkerOptions import com.baidu.mapapi.map.Overlay import com.baidu.mapapi.map.PolylineDottedLineType @@ -399,6 +402,10 @@ class HomeMapBaiduMapFragment : BaseBaiduMapFragment() { val newLatLng = getBaiduMapLatLng(pet.latitude, pet.longitude) val markerOptions = MarkerOptions().position(newLatLng) markerOptions.icon(bitmapDescriptor as BitmapDescriptor) + val bundle = Bundle().apply { + putString(ConstantString.PetId, pet.petId) + } + markerOptions.extraInfo(bundle) mBaiduMap?.apply { mOtherPetMarkerList.add(addOverlay(markerOptions)) } @@ -406,6 +413,27 @@ class HomeMapBaiduMapFragment : BaseBaiduMapFragment() { } } + /** + * 更新其他多宠物位置 + */ + fun updateOtherPetLatLng(otherPets: MutableList?) { + if (!otherPets.isNullOrEmpty()) { + for (marker in mOtherPetMarkerList) { + marker?.apply { + if (this is Marker) { + for (other in otherPets) { + if (extraInfo.getString(ConstantString.PetId) == other.petId && other.latitude != 0.0 && other.longitude != 0.0) { + val newLatLng = getBaiduMapLatLng(other.latitude, other.longitude) + position = newLatLng + break + } + } + } + } + } + } + } + /** * 清空其他宠物的头像Marker */ diff --git a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/HomeMapGoogleMapFragmentV3.kt b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/HomeMapGoogleMapFragmentV3.kt index 96326f3..e1b81ef 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/HomeMapGoogleMapFragmentV3.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/fragment/map/googlemap/HomeMapGoogleMapFragmentV3.kt @@ -389,7 +389,28 @@ class HomeMapGoogleMapFragmentV3 : BaseGoogleMapFragment() { val markerOptions = MarkerOptions().position(newLatLng) markerOptions.icon(bitmapDescriptor) mGoogleMap?.apply { - mOtherPetMarkerList.add(addMarker(markerOptions)) + val m = addMarker(markerOptions) + m?.tag = pet.petId + mOtherPetMarkerList.add(m) + } + } + } + } + + /** + * 更新其他多宠物位置 + */ + fun updateOtherPetLatLng(otherPets: MutableList?) { + if (!otherPets.isNullOrEmpty()) { + for (marker in mOtherPetMarkerList) { + marker?.apply { + for (other in otherPets) { + if (tag == other.petId && other.latitude != 0.0 && other.longitude != 0.0) { + val newLatLng = toGCJ02LatLon(LatLng(other.latitude, other.longitude)) + position = newLatLng + break + } + } } } }