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
import android.location.Location
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.Toast
import com.amap.api.maps.AMap
import com.amap.api.maps.AMap.OnMyLocationChangeListener
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.shenghuoquan.newscontent.R
import com.yidian.shenghuoquan.newscontent.databinding.ActivitySelectAddressBinding
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
* Describe:
*/
class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>(),OnMyLocationChangeListener {
class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>(), OnMyLocationChangeListener, AMap.OnMapClickListener {
private lateinit var mapView: MapView
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
......@@ -36,6 +42,9 @@ class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>(),OnMyL
super.init(savedInstanceState)
mapView = viewBind.map
mapView.onCreate(savedInstanceState)
bitmapDescriptor = BitmapDescriptorFactory.fromView(markerView)
markerView = layoutInflater.inflate(R.layout.layout_service_addr_map_marker, null)
boundsBuilder = LatLngBounds.Builder()
if (aMap == null) {
aMap = mapView.map
......@@ -85,6 +94,7 @@ class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>(),OnMyL
aMap!!.myLocationStyle = myLocationStyle
aMap!!.uiSettings.isMyLocationButtonEnabled = true // 设置默认定位按钮是否显示
aMap!!.isMyLocationEnabled = true // 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false
aMap!!.setOnMapClickListener(this) // 设置点击marker事件监听器
}
override fun onMyLocationChange(location: Location?) {
......@@ -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