Commit 45bdc2b5 authored by 宋永孟's avatar 宋永孟

add 添加点击坐标功能

parent 71bcedf7
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/marker_pic"
android:layout_width="20dp"
android:layout_height="37dp"
android:scaleType="fitCenter"
android:src="@drawable/service_addr_marker"/>
</RelativeLayout>
\ No newline at end of file
...@@ -3,12 +3,14 @@ package com.yidian.shenghuoquan.newscontent.ui ...@@ -3,12 +3,14 @@ package com.yidian.shenghuoquan.newscontent.ui
import android.location.Location import android.location.Location
import android.os.Bundle import android.os.Bundle
import android.util.Log import android.util.Log
import android.view.View
import android.widget.Toast import android.widget.Toast
import com.amap.api.maps.AMap import com.amap.api.maps.AMap
import com.amap.api.maps.AMap.OnMyLocationChangeListener import com.amap.api.maps.AMap.OnMyLocationChangeListener
import com.amap.api.maps.MapView import com.amap.api.maps.MapView
import com.amap.api.maps.model.MyLocationStyle import com.amap.api.maps.model.*
import com.yidian.common.base.BaseActivity import com.yidian.common.base.BaseActivity
import com.yidian.shenghuoquan.newscontent.R
import com.yidian.shenghuoquan.newscontent.databinding.ActivitySelectAddressBinding import com.yidian.shenghuoquan.newscontent.databinding.ActivitySelectAddressBinding
import kotlinx.android.synthetic.main.activity_select_address.* import kotlinx.android.synthetic.main.activity_select_address.*
...@@ -18,9 +20,13 @@ import kotlinx.android.synthetic.main.activity_select_address.* ...@@ -18,9 +20,13 @@ import kotlinx.android.synthetic.main.activity_select_address.*
* Date: 2021/6/24 2:10 PM * Date: 2021/6/24 2:10 PM
* Describe: * Describe:
*/ */
class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>(),OnMyLocationChangeListener { class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>(), OnMyLocationChangeListener, AMap.OnMapClickListener {
private lateinit var mapView: MapView private lateinit var mapView: MapView
private var myLocationStyle: MyLocationStyle? = null private var myLocationStyle: MyLocationStyle? = null
var bitmapDescriptor: BitmapDescriptor? = null
private var markerView: View? = null
private var currentMarker: Marker? = null
private var boundsBuilder: LatLngBounds.Builder? = null
var aMap: AMap? = null var aMap: AMap? = null
...@@ -36,6 +42,9 @@ class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>(),OnMyL ...@@ -36,6 +42,9 @@ class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>(),OnMyL
super.init(savedInstanceState) super.init(savedInstanceState)
mapView = viewBind.map mapView = viewBind.map
mapView.onCreate(savedInstanceState) mapView.onCreate(savedInstanceState)
bitmapDescriptor = BitmapDescriptorFactory.fromView(markerView)
markerView = layoutInflater.inflate(R.layout.layout_service_addr_map_marker, null)
boundsBuilder = LatLngBounds.Builder()
if (aMap == null) { if (aMap == null) {
aMap = mapView.map aMap = mapView.map
...@@ -85,6 +94,7 @@ class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>(),OnMyL ...@@ -85,6 +94,7 @@ class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>(),OnMyL
aMap!!.myLocationStyle = myLocationStyle aMap!!.myLocationStyle = myLocationStyle
aMap!!.uiSettings.isMyLocationButtonEnabled = true // 设置默认定位按钮是否显示 aMap!!.uiSettings.isMyLocationButtonEnabled = true // 设置默认定位按钮是否显示
aMap!!.isMyLocationEnabled = true // 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false aMap!!.isMyLocationEnabled = true // 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false
aMap!!.setOnMapClickListener(this) // 设置点击marker事件监听器
} }
override fun onMyLocationChange(location: Location?) { override fun onMyLocationChange(location: Location?) {
...@@ -111,4 +121,20 @@ class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>(),OnMyL ...@@ -111,4 +121,20 @@ class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>(),OnMyL
} }
} }
override fun onMapClick(latLng: LatLng?) {
updataCurrentMarker(latLng)
}
private fun updataCurrentMarker(latLng: LatLng?) {
val markerOption = MarkerOptions()
markerOption.position(latLng)
markerOption.icon(bitmapDescriptor)
markerOption.anchor(0F, 1F)
currentMarker?.remove()
currentMarker = aMap!!.addMarker(markerOption)
currentMarker!!.setObject(latLng)
boundsBuilder?.include(latLng)
}
} }
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