"app/src/vscode:/vscode.git/clone" did not exist on "6ba1ff6bad5ecb4fe969df5f7a430ce44f9bb7d4"
Commit 1fced44e authored by p x's avatar p x
Browse files

不让用户传入mapreadyView

parent aeb35fb4
......@@ -7,10 +7,12 @@ import androidx.fragment.app.FragmentActivity
import com.amap.api.maps.MapsInitializer
import com.minedata.minenavi.SDKInitializer
import com.minedata.minenavi.SDKInitializer.InitListener
import com.minedata.minenavi.map.MineMap
import com.minedata.minenavi.mapdal.CoordType
import com.minedata.minenavi.poiquery.SearchUrlType
import com.permissionx.guolindev.PermissionX
import com.sd.api.location.MSLocation
import com.sd.api.ui.MapReadyView
/**
......@@ -27,6 +29,11 @@ class UserCtx {
var mContext: Context? = null
var map_type: MAP_TYPE = MAP_TYPE.MINE
//wmts 链接
var wmtsUrl = ""
var mapReadyView: MapReadyView? = null
companion object {
val instance: UserCtx by lazy { UserCtx() }
}
......@@ -74,6 +81,14 @@ object MSDKInitializer {
}
/**
* 设置wms Url
* 需在sdk初始化之前调用
*/
fun setWmsUrl(wmtsUrl: String) {
UserCtx.instance.wmtsUrl = wmtsUrl
}
/**
* 初始化地图类型相关配置
*/
......@@ -90,14 +105,14 @@ object MSDKInitializer {
MAP_TYPE.MINE -> {
MSLocation.initLoc()
SDKInitializer.debug(false)
// SDKInitializer.enableEtaLog(false)
// SDKInitializer.outputLog(false)
// 隐私合规接口
SDKInitializer.setAgreePrivacy(true)
SDKInitializer.debug(false)
SDKInitializer.enableEtaLog(false)
SDKInitializer.outputLog(false)
//设置地图坐标系
// SDKInitializer.setCoordType(CoordType.GCJ02)
// SDKInitializer.setSearchUrlType(SearchUrlType.v1)
if (UserCtx.instance.wmtsUrl.isEmpty() == false) {
SDKInitializer.setStyleUrl(MineMap.UrlType.satellite, UserCtx.instance.wmtsUrl)
}
// 执行SDK初始化
SDKInitializer.initialize(ctx, object : InitListener {
override fun onInitSuccess() {
......@@ -109,11 +124,6 @@ object MSDKInitializer {
}
})
}
else -> {
}
}
}
......@@ -124,7 +134,8 @@ object MSDKInitializer {
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_BACKGROUND_LOCATION,
Manifest.permission.READ_PHONE_STATE
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
// pers.add(Manifest.permission.READ_EXTERNAL_STORAGE)
......
......@@ -11,7 +11,7 @@ class DriverRouteBean {
val instance: DriverRouteBean by lazy { DriverRouteBean() }
}
/****四维某条具体路径用于返回**/
/****四维某条具体路径**/
var routeBase: RouteBase? = null
//高德
......
package com.sd.api.bean
/**全局用的我的当前位置**/
/**我的当前位置**/
class MyCLoc {
companion object{
val instance:MyCLoc by lazy { MyCLoc() }
}
//当前经纬度
/***当前经纬度***/
var lat = 0.0
var lng = 0.0
//速度 KM/H
//速度
var speed = 0f
//航向角
/***航向角*/
var bearing = 0f
//精度
var accuracy = 0f
//高程
/****高程*/
var altitude = 0.0
}
\ No newline at end of file
......@@ -6,6 +6,7 @@ import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import com.amap.api.maps.AMap
import com.sd.api.UserCtx
import com.sd.api.databinding.FragmentAMapBinding
import com.sd.api.ui.MapReadyView
import com.sd.api.ui.MapMultiView.OnMapReadyLis
......@@ -41,23 +42,28 @@ class AMapFragment : Fragment() {
return binding.root
}
private lateinit var aMap: AMap
private var onMapReadyLis: OnMapReadyLis? = null
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.mMapView.onCreate(savedInstanceState)
aMap = binding.mMapView.map
aMap = binding.mMapView.map
MapReadyView.instance.aMap = aMap
UserCtx.instance.mapReadyView = MapReadyView.instance
onMapReadyLis?.onMapReady(MapReadyView.instance)
setListener()
}
private fun setListener() {
binding.ivLocation.setOnClickListener {
aMap.isMyLocationEnabled = !aMap.isMyLocationEnabled
}
}
fun addMapRenderCallback(onMapReadyLis: OnMapReadyLis) {
this.onMapReadyLis=onMapReadyLis
this.onMapReadyLis = onMapReadyLis
}
fun getAnyMap(): Any? {
......@@ -85,6 +91,22 @@ class AMapFragment : Fragment() {
binding.mMapView.onDestroy()
}
fun setCompassView(bool: Boolean) {
var mUiSettings = aMap.getUiSettings()
mUiSettings.isCompassEnabled = bool
}
fun setScaleControlsEnabled(bool: Boolean) {
var mUiSettings = aMap.getUiSettings()
mUiSettings.isScaleControlsEnabled = bool
}
fun setMyLocationButtonEnabled(bool: Boolean) {
// var mUiSettings = aMap.getUiSettings()
// mUiSettings.setMyLocationButtonEnabled(bool) //显示默认的定位按钮
binding.ivLocation.visibility = if (bool) View.VISIBLE else View.GONE
// aMap.setMyLocationEnabled(bool)// 可触发定位并显示当前位置
}
companion object {
......
package com.sd.api.fragments
import android.graphics.Point
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.view.isVisible
import androidx.fragment.app.Fragment
import com.minedata.minenavi.map.MapPoiDetail
import com.minedata.minenavi.map.Marker
import com.minedata.minenavi.map.MineMap
import com.minedata.minenavi.map.Overlay
import com.minedata.minenavi.map.ScaleView
import com.minedata.minenavi.map.TrafficEventInfo
import com.minedata.minenavi.mapdal.LatLng
import com.minedata.minenavi.mapdal.NdsPoint
import com.minedata.minenavi.util.Tools
import com.sd.api.UserCtx
import com.sd.api.databinding.FragmentForeMapBinding
import com.sd.api.ui.MapReadyView
import com.sd.api.location.MSLocCb
import com.sd.api.ui.MapMultiView.OnMapReadyLis
import com.sd.api.ui.MapReadyView
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
//private const val ARG_PARAM1 = "param1"
......@@ -43,14 +55,14 @@ class ForeMapFragment : Fragment() {
//跳转到搜索界面
/* private var searchAct =
registerForActivityResult(ActivityResultContracts.StartActivityForResult(), { result ->
if (result.resultCode == Activity.RESULT_OK) {
val intent = result.data
val returnedData = intent?.getStringExtra("123")
Log.d("----", "----Returned data: $returnedData")
}
})*/
/* private var searchAct =
registerForActivityResult(ActivityResultContracts.StartActivityForResult(), { result ->
if (result.resultCode == Activity.RESULT_OK) {
val intent = result.data
val returnedData = intent?.getStringExtra("123")
Log.d("----", "----Returned data: $returnedData")
}
})*/
private var mMineMap: MineMap? = null
......@@ -60,20 +72,148 @@ class ForeMapFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initView()
setLis()
binding.mapView.addMapRenderCallback { mineMap ->
this.mMineMap = mineMap
MapReadyView.instance.mMineMap = mineMap
MapReadyView.instance.fMapView = binding.mapView
UserCtx.instance.mapReadyView = MapReadyView.instance
onMapReadyLis?.onMapReady(MapReadyView.instance)
setListener(mineMap)
}
}
private fun initView() {
}
private fun setLis() {
binding.mapView.addMapRenderCallback { mineMap ->
this.mMineMap = mineMap
MapReadyView.instance.mMineMap = mineMap
MapReadyView.instance.fMapView = binding.mapView
onMapReadyLis?.onMapReady(MapReadyView.instance)
private fun setListener(mineMap: MineMap) {
binding.ivLocation.setOnClickListener {
//定位到地图中心点
var loc = MSLocCb.instance
val point = Tools.latLngToPoint(LatLng(loc.lat, loc.lng))
mMineMap?.setPointToCenter(point.x, point.y)
}
mineMap.addListener(object : MineMap.Listener {
override fun onNeedsDisplay() {
}
override fun onMrWillBeginNewFrame() {
}
override fun onMarkerClicked(
annot: Marker?,
area: Int
) {
}
override fun onMarkerSelected(annot: Marker?) {
}
override fun onMarkerDeselected(annot: Marker?) {
}
override fun onOverlayClicked(overlay: Overlay?) {
}
override fun onOverlaySelected(
overlay: Overlay?,
grabbedPoint: Point?
) {
}
override fun onOverlaySelectedNds(
overlay: Overlay?,
grabbedPoint: NdsPoint?
) {
}
override fun onOverlayDeselected(overlay: Overlay?) {
}
override fun onPoiSelected(name: String?, pos: Point?) {
}
override fun onPoiDeselected(name: String?, pos: Point?) {
}
override fun onPoiSelectedNds(
name: String?,
pos: NdsPoint?
) {
}
override fun onPoiDeselectedNds(
name: String?,
pos: NdsPoint?
) {
}
override fun onPoiClicked(mapPoiDetail: MapPoiDetail?) {
}
override fun onCameraChanged(changeType: Int) {
if (binding.compassView.isVisible) {
binding.compassView.updateHeading(mMineMap?.heading ?: 0f)
}
if (binding.scaleView.isVisible) {
binding.scaleView.updateScale(mMineMap?.zoomLevel ?: 3f)
}
}
override fun onGestureAnimationEvent(animStarted: Boolean) {
}
override fun onCameraAnimationEnded() {
}
override fun onTileLoadingFinished() {
}
override fun onGridTypesLoaded(layerTypes: IntArray?) {
}
override fun onGridTypesReadyForDraw(layerTypes: IntArray?) {
}
override fun onOnlineDataVersionChecked(upgraded: Boolean) {
}
override fun onUserRasterDataUpdated(fromSource: Int) {
}
override fun onTrafficEventIconClicked(
type: Int,
trafficEventInfo: TrafficEventInfo?
) {
}
override fun onRouteExplorerLayerClicked(index: Int) {
}
})
}
/**地图加载完成监听回调*/
......@@ -81,7 +221,7 @@ class ForeMapFragment : Fragment() {
this.onMapReadyLis = onMapReadyLis
}
fun getAnyMap(): MineMap? {
fun getMineMap(): MineMap? {
return mMineMap
}
......@@ -100,6 +240,24 @@ class ForeMapFragment : Fragment() {
binding.mapView.onDestroy()
}
//指南针
fun setCompassView(bool: Boolean) {
binding.compassView.visibility = if (bool) View.VISIBLE else View.GONE
binding.compassView.setMapView(binding.mapView)
}
//比例尺
fun setScaleControlsEnabled(bool: Boolean) {
binding.scaleView.visibility = if (bool) View.VISIBLE else View.GONE
binding.scaleView.setMapView(binding.mapView)
binding.scaleView.setDrawPos(ScaleView.Pos.leftBottom)
}
//显示我的位置中心点
fun setMyLocationButtonEnabled(bool: Boolean) {
binding.ivLocation.visibility = if (bool) View.VISIBLE else View.GONE
}
companion object {
@JvmStatic
fun newInstance() = ForeMapFragment()
......
package com.sd.api.highmap
import com.google.gson.Gson
import com.sd.api.MAP_TYPE
import com.sd.api.MSDKInitializer
import com.unity3d.player.UnityPlayer
......@@ -17,7 +19,14 @@ object HighMapApi {
* 给unity读取3d tile json配置
*/
fun setTileInit(tileJsonBean: TileJsonBean) {
UnityPlayer.UnitySendMessage(MODELNAME, "SetTileInit", gson.toJson(tileJsonBean))
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
UnityPlayer.UnitySendMessage(MODELNAME, "SetTileInit", gson.toJson(tileJsonBean))
}
MAP_TYPE.AMAP -> {
}
}
}
/**
......@@ -31,13 +40,20 @@ object HighMapApi {
lon: Double,
evel: Double,
) {
val carPos = CarPos().apply {
this.heading = heading
this.lat = lat
this.lon = lon
this.evel = evel
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
val carPos = CarPos().apply {
this.heading = heading
this.lat = lat
this.lon = lon
this.evel = evel
}
UnityPlayer.UnitySendMessage(MODELNAME, "SetCarPosition", gson.toJson(carPos))
}
MAP_TYPE.AMAP -> {
}
}
UnityPlayer.UnitySendMessage(MODELNAME, "SetCarPosition", gson.toJson(carPos))
}
/**
......@@ -45,8 +61,19 @@ object HighMapApi {
* @param isOn true:显示 false:隐藏
*/
fun setCarBottomCircle(isOn: Boolean) {
var bottomCircle = BottomCircle(isOn)
UnityPlayer.UnitySendMessage(MODELNAME, "SetCarBottomCircle", gson.toJson(bottomCircle))
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
var bottomCircle = BottomCircle(isOn)
UnityPlayer.UnitySendMessage(
MODELNAME,
"SetCarBottomCircle",
gson.toJson(bottomCircle)
)
}
MAP_TYPE.AMAP -> {
}
}
}
/**
......@@ -54,8 +81,19 @@ object HighMapApi {
* 0=关闭 1=左前 2=正前 3=右前 4=右后 5=正后 6=左后
*/
fun setCarRadarDirection(dirent: Int) {
var radarDirection = RadarDirection(dirent)
UnityPlayer.UnitySendMessage(MODELNAME, "SetCarRadarDirection", gson.toJson(radarDirection))
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
var radarDirection = RadarDirection(dirent)
UnityPlayer.UnitySendMessage(
MODELNAME,
"SetCarRadarDirection",
gson.toJson(radarDirection)
)
}
MAP_TYPE.AMAP -> {
}
}
}
/**
......@@ -73,14 +111,21 @@ object HighMapApi {
drawpassed: Boolean = true,
showdistance: Int = 45
) {
var carNavPath = CarNavPath().apply {
this.lines = lines
this.notthrough = notthrough
this.through = through
this.drawpassed = drawpassed
this.showdistance = showdistance
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
var carNavPath = CarNavPath().apply {
this.lines = lines
this.notthrough = notthrough
this.through = through
this.drawpassed = drawpassed
this.showdistance = showdistance
}
UnityPlayer.UnitySendMessage(MODELNAME, "SetCarNavPath", gson.toJson(carNavPath))
}
MAP_TYPE.AMAP -> {
}
}
UnityPlayer.UnitySendMessage(MODELNAME, "SetCarNavPath", gson.toJson(carNavPath))
}
/**
......@@ -89,8 +134,15 @@ object HighMapApi {
* @param alertType 告警类型 2=红色;3=绿色(绿波);4=(感知车前的红色);5= (拥堵红色、施工红色、人行道红色)alertType=-1 时清空所有警戒线。
*/
fun setAlertPath(alertLine: List<AlertLine>, alertType: Int) {
var alertPath = AlertPath(alertLine, alertType)
UnityPlayer.UnitySendMessage(MODELNAME, "SetAlertPath", gson.toJson(alertPath))
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
var alertPath = AlertPath(alertLine, alertType)
UnityPlayer.UnitySendMessage(MODELNAME, "SetAlertPath", gson.toJson(alertPath))
}
MAP_TYPE.AMAP -> {
}
}
}
/**
......@@ -98,8 +150,15 @@ object HighMapApi {
* @param ptcList 感知物列表
*/
fun setPtcData(ptcList: List<UnityPtc>) {
var ptcData = PtcData(ptcList)
UnityPlayer.UnitySendMessage(MODELNAME, "SetPtcData", gson.toJson(ptcData))
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
var ptcData = PtcData(ptcList)
UnityPlayer.UnitySendMessage(MODELNAME, "SetPtcData", gson.toJson(ptcData))
}
MAP_TYPE.AMAP -> {
}
}
}
/**
......@@ -107,25 +166,46 @@ object HighMapApi {
* @param warnPtc 感知物状态列表
*/
fun setWarnPtc(warnPtc: List<WarnPtc>) {
UnityPlayer.UnitySendMessage(
MODELNAME,
"SetWarnPre",
gson.toJson(warnPtc)
)
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
UnityPlayer.UnitySendMessage(
MODELNAME,
"SetWarnPre",
gson.toJson(warnPtc)
)
}
MAP_TYPE.AMAP -> {
}
}
}
/**
* 清空场景中的所有感知物
*/
fun clearPtcData() {
UnityPlayer.UnitySendMessage(MODELNAME, "ClearAllPtcData", "{}")
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
UnityPlayer.UnitySendMessage(MODELNAME, "ClearAllPtcData", "{}")
}
MAP_TYPE.AMAP -> {
}
}
}
/**
* 调整主摄像机的俯视角度
*/
fun setCameraAngle(angle: Float = 30f) {
UnityPlayer.UnitySendMessage(MODELNAME, "SetCameraAngle", "$angle")
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
UnityPlayer.UnitySendMessage(MODELNAME, "SetCameraAngle", "$angle")
}
MAP_TYPE.AMAP -> {
}
}
}
......@@ -134,47 +214,82 @@ object HighMapApi {
* @param spaceCode 车位编号 当为空时则取消高亮
*/
fun parkRoundLight(spaceCode: String) {
var parkRoundLight = ParkRoundLight().apply {
this.spaceCode = spaceCode
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
var parkRoundLight = ParkRoundLight().apply {
this.spaceCode = spaceCode
}
UnityPlayer.UnitySendMessage(MODELNAME, "parkRoundLight", gson.toJson(parkRoundLight))
}
MAP_TYPE.AMAP -> {
}
}
UnityPlayer.UnitySendMessage(MODELNAME, "parkRoundLight", gson.toJson(parkRoundLight))
}
/**
* 设置车辆停车状态,倒车特效
*/
fun setParkRever(reverCar: ReverCar) {
UnityPlayer.UnitySendMessage(MODELNAME, "SetParking", gson.toJson(reverCar))
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
UnityPlayer.UnitySendMessage(MODELNAME, "SetParking", gson.toJson(reverCar))
}
MAP_TYPE.AMAP -> {
}
}
}
/**设置停车完成
* @param complete true:完成 false:未完成
*/
fun setParkComplete(complete: Boolean) {
var parkComplete = ParkComplete().apply {
this.complete = complete
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
var parkComplete = ParkComplete().apply {
this.complete = complete
}
UnityPlayer.UnitySendMessage(MODELNAME, "SetParkComplete", gson.toJson(parkComplete))
}
MAP_TYPE.AMAP -> {
}
}
UnityPlayer.UnitySendMessage(MODELNAME, "SetParkComplete", gson.toJson(parkComplete))
}
/**设置车位停车状态*/
fun setParkStatu(parkStatu: ParkStatu) {
UnityPlayer.UnitySendMessage(MODELNAME, "SetSpaceParkStatu", gson.toJson(parkStatu))
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
UnityPlayer.UnitySendMessage(MODELNAME, "SetSpaceParkStatu", gson.toJson(parkStatu))
}
MAP_TYPE.AMAP -> {
}
}
}
/**设置地锁动画*/
fun setLockStatus(lockStatu: LockStatu) {
UnityPlayer.UnitySendMessage(MODELNAME, "SetLockStatus", gson.toJson(lockStatu))
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
UnityPlayer.UnitySendMessage(MODELNAME, "SetLockStatus", gson.toJson(lockStatu))
}
MAP_TYPE.AMAP -> {
}
}
}
// 小地图开关
/* fun showMap(showSmallMap: String) {
// fun showMap(showSmallMap: ShowSmallMap) {
UnityPlayer.UnitySendMessage(MODELNAME, "showMap", showSmallMap)
// UnityPlayer.UnitySendMessage(MODELNAME, "showMap", gson.toJson(showSmallMap))
}*/
/* fun showMap(showSmallMap: String) {
// fun showMap(showSmallMap: ShowSmallMap) {
UnityPlayer.UnitySendMessage(MODELNAME, "showMap", showSmallMap)
// UnityPlayer.UnitySendMessage(MODELNAME, "showMap", gson.toJson(showSmallMap))
}*/
}
\ No newline at end of file
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