package com.fuban.user.ui.crosscity
|
|
import android.app.Activity
|
import android.graphics.Color
|
import android.os.Bundle
|
import cn.sinata.xldutils.utils.myToast
|
import com.amap.api.maps.CameraUpdateFactory
|
import com.amap.api.maps.model.*
|
import com.fuban.user.R
|
import com.fuban.user.network.HttpManager
|
import com.fuban.user.network.entity.Anchor
|
import com.fuban.user.network.request
|
import com.fuban.user.ui.TransparentStatusBarActivity
|
import kotlinx.android.synthetic.main.activity_confirm_position.*
|
import org.jetbrains.anko.sdk27.coroutines.onClick
|
|
class ConfirmPositionActivity:TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_confirm_position
|
|
private val lat by lazy {
|
intent.getDoubleExtra("lat",0.0)
|
}
|
private val lon by lazy {
|
intent.getDoubleExtra("lon",0.0)
|
}
|
private val isStart by lazy {
|
intent.getBooleanExtra("isStart",true)
|
}
|
private val aMap by lazy {
|
mMapView.map
|
}
|
private val siteId by lazy {
|
intent.getIntExtra("siteId",0)
|
}
|
private val code by lazy {
|
intent.getStringExtra("code")
|
}
|
private val data by lazy {
|
intent.getParcelableArrayListExtra<Anchor>("data")
|
}
|
|
override fun initClick() {
|
tv_back.onClick {
|
finish()
|
}
|
tv_sure.onClick {
|
HttpManager.areaMonitoring(siteId,code,"${lon},${lat}").request(this@ConfirmPositionActivity){ _, data->
|
data?.apply {
|
if (this == 1){ //在范围内
|
setResult(Activity.RESULT_OK,intent)
|
finish()
|
}else{
|
myToast("该位置不在有效范围内,请重新选择")
|
}
|
}
|
}
|
}
|
iv_location.onClick {
|
aMap.animateCamera(CameraUpdateFactory.newLatLngZoom(LatLng(lat, lon),17f))
|
}
|
}
|
|
override fun initView() {
|
title = if (isStart) "选择上车点" else "选择下车点"
|
tv_name.text = intent.getStringExtra("name")
|
tv_address.text = intent.getStringExtra("address")
|
initMap()
|
}
|
|
private fun initMap() {
|
aMap.uiSettings.isMyLocationButtonEnabled = false//设置默认定位按钮是否显示,非必需设置。
|
aMap.uiSettings.setZoomInByScreenCenter(true)
|
aMap.uiSettings.isZoomControlsEnabled = false
|
aMap.uiSettings.isRotateGesturesEnabled = false
|
aMap.uiSettings.isTiltGesturesEnabled = false
|
aMap.isMyLocationEnabled = false
|
val latLng = LatLng(lat, lon)
|
aMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng,12f))
|
val markerOptions = MarkerOptions()
|
markerOptions.position(latLng).icon(BitmapDescriptorFactory.fromResource(R.mipmap.zuobiao))
|
aMap.addMarker(markerOptions)
|
|
//遍历添加电子围栏
|
data.forEach {
|
if (it.type == 2){
|
val split = it.coordinate.split(";")
|
if (split.size == 2){ //坐标;半径,添加圆形围栏
|
val latLon = split[0].split(",")
|
val opts =
|
CircleOptions().center(LatLng(latLon[1].toDouble(), latLon[0].toDouble()))
|
.radius(split[1].toDouble())
|
.fillColor(Color.parseColor("#33FD943A"))
|
.strokeColor(Color.parseColor("#FD943A"))
|
.strokeWidth(2f)
|
aMap.addCircle(opts)
|
}else{ //点集合,添加多边形
|
val polygonOptions = PolygonOptions()
|
polygonOptions.addAll(split.map {
|
val latLon = it.split(",")
|
LatLng(latLon[1].toDouble(), latLon[0].toDouble())
|
})
|
polygonOptions.fillColor(Color.parseColor("#33FD943A"))
|
.strokeColor(Color.parseColor("#FD943A"))
|
.strokeWidth(2f)
|
aMap.addPolygon(polygonOptions)
|
}
|
}
|
}
|
}
|
|
override fun onResume() {
|
super.onResume()
|
mMapView.onResume()
|
}
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
super.onCreate(savedInstanceState)
|
mMapView.onCreate(savedInstanceState)
|
}
|
|
override fun onSaveInstanceState(outState: Bundle) {
|
super.onSaveInstanceState(outState)
|
mMapView.onSaveInstanceState(outState)
|
}
|
|
override fun onLowMemory() {
|
super.onLowMemory()
|
mMapView.onLowMemory()
|
}
|
|
override fun onPause() {
|
super.onPause()
|
mMapView.onPause()
|
}
|
|
override fun onDestroy() {
|
mMapView.onDestroy()
|
super.onDestroy()
|
}
|
}
|