diff --git a/app/src/main/java/com/casic/detector/view/MainActivity.kt b/app/src/main/java/com/casic/detector/view/MainActivity.kt index dec4e1a..efeb83b 100644 --- a/app/src/main/java/com/casic/detector/view/MainActivity.kt +++ b/app/src/main/java/com/casic/detector/view/MainActivity.kt @@ -221,6 +221,21 @@ selectedItem, value ) as ArrayList } + + val latitudeList = ArrayList() + val longitudeList = ArrayList() + + labelBeans.forEach { + //分别缓存经、纬度 + latitudeList.add(it.lat.toDouble()) + longitudeList.add(it.lng.toDouble()) + } + + //移动地图到所有labelBeans的经纬度中心点 + val center = LatLng(latitudeList.average(), longitudeList.average()) + //移动到指定经纬度 + aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(center, 16f)) + showLabelsOnMap() } } @@ -258,12 +273,12 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { detectRedrawGraphic(taskBean.taskId) + + val latLng = LatLng( + taskBean.lat.toDouble(), taskBean.lng.toDouble() + ) aMap.moveCamera( - CameraUpdateFactory.newLatLngZoom( - LatLng( - taskBean.lat.toDouble(), taskBean.lng.toDouble() - ), 15f - ) + CameraUpdateFactory.newLatLngZoom(latLng, 16f) ) uploadTask(taskBean.taskId, "1") } @@ -344,7 +359,7 @@ if (location != null) { aMap.moveCamera( CameraUpdateFactory.newLatLngZoom( - LatLng(location.latitude, location.longitude), 15f + LatLng(location.latitude, location.longitude), 16f ) ) } else { @@ -393,7 +408,10 @@ clusterOverlay?.onDestroy() val clusterItems = ArrayList() labelBeans.forEach { - val latLng = LatLng(it.lat.toDouble(), it.lng.toDouble(), false) + val latitude = it.lat.toDouble() + val longitude = it.lng.toDouble() + + val latLng = LatLng(latitude, longitude, false) val regionItem = RegionItem(latLng, it.id.toString()) clusterItems.add(regionItem) } @@ -454,7 +472,15 @@ builder.include(clusterItem.position) item = clusterItem as RegionItem } - //点击Marker移到Marker视图 + + if (item == null) { + "标识器经纬度异常".show(context) + return@setOnClusterClickListener + } + + val latLng = LatLng(item.position.latitude, item.position.longitude) + + //移动视图 val latLngBounds = builder.build() aMap.animateCamera(CameraUpdateFactory.newLatLngBounds(latLngBounds, 0)) @@ -467,20 +493,12 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (item == null) { - "标识器经纬度异常".show(context) - return - } - - RouteOnMap.startNavigation( - context, item.title, - LatLng(item.position.latitude, item.position.longitude) - ) + RouteOnMap.startNavigation(context, item.title, latLng) } override fun onCancelClick() { labelBeans.forEach { - if (it.id.toString() == item?.title) { + if (it.id.toString() == item.title) { navigatePageTo(it.toJson()) } } diff --git a/app/src/main/java/com/casic/detector/view/MainActivity.kt b/app/src/main/java/com/casic/detector/view/MainActivity.kt index dec4e1a..efeb83b 100644 --- a/app/src/main/java/com/casic/detector/view/MainActivity.kt +++ b/app/src/main/java/com/casic/detector/view/MainActivity.kt @@ -221,6 +221,21 @@ selectedItem, value ) as ArrayList } + + val latitudeList = ArrayList() + val longitudeList = ArrayList() + + labelBeans.forEach { + //分别缓存经、纬度 + latitudeList.add(it.lat.toDouble()) + longitudeList.add(it.lng.toDouble()) + } + + //移动地图到所有labelBeans的经纬度中心点 + val center = LatLng(latitudeList.average(), longitudeList.average()) + //移动到指定经纬度 + aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(center, 16f)) + showLabelsOnMap() } } @@ -258,12 +273,12 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { detectRedrawGraphic(taskBean.taskId) + + val latLng = LatLng( + taskBean.lat.toDouble(), taskBean.lng.toDouble() + ) aMap.moveCamera( - CameraUpdateFactory.newLatLngZoom( - LatLng( - taskBean.lat.toDouble(), taskBean.lng.toDouble() - ), 15f - ) + CameraUpdateFactory.newLatLngZoom(latLng, 16f) ) uploadTask(taskBean.taskId, "1") } @@ -344,7 +359,7 @@ if (location != null) { aMap.moveCamera( CameraUpdateFactory.newLatLngZoom( - LatLng(location.latitude, location.longitude), 15f + LatLng(location.latitude, location.longitude), 16f ) ) } else { @@ -393,7 +408,10 @@ clusterOverlay?.onDestroy() val clusterItems = ArrayList() labelBeans.forEach { - val latLng = LatLng(it.lat.toDouble(), it.lng.toDouble(), false) + val latitude = it.lat.toDouble() + val longitude = it.lng.toDouble() + + val latLng = LatLng(latitude, longitude, false) val regionItem = RegionItem(latLng, it.id.toString()) clusterItems.add(regionItem) } @@ -454,7 +472,15 @@ builder.include(clusterItem.position) item = clusterItem as RegionItem } - //点击Marker移到Marker视图 + + if (item == null) { + "标识器经纬度异常".show(context) + return@setOnClusterClickListener + } + + val latLng = LatLng(item.position.latitude, item.position.longitude) + + //移动视图 val latLngBounds = builder.build() aMap.animateCamera(CameraUpdateFactory.newLatLngBounds(latLngBounds, 0)) @@ -467,20 +493,12 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (item == null) { - "标识器经纬度异常".show(context) - return - } - - RouteOnMap.startNavigation( - context, item.title, - LatLng(item.position.latitude, item.position.longitude) - ) + RouteOnMap.startNavigation(context, item.title, latLng) } override fun onCancelClick() { labelBeans.forEach { - if (it.id.toString() == item?.title) { + if (it.id.toString() == item.title) { navigatePageTo(it.toJson()) } } diff --git a/app/src/main/java/com/casic/detector/widgets/QueryMarkerDialog.kt b/app/src/main/java/com/casic/detector/widgets/QueryMarkerDialog.kt index b661064..b27d0b8 100644 --- a/app/src/main/java/com/casic/detector/widgets/QueryMarkerDialog.kt +++ b/app/src/main/java/com/casic/detector/widgets/QueryMarkerDialog.kt @@ -76,8 +76,6 @@ initView() } - private var selectedItem = "" - private fun initView() { val dialogTitleView: TextView = findViewById(R.id.dialogTitleView) val dialogSpinnerView: Spinner = findViewById(R.id.dialogSpinnerView) @@ -93,18 +91,16 @@ ctx, android.R.layout.simple_spinner_dropdown_item, spinnerArray ) dialogSpinnerView.setSelection(0) - selectedItem = spinnerArray[0] dialogSpinnerView.adapter = arrayAdapter dialogSpinnerView.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { override fun onItemSelected( adapterView: AdapterView<*>?, view: View?, position: Int, id: Long ) { - selectedItem = spinnerArray[position] //查库 val autoCompleteData = HashSet() CoroutineScope(Dispatchers.Main).launch { val labelBeans = withContext(Dispatchers.IO) { - DataBaseManager.get.loadLabelByCondition(selectedItem, null) + DataBaseManager.get.loadLabelByCondition(spinnerArray[position], null) } for (labelBean in labelBeans) { when (position) { @@ -146,7 +142,9 @@ dialogConfirmButton.text = positiveBtn } dialogConfirmButton.setOnClickListener { - listener.onConfirmClick(selectedItem, dialogInputView.text.toString().trim()) + listener.onConfirmClick( + dialogSpinnerView.selectedItem.toString(), dialogInputView.text.toString().trim() + ) dismiss() } }