Commit 1fced44e authored by p x's avatar p x
Browse files

不让用户传入mapreadyView

parent aeb35fb4
kotlin version: 2.0.21
error message: The daemon has terminated unexpectedly on startup attempt #1 with error code: 0. The daemon process output:
1. Kotlin compile daemon is ready
......@@ -2,6 +2,12 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
tools:ignore="ProtectedPermissions" />
<uses-permission
android:name="android.permission.INTERACT_ACROSS_USERS_FULL"
tools:ignore="ProtectedPermissions" /> <!-- 允许程序打开网络套接字 -->
<uses-permission android:name="android.permission.INTERNET" /> <!-- 允许程序访问网络状态 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 允许用户改变WiFi连接状态 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 程序访问粗略位置 -->
......@@ -9,14 +15,14 @@
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- Android Q 允许后台运行定位 -->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <!-- 允许程序读取手机状态 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 打电话的权限 -->
<uses-permission android:name="android.permission.CALL_PHONE" /> <!-- 从SDCard读出数据权限 -->
<!-- <uses-permission android:name="android.permission.CALL_PHONE" /> -->
<!-- 从SDCard读出数据权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 允许程序写入外部存储设备 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 允许程序读取所有者数据 -->
<!-- Android 11+ 所有文件访问权限 -->
<uses-permission android:name="android.permission.READ_OWNER_DATA" /> <!-- 访问WiFi状态,需要WiFi信息用于网络定位 -->
<uses-permission
android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
<uses-permission android:name="android.permission.READ_OWNER_DATA" /> <!-- 访问WiFi状态,需要WiFi信息用于网络定位 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 访问网络的变化, 需要某些信息用于网络定位 -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <!-- 8.0 安装未知程序权限 -->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
......@@ -25,19 +31,37 @@
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:hardwareAccelerated="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.MapMultiEngine"
android:usesCleartextTraffic="true"
android:hardwareAccelerated="true"
android:networkSecurityConfig="@xml/network_security_config"
tools:targetApi="31">
<activity
android:name=".ui.PartRoadActivity"
android:name=".ui.ControlActivity"
android:exported="false" />
<!-- <meta-data -->
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
<service android:name="com.amap.api.location.APSService" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
<activity
android:name=".ui.PartRoadActivity"
android:exported="false" /> <!-- <meta-data -->
<!-- android:name="com.minedata.minenavi.apikey" -->
<!-- android:value="57ac7a0d56494912a0c28e651fa4a40a" /> -->
<meta-data
......@@ -54,6 +78,9 @@
<activity
android:name=".ui.AMapWmsActivity"
android:exported="false" />
<activity
android:name=".ui.WmsActivity"
android:exported="false" />
<activity
android:name=".ui.CalculateDistanceActivity"
android:exported="false" />
......
package com.sd.demo;
import com.amap.api.maps.model.UrlTileProvider;
import java.net.MalformedURLException;
import java.net.URL;
public class HeritageScopeTileProvider extends UrlTileProvider {
private String mRootUrl;
private static int titleSize = 256;
private final double initialResolution = 156543.03392804062;
private final double originShift = 20037508.342789244;
public HeritageScopeTileProvider(String url) {
super(titleSize, titleSize);
mRootUrl = url + "&service=WMS&transparent=true&&version=1.1.0&tiled=true&request=GetMap&srs=EPSG:3857&format=image/png&bbox=";
// mRootUrl = "http://192.168.59.216:8080/smartmap/wms?service=WMS&transparent=true&&version=1.1.0&tiled=true&request=GetMap&layers=yizhuang:yizhuang_avp&srs=EPSG:3857&format=image/png&bbox=";
// mRootUrl = "http://192.168.59.216:8080/tiles/{z}/{x}/{y}.png?layer=yizhuang:yizhuang_avp&service=WMS&transparent=true&&version=1.1.0&tiled=true&request=GetMap&srs=EPSG:3857&format=image/png&bbox=";
}
@Override
public URL getTileUrl(int x, int y, int level) {
try {
// System.out.println("-----------x = " + x + " y = " + y + " level = " + level);
String url = mRootUrl + TitleBounds2(x, y, level);
System.out.println("-----------url = " + url);
return new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
return null;
}
private String TitleBounds(int tx, int ty, int zoom) {
double minX = Pixels2Meters(tx * titleSize, zoom);
double maxY = -Pixels2Meters(ty * titleSize, zoom);
double maxX = Pixels2Meters((tx + 1) * titleSize, zoom);
double minY = -Pixels2Meters((ty + 1) * titleSize, zoom);
minX = Meters2Lon(minX);
minY = Meters2Lat(minY);
maxX = Meters2Lon(maxX);
maxY = Meters2Lat(maxY);
return minX + "," + Double.toString(minY) + "," + Double.toString(maxX) + "," + Double.toString(maxY) + "&width=256&height=256";
}
private double Pixels2Meters(int p, int zoom) {
return p * Resolution(zoom) - originShift;
}
private double Resolution(int zoom) {
return initialResolution / (Math.pow(2, zoom));
}
private double Meters2Lon(double mx) {
double lon = mx * (180.0 / originShift);
return lon;
}
private double Meters2Lat(double my) {
double lat = Math.atan(Math.sinh(my / originShift)) * (180.0 / Math.PI);
return lat;
}
private String TitleBounds2(int tx, int ty, int zoom) {
double max_tile = Math.pow(2, zoom); // 当前z级的最大瓦片索引(从0开始)
if (tx < 0 || tx >= max_tile || ty < 0 || ty >= max_tile) {
System.out.println("-----------瓦片索引超出范围 = ");
return "";
}
// -- 3. 计算EPSG:3857的bbox
double resolution = EPSG3857.size / max_tile; //-- 单个瓦片的宽度(米)
double minx = EPSG3857.origin + tx * resolution; // 左边界
double maxy = EPSG3857.max - ty * resolution; //-- 上边界
double maxx = minx + resolution; // -- 右边界
double miny = maxy - resolution; //-- 下边界
return minx + "," + miny + "," + maxx + "," + maxy + "&width=256&height=256";
}
private static class EPSG3857 {
static double origin = -20037508.342789244;
// 最小x和最小y
static double max = 20037508.342789244;
// 最大x和最大y
static double size = 40075016.68557849;
// 直径(2×max)
}
}
......@@ -77,8 +77,8 @@ public class LayerManage {
// 添加TileOverlay
tileOverlay = aMap.addTileOverlay(tileOverlayOptions);
// LatLng latLng = new LatLng(39.80870258484975, 116.5011886304098);
LatLng latLng = new LatLng(43.838481, 125.143485);//长春中心点坐标
aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 18.0f));
LatLng latLng = new LatLng(39.80913878, 116.50166926);//长春中心点坐标
aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 13.0f));
return tileOverlay;
}
......
......@@ -7,15 +7,14 @@ import androidx.appcompat.app.AppCompatActivity
import com.sd.api.MAP_TYPE
import com.sd.api.MSDKInitializer
import com.sd.api.OnSdkInitCb
import com.sd.api.location.MSLocation
import com.sd.demo.adapter.DemoListAdapter
import com.sd.demo.databinding.ActivityMainBinding
import com.sd.demo.ui.CalculateDistanceActivity
import com.sd.demo.ui.ChangeMapCenterAct
import com.sd.demo.ui.ControlActivity
import com.sd.demo.ui.DisplayMapActivity
import com.sd.demo.ui.GestureDemo
import com.sd.demo.ui.PartRoadActivity
import com.sd.demo.ui.ShowMyLocLandian
import com.sd.demo.ui.TCircelActivity
import com.sd.demo.ui.TDriveRouteActivity
import com.sd.demo.ui.TGpsActivity
......@@ -26,6 +25,7 @@ import com.sd.demo.ui.TMarkerActivity
import com.sd.demo.ui.TPoiSearchActivity
import com.sd.demo.ui.TPolygonActivity
import com.sd.demo.ui.TReGeocodeActivity
import com.sd.demo.ui.WmsActivity
/**
......@@ -57,6 +57,7 @@ class MainActivity : AppCompatActivity() {
DemoDetails("切换地图图层", TLayersActivity::class.java),
// DemoDetails("显示定位蓝点", ShowMyLocLandian::class.java),
DemoDetails("手势控制", GestureDemo::class.java),
DemoDetails("控件控制", ControlActivity::class.java),
DemoDetails("改变地图中心点,缩放级别", ChangeMapCenterAct::class.java),
DemoDetails("绘制Marker点", TMarkerActivity::class.java),
DemoDetails("绘制一条线(实线、虚线)", TLineActivity::class.java),
......@@ -65,8 +66,9 @@ class MainActivity : AppCompatActivity() {
DemoDetails("Poi检索(关键字,范围)", TPoiSearchActivity::class.java),
DemoDetails("逆地理编码", TReGeocodeActivity::class.java),
DemoDetails("两点间距离计算", CalculateDistanceActivity::class.java),
DemoDetails("定位,获取我的位置", TGpsActivity::class.java),
// DemoDetails("加载wms", AMapWmsActivity::class.java),
DemoDetails("加载wms", WmsActivity::class.java),
DemoDetails("驾车路线规划(导航)", TDriveRouteActivity::class.java),
DemoDetails("局部地图", PartRoadActivity::class.java),
......@@ -134,6 +136,10 @@ class MainActivity : AppCompatActivity() {
* @param type MINE=四维 AMAP=高德
*/
fun initMap(type: MAP_TYPE = MAP_TYPE.MINE) {
var url = "http://192.168.60.73:9999/tiles/{z}/{x}/{y}.png?layer=yizhuang:yizhuang_avp"
// var url = "http://192.168.60.73:9999/tiles/{z}/{x}/{y}.png?"
// var url = "http://192.168.59.216:8080/smartmap/yizhuang/wms?service=WMS&version=1.1.0&request=GetMap&layers=yizhuang:yizhuang_avp&bbox=116.49796295166,39.8062019348145,116.505592346191,39.8120422363281&width=256&height=256&srs=EPSG:3857&styles=&format=image/png"
// MSDKInitializer.setWmsUrl(url)
MSDKInitializer.initialize(this, type, object : OnSdkInitCb {
override fun onInitSuccess() {
println("--------onMapInitSuccess")
......
......@@ -4,6 +4,10 @@ import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import com.amap.api.maps.AMap
import com.amap.api.maps.CameraUpdateFactory
import com.amap.api.maps.model.LatLng
import com.amap.api.maps.model.TileOverlayOptions
import com.sd.demo.HeritageScopeTileProvider
import com.sd.demo.LayerManage
import com.sd.demo.databinding.ActivityAmapWmsBinding
......@@ -15,25 +19,26 @@ class AMapWmsActivity : AppCompatActivity() {
private var aMap: AMap? = null
// var url = "http://192.168.60.73:9999/tiles/{z}/{x}/{y}.png?layer=yizhuang:yizhuang_avp"
// var url = "http://192.168.59.216:8080/smartmap/gwc/demo/yizhuang_avp?gridSet=EPSG:4326&format=image/png"
var url = "http://192.168.60.73:9999/tiles/{z}/{x}/{y}.png?layer=yizhuang:yizhuang_avp"
var url: String =
"https://faw.cuscavp.cn:8443/geoserver/changchun/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=true"
//var url: String =
// "https://faw.cuscavp.cn:8443/geoserver/changchun/wms?service=WMS&version=1.1.0&request=GetMap&srs=EPSG:4326&styles="
//var url: String =
// "http://192.168.59.216/geoserver/wms?LAYERS=zx1&FORMAT=image%2Fpng&TRANSPARENT=TRUE&SERVICE=" +
// "WMS&VERSION=1.1.0&REQUEST=GetMap&STYLES=&SRS=EPSG:3857&BBOX="
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
// enableEdgeToEdge()
binding = ActivityAmapWmsBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.mapView.onCreate(savedInstanceState)
aMap = binding.mapView.map
layerManage = LayerManage(this, aMap)
layerManage?.addTileOverlay(url)
val tileProvider = HeritageScopeTileProvider(url)
aMap!!.addTileOverlay(TileOverlayOptions().tileProvider(tileProvider).zIndex(1f))
val latLng = LatLng(39.80913878, 116.50166926) //中心点坐标
aMap!!.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 16.0f))
// layerManage = LayerManage(this, aMap)
// layerManage?.addTileOverlay(url)
}
......
......@@ -29,13 +29,13 @@ class ChangeMapCenterAct : AppCompatActivity() {
binding.bt1.setOnClickListener {
//改变地图中心点,第二个参数是纬度,第三个参数是经度
MethodAdv.setMapCenter(mapReadView, binding.et1.text.toString().toDouble(), binding.et2.text.toString().toDouble())
MethodAdv.setMapCenter(binding.et1.text.toString().toDouble(), binding.et2.text.toString().toDouble())
}
//改变缩放级别
binding.bt2.setOnClickListener {
var zoom = binding.et3.text.toString().toFloat()
//改变缩放级别
MethodAdv.setMapZoom(mapReadView, zoom)
MethodAdv.setMapZoom(zoom)
}
// //设置地图边界范围
// binding.bt3.setOnClickListener {
......
package com.sd.demo.ui
import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.sd.api.maps.DelDrawInMap
import com.sd.api.maps.DrawInMap
import com.sd.api.ui.MapMultiView.OnMapReadyLis
import com.sd.api.ui.MapReadyView
import com.sd.demo.R
import com.sd.demo.databinding.ActivityControlBinding
import com.sd.demo.databinding.ActivityTmarkerBinding
import com.sd.demo.ui.TMarkerActivity
/**UI控件展示****/
class ControlActivity : AppCompatActivity() {
private lateinit var binding: ActivityControlBinding
var mapReadView: MapReadyView? = null
private var show = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// enableEdgeToEdge()
binding = ActivityControlBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.mapMultiView.addMapRenderCallback(object : OnMapReadyLis {
override fun onMapReady(mapReadyView: MapReadyView) {
this@ControlActivity.mapReadView = mapReadyView
}
})
binding.bt1.setOnClickListener {
show=!show
//显示指南针
binding.mapMultiView.setCompassView(show)
}
binding.bt2.setOnClickListener {
show=!show
//显示比例尺
binding.mapMultiView.setScaleControlsEnabled(show)
}
binding.bt3.setOnClickListener {
show=!show
//显示我的定位按钮
binding.mapMultiView.setMyLocationButtonEnabled(show)
}
}
}
\ No newline at end of file
......@@ -30,11 +30,11 @@ class GestureDemo : AppCompatActivity() {
binding.bt1.setOnClickListener {
//关闭(打开)旋转
Gestures.setRotateGesturesEnabled(mapReadView, false)
Gestures.setRotateGesturesEnabled(false)
}
binding.bt2.setOnClickListener {
//关闭(打开)倾斜开关
Gestures.setTiltGesturesEnabled(mapReadView, false)
Gestures.setTiltGesturesEnabled(false)
}
}
......
......@@ -4,8 +4,9 @@ import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope
import com.google.gson.Gson
import com.minedata.minenavi.mapdal.LatLng
import com.sd.api.bean.MyCLoc
import com.sd.api.maps.MSCalcuMapUtil
import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.parkroad.MsParkRoad
import com.sd.api.parkroad.OnPrAddCar
import com.sd.api.parkroad.PartType
......@@ -16,7 +17,6 @@ import com.sd.demo.bean.mock.MRoutes
import com.sd.demo.bean.mock.PerceptionBean
import com.sd.demo.databinding.ActivityPartRoadBinding
import com.sd.demo.utils.FileIoUtils
import com.sd.demo.utils.MyMapUtils
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlin.coroutines.cancellation.CancellationException
......@@ -36,7 +36,8 @@ class PartRoadActivity : AppCompatActivity() {
binding.mapMultiView.addMapRenderCallback(object : OnMapReadyLis {
override fun onMapReady(mapReadyView: MapReadyView) {
this@PartRoadActivity.mapReadView = mapReadyView
MsParkRoad.setCarRoadVM(mapReadyView)
//初始化局部视图控制器
MsParkRoad.setCarRoadVM(mapReadView)
}
})
setLis()
......@@ -110,12 +111,12 @@ class PartRoadActivity : AppCompatActivity() {
//预加载主车
binding.bt11.setOnClickListener {
// println("-----点击预加载模型")
MsParkRoad.preloadMainCar(assets,"car.glb")
MsParkRoad.preloadMainCar(assets, "car.glb")
}
//预加载感知物
binding.bt12.setOnClickListener {
MsParkRoad.preloadParticipant(assets,"truck.glb",PartType.CAR)
MsParkRoad.preloadParticipant(assets,"passenger.glb",PartType.PEOPLE)
MsParkRoad.preloadParticipant(assets, "truck.glb", PartType.CAR)
MsParkRoad.preloadParticipant(assets, "passenger.glb", PartType.PEOPLE)
}
}
......@@ -133,9 +134,9 @@ class PartRoadActivity : AppCompatActivity() {
if (index > 0) {
var p1 = mRoutes.rs.get(index - 1)
var pc = mRoutes.rs.get(index)
head = MyMapUtils.calculateBearing(
LatLng(p1[1], p1[0]),
LatLng(pc[1], pc[0])
head = MSCalcuMapUtil.calculateBearing(
MSLatLng(p1[1], p1[0]),
MSLatLng(pc[1], pc[0])
)
MyCLoc.instance.apply {
lat = it[1]
......@@ -148,7 +149,7 @@ class PartRoadActivity : AppCompatActivity() {
altitude = 20.802828
}
//地图底图,当前位置主车是否添加回调
//更新车辆位置.主车是否添加回调
MsParkRoad.updateMainCar(MyCLoc.instance, object : OnPrAddCar {
override fun onPrAddCar(isAdd: Boolean) {
println("------------isAdd = ${isAdd}")
......
......@@ -24,9 +24,6 @@ class ShowMyLocLandian : AppCompatActivity() {
binding = ActivityShowMyLocLandianBinding.inflate(layoutInflater)
setContentView(binding.root)
//获取接口功能实例
// var mapCoreApi = MapCoreApi.mapCoreApi
binding.mapMultiView.addMapRenderCallback(object : OnMapReadyLis {
override fun onMapReady(mapReadyView: MapReadyView) {
this@ShowMyLocLandian.mapReadView=mapReadyView
......
......@@ -6,6 +6,8 @@ import com.sd.api.ui.MapReadyView
import com.sd.api.maps.DelDrawInMap
import com.sd.api.maps.cdata.MSOverlay
import com.sd.api.maps.DrawInMap
import com.sd.api.maps.MsCircleOptions
import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.ui.MapMultiView.OnMapReadyLis
import com.sd.demo.databinding.ActivityTcircelBinding
......@@ -16,7 +18,7 @@ class TCircelActivity : AppCompatActivity() {
var mapReadView: MapReadyView? = null
//覆盖物对象
//圆形覆盖物对象
private var mSOverlay: MSOverlay? = null
//获取接口功能实例
......@@ -32,14 +34,17 @@ class TCircelActivity : AppCompatActivity() {
this@TCircelActivity.mapReadView = mapReadyView
//绘制一个圆形 116.3975,39.9079
mSOverlay = DrawInMap.drawCircle(mapReadView, 39.907923, 116.397512, 2000f)
var center = MSLatLng(39.9079, 116.3975)
//构造圆形绘制选型
var msCircleOptions = MsCircleOptions()
mSOverlay = DrawInMap.drawCircle(center, msCircleOptions)
}
})
//删除圆形
binding.bt1.setOnClickListener {
//删除圆形
DelDrawInMap.deleteCircle(mapReadView, mSOverlay)
DelDrawInMap.deleteCircle(mSOverlay)
}
}
......
......@@ -4,27 +4,25 @@ package com.sd.demo.ui
//import com.sd.maplibrary.core.MSRoutePlans.OnDriveRoute
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope
import com.google.gson.Gson
import com.minedata.minenavi.mapdal.NativeEnv
import com.minedata.minenavi.mapdal.NdsPoint
import com.minedata.minenavi.navi.GuidanceText
import com.minedata.minenavi.navi.NaviProgressData
import com.minedata.minenavi.navi.SmoothNaviData
import com.minedata.minenavi.navi.TmcSections
import com.minedata.minenavi.util.Tools
import com.sd.api.bean.DriverRouteBean
import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.bean.WayPoi
import com.sd.api.ui.MapReadyView
import com.sd.api.intfaces.OnNaviPresenterListener
import com.sd.api.maps.MSNavi
import com.sd.api.maps.MSRoutePlans
import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.maps.inters.OnDriveRoute
import com.sd.api.maps.mine.MineNai
import com.sd.api.maps.mine.MineRoutePlans
import com.sd.api.ui.MapMultiView.OnMapReadyLis
import com.sd.api.ui.MapReadyView
import com.sd.demo.databinding.ActivityTdriveRouteBinding
import com.sd.demo.utils.FileIoUtils
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
/***驾车路径规划***/
......@@ -34,6 +32,8 @@ class TDriveRouteActivity : AppCompatActivity(), OnNaviPresenterListener {
var mapReadView: MapReadyView? = null
var driverRouteBean: DriverRouteBean? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityTdriveRouteBinding.inflate(layoutInflater)
......@@ -44,7 +44,6 @@ class TDriveRouteActivity : AppCompatActivity(), OnNaviPresenterListener {
this@TDriveRouteActivity.mapReadView = mapReadyView
}
})
//开始路径规划
binding.starplan.setOnClickListener {
if (mapReadView == null) return@setOnClickListener
......@@ -59,11 +58,11 @@ class TDriveRouteActivity : AppCompatActivity(), OnNaviPresenterListener {
// passName = "中国联通软件研究院", passPoint = MSLatLng(39.809395470467024,116.50205317087261)
// )
//途经点
var wayPoi1 = WayPoi(
var wayPoi = WayPoi(
passName = "中国联通软件研究院",
passPoint = MSLatLng(39.808099975017825, 116.50229613984811)
)
var ways = listOf<WayPoi>(wayPoi1)
var ways = listOf<WayPoi>(wayPoi)
//开始路径规划
MSRoutePlans.drivingPathPlanning(
......@@ -72,9 +71,9 @@ class TDriveRouteActivity : AppCompatActivity(), OnNaviPresenterListener {
endPoint,
endName,
ways,
mapReadView,
object : OnDriveRoute {
override fun onDriverRoute(driverRouteBean: DriverRouteBean) {
this@TDriveRouteActivity.driverRouteBean = driverRouteBean
var mRouteBase = driverRouteBean.routeBase
var size = mRouteBase?.segmentNumber ?: 0
if (size > 2) {
......@@ -101,11 +100,11 @@ class TDriveRouteActivity : AppCompatActivity(), OnNaviPresenterListener {
// testDriverPlanaMAP()
}
//导航对象初始化
MSNavi.init()
//直接开始导航
binding.starnai.setOnClickListener {
if (mapReadView == null) return@setOnClickListener
//获取接口功能实例
// var mapCoreApi = MapCoreApi.mapCoreApi
// 起点坐标 116.3215,39.8919
val startPoint = MSLatLng(39.806898, 116.490682)
......@@ -131,6 +130,30 @@ class TDriveRouteActivity : AppCompatActivity(), OnNaviPresenterListener {
)
}
binding.simnai.setOnClickListener {
// 起点坐标
val startPoint = MSLatLng(39.80715003487552, 116.49872416608724)
MSNavi.startSimNavi(
this@TDriveRouteActivity.mapReadView,
startPoint,
driverRouteBean,
this
)
}
}
/**
* 刷新导航中的自车位置
*/
fun showNavingCarPosition(ndsPoint: NdsPoint?, heading: Float) {
synchronized(NativeEnv.SyncObject) {
if (ndsPoint == null) {
return
}
var mMapCar = MineNai.mMapCar
mMapCar?.setPositionNds(Tools.ndsPointToLatLng(ndsPoint))
mMapCar?.setHeading(heading)
}
}
......@@ -144,6 +167,16 @@ class TDriveRouteActivity : AppCompatActivity(), OnNaviPresenterListener {
//导航或者模拟导航时平滑跟踪
override fun onSmoothTracking(data: SmoothNaviData) {
println("------------TDriveRouteActivity.onSmoothTracking")
val carHeading =
if (data != null) data.carHeading else MineRoutePlans.mRouteBase!!.getStartDirection()
.toFloat()
val mapHeading = if (data != null) data.mapHeading else 0f
var mineMap = mapReadView?.mMineMap
showNavingCarPosition(data.carPos, carHeading)
mineMap?.setHeading(mapHeading)
mineMap?.setNdsPointToCenter(data.carPos.x, data.carPos.y)
}
//解析 naviProgressData 导航更新信息
......
......@@ -62,8 +62,8 @@ class TGpsActivity : AppCompatActivity() {
//我的位置
binding.bt1.setOnClickListener {
msMark = DrawInMap.drawMarket(mapReadView, lat, lng)
MethodAdv.setMapCenter(mapReadView, lat, lng)
msMark = DrawInMap.drawMarket(lat, lng)
MethodAdv.setMapCenter(lat, lng)
}
}
......
......@@ -12,6 +12,8 @@ import com.sd.api.highmap.HighMapApi
import com.sd.api.highmap.TileJsonBean
import com.sd.api.highmap.UnityPtc
import com.sd.api.highmap.WarnPtc
import com.sd.api.maps.MSCalcuMapUtil
import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.parkroad.PtcBean
import com.sd.api.ui.MapMultiView.OnMapReadyLis
import com.sd.api.ui.MapReadyView
......@@ -97,9 +99,9 @@ class THighMapActivity : AppCompatActivity() {
if (index > 0) {
var p1 = mRoutes.rs.get(index - 1)
var pc = mRoutes.rs.get(index)
head = MyMapUtils.calculateBearing(
LatLng(p1[1], p1[0]),
LatLng(pc[1], pc[0])
head = MSCalcuMapUtil.calculateBearing(
MSLatLng(p1[1], p1[0]),
MSLatLng(pc[1], pc[0])
)
if ((head - oldHead).absoluteValue < 45) {
bearing = head.toFloat()
......
......@@ -3,9 +3,9 @@ package com.sd.demo.ui
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.sd.api.ui.MapReadyView
import com.sd.api.maps.Layer
import com.sd.api.ui.MapMultiView.OnMapReadyLis
import com.sd.api.ui.MapReadyView
import com.sd.demo.R
import com.sd.demo.databinding.ActivityTlayersBinding
......@@ -37,11 +37,11 @@ class TLayersActivity : AppCompatActivity() {
binding.rg.setOnCheckedChangeListener { group, checkedId ->
when (checkedId) {
R.id.rb1 -> {//普通
Layer.toggleLayers(mapReadView, 1)
Layer.toggleLayers(1)
}
R.id.rb2 -> {//卫星
Layer.toggleLayers(mapReadView, 2)
Layer.toggleLayers(2)
}
}
}
......
......@@ -8,6 +8,7 @@ import com.sd.api.maps.DelDrawInMap
import com.sd.api.maps.cdata.MSOverlay
import com.sd.api.maps.DrawInMap
import com.sd.api.maps.MethodAdv
import com.sd.api.maps.MsPolylineOptions
import com.sd.api.ui.MapMultiView.OnMapReadyLis
import com.sd.demo.databinding.ActivityTlineBinding
......@@ -18,7 +19,7 @@ class TLineActivity : AppCompatActivity() {
var mapReadView: MapReadyView? = null
//覆盖物对象
//实线对象
private var mSOverlay: MSOverlay? = null
//虚线对象
......@@ -36,8 +37,8 @@ class TLineActivity : AppCompatActivity() {
override fun onMapReady(mapReadyView: MapReadyView) {
this@TLineActivity.mapReadView = mapReadyView
//绘制Marker点 116.3985,39.9079
DrawInMap.drawMarket(mapReadView, 39.907900, 116.398500)
MethodAdv.setMapCenter(mapReadView, 39.999391, 116.135972)
DrawInMap.drawMarket(39.907900, 116.398500)
MethodAdv.setMapCenter(39.999391, 116.135972)
}
})
......@@ -47,9 +48,8 @@ class TLineActivity : AppCompatActivity() {
MSLatLng(39.999391, 116.135972), MSLatLng(39.898323, 116.057694),
MSLatLng(39.900430, 116.265061), MSLatLng(39.955192, 116.140092)
)
mSOverlay =
// DrawInMapPro.drawPolyline(mapReadView, msLatLng, Color.argb(255, 255, 0, 255),5f)
DrawInMap.drawPolyline(mapReadView, msLatLng)
var msPolylineOptions = MsPolylineOptions()
mSOverlay = DrawInMap.drawPolyline(msLatLng, msPolylineOptions)
}
binding.bt2.setOnClickListener {
//画虚线
......@@ -57,18 +57,18 @@ class TLineActivity : AppCompatActivity() {
MSLatLng(39.999591, 116.135973), MSLatLng(39.898123, 116.057691),
MSLatLng(39.900230, 116.265062), MSLatLng(39.951192, 116.140090)
)
mSOverlay2 = DrawInMap.drawPolyline(
mapReadView,
msLatLng,
isDotted = true
)
//绘制线选项
var msPolylineOptions = MsPolylineOptions().apply {
isDotted = true //是否虚线
}
mSOverlay2 = DrawInMap.drawPolyline(msLatLng, msPolylineOptions)
}
//删除线
binding.bt3.setOnClickListener {
//删除实线
DelDrawInMap.deletePolyline(mapReadView, mSOverlay)
DelDrawInMap.deletePolyline(mSOverlay)
//删除虚线
DelDrawInMap.deletePolyline(mapReadView, mSOverlay2)
DelDrawInMap.deletePolyline(mSOverlay2)
}
......
......@@ -19,27 +19,23 @@ class TMarkerActivity : AppCompatActivity() {
//marker点实例
var msMark: MSMarker? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityTmarkerBinding.inflate(layoutInflater)
setContentView(binding.root)
//获取接口功能实例
// var mapCoreApi = MapCoreApi.mapCoreApi
binding.mapMultiView.addMapRenderCallback(object : OnMapReadyLis {
override fun onMapReady(mapReadyView: MapReadyView) {
this@TMarkerActivity.mapReadView = mapReadyView
//绘制Marker点 116.3985,39.9079
msMark = DrawInMap.drawMarket(mapReadView, 39.907900, 116.398500)
msMark = DrawInMap.drawMarket(39.907900, 116.398500)
// MSMethodAdv.setMapCenter(mapReadView, 39.977290, 116.337000)
}
})
binding.bt1.setOnClickListener {
//删除Marker点
DelDrawInMap.deleteMarker(mapReadView, msMark)
DelDrawInMap.deleteMarker(msMark)
}
}
......
......@@ -8,6 +8,7 @@ import com.sd.api.maps.DelDrawInMap
import com.sd.api.maps.cdata.MSOverlay
import com.sd.api.maps.DrawInMap
import com.sd.api.maps.MethodAdv
import com.sd.api.maps.MsPolygonOptions
import com.sd.api.ui.MapMultiView.OnMapReadyLis
import com.sd.demo.databinding.ActivityTpolygonBinding
......@@ -17,6 +18,7 @@ class TPolygonActivity : AppCompatActivity() {
private lateinit var binding: ActivityTpolygonBinding
var mapReadView: MapReadyView? = null
//覆盖物对象
private var mSOverlay: MSOverlay? = null
//获取接口功能实例
......@@ -36,16 +38,20 @@ class TPolygonActivity : AppCompatActivity() {
MSLatLng(39.993391, 116.135272), MSLatLng(39.808323, 116.057604),
MSLatLng(39.904430, 116.265061), MSLatLng(39.950192, 116.140002)
)
mSOverlay = DrawInMap.drawPolygon(mapReadView, mspLatLng,true)
//构造面参数
var msPolygonOptions = MsPolygonOptions().apply {
dLine = true
}
mSOverlay = DrawInMap.drawPolygon(mspLatLng, msPolygonOptions)
MethodAdv.setMapCenter(mapReadView, 39.993391, 116.135272)
MethodAdv.setMapCenter(39.993391, 116.135272)
}
})
//删除面
binding.bt1.setOnClickListener {
//删除面
DelDrawInMap.deletePolygon(mapReadView, mSOverlay)
DelDrawInMap.deletePolygon(mSOverlay)
}
}
......
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