Commit f8483b51 authored by p x's avatar p x
Browse files

对照代码写文档

parent aa564e16
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
id("kotlin-kapt")
}
android {
......@@ -10,7 +11,7 @@ android {
defaultConfig {
applicationId = "com.sd.mapmultiengine"
minSdk = 29
targetSdk = 35
// targetSdk = 35
versionCode = 1
versionName = "1.0"
......@@ -50,6 +51,7 @@ dependencies {
implementation(libs.androidx.constraintlayout)
implementation(libs.androidx.navigation.fragment.ktx)
implementation(libs.androidx.navigation.ui.ktx)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
......
......@@ -14,6 +14,14 @@
tools:targetApi="31">
<meta-data
android:name="com.minedata.minenavi.apikey"
android:value="57ac7a0d56494912a0c28e651fa4a40a" />
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="3b7d009011b97dcc3815a93e8ddfcd77" />
<activity
android:name=".ui.ShowCarOnlineActivity"
android:exported="false" />
......
......@@ -32,6 +32,11 @@ import com.sd.mapmultiengine.ui.TPolygonActivity
import com.sd.mapmultiengine.ui.TReGeocodeActivity
/**
* Main activity
*
* @constructor Create empty Main activity
*/
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
......@@ -39,6 +44,13 @@ class MainActivity : AppCompatActivity() {
private var demoListAdapter = DemoListAdapter()
/**
* Demo details
*
* @property title
* @property activityClass
* @constructor Create empty Demo details
*/
class DemoDetails(
var title: String,
var activityClass: Class<out Activity>?
......@@ -63,10 +75,10 @@ class MainActivity : AppCompatActivity() {
DemoDetails("驾车路线规划", TDriveRouteActivity::class.java),
DemoDetails("业务相关", null),
DemoDetails("在线地图显示小车", ShowCarOnlineActivity::class.java),
// DemoDetails("业务相关", null),
// DemoDetails("在线地图显示小车", ShowCarOnlineActivity::class.java),
DemoDetails("测试高德加载WMS", AMapWmsActivity::class.java),
// DemoDetails("测试高德加载WMS", AMapWmsActivity::class.java),
)
......@@ -117,6 +129,12 @@ class MainActivity : AppCompatActivity() {
}
/**
* Init map
*
* @param type MINE=四维 AMAP=高德
*/
fun initMap(type: MAP_TYPE = MAP_TYPE.AMAP) {
MSDKInitializer.initializeMap(this, type, object : OnSdkInitCb {
override fun onInitSuccess() {
......
......@@ -71,7 +71,7 @@ class TextMainActivity : AppCompatActivity() {
//改变缩放级别
MSMethodAdv.setMapZoom(mapReadView, 10f)
//绘制Marker点
MSCanvesInMap.drawMarket(this,mapReadView, 39.977290, 116.337000)
MSCanvesInMap.drawMarket(mapReadView, 39.977290, 116.337000)
//绘制一条线
var msLatLng = listOf<MSLatLng>(
MSLatLng(39.999391, 116.135972), MSLatLng(39.898323, 116.057694),
......@@ -91,7 +91,7 @@ class TextMainActivity : AppCompatActivity() {
//POi范围搜索
// testPoiSearchBound()
//逆地理编码
MSRegeoCode.geoCoder(this, 41.80196, 123.43326, object : MSRegeoCode.MSOnRegeo {
MSRegeoCode.geoCoder(41.80196, 123.43326, object : MSRegeoCode.MSOnRegeo {
override fun onRegeo(regeocodeRes: RegeocodeRes?) {
var a = 0
}
......@@ -101,14 +101,12 @@ class TextMainActivity : AppCompatActivity() {
//poi搜索
fun testPoiSearch() {
MSPoiSearch.startPoiSearch(
this,
"北京大学",
41.80196,
123.43326,
object : MSPoiSearch.OnMSPoiSearchLis {
override fun onPoiLis(
poiList: List<PoiSearchRes>,
resCode: Int
poiList: List<PoiSearchRes>
) {
// println("------------poiList = ${poiList}")
}
......@@ -118,15 +116,13 @@ class TextMainActivity : AppCompatActivity() {
//poi 范围搜索
fun testPoiSearchBound() {
MSPoiSearch.startPoiSearchBound(
this,
"北京大学",
39.977290,
116.337000,
25000,
object : MSPoiSearch.OnMSPoiSearchLis {
override fun onPoiLis(
poiList: List<PoiSearchRes>,
resCode: Int
poiList: List<PoiSearchRes>
) {
// println("------------poiList = ${poiList}")
}
......@@ -135,7 +131,7 @@ class TextMainActivity : AppCompatActivity() {
//定位
fun testGpsLoc() {
MSGpsLocation.initLoc(this)
MSGpsLocation.initLoc()
MSGpsLocation.setOnMsGpsLoc(object : MSGpsLocation.OnMsGpsLoc{
override fun onMsGpsLoc(mSLocBean: MSLocBean) {
println("---------mSLocBean = ${mSLocBean}")
......
......@@ -59,8 +59,13 @@ class PoiAdapter : BaseQuickAdapter<PoiSearchRes, PoiAdapter.PoiSH>() {
binding.poiDes.text = bean.snippet
// binding.tvDistan.text=bean.distance.toString()
val distanceBean: DistanceBean = MyGeoTools.cauMyLocDistance(bean.lat, bean.lng)
binding.tvDistan.text = "${distanceBean.distanceValue}${distanceBean.distanceUnit}"
if (bean.distance == 0){
val distanceBean: DistanceBean = MyGeoTools.cauMyLocDistance(0.0,0.0,bean.lat, bean.lng)
binding.tvDistan.text = "${distanceBean.distanceValue}${distanceBean.distanceUnit}"
}else{
binding.tvDistan.text = "${bean.distance}米"
}
}
fun setListener() {
......
package com.sd.mapmultiengine.ui
import android.os.Bundle
import android.widget.Toast
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.sd.maplibrary.bean.MSLatLng
import com.sd.maplibrary.core.MSMapUtil
import com.sd.maplibrary.core.MSCalcuMapUtil
import com.sd.maplibrary.core.MapReadyView
import com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import com.sd.mapmultiengine.R
import com.sd.mapmultiengine.databinding.ActivityCalculateDistanceBinding
import com.sd.mapmultiengine.databinding.ActivityDisplayMapBinding
import com.sd.mapmultiengine.ui.DisplayMapActivity
import com.sd.mapmultiengine.utils.ToastHelper
/****两点间距离计算***/
......@@ -38,10 +31,10 @@ class CalculateDistanceActivity : AppCompatActivity() {
binding.bt1.setOnClickListener {
var latLng1=MSLatLng(binding.et1.text.toString().toDouble(),binding.et2.text.toString().toDouble())
var latLng2=MSLatLng(binding.et3.text.toString().toDouble(),binding.et4.text.toString().toDouble())
var dis=MSMapUtil.calculateLineDistance(mapReadView,latLng1,latLng2)
println("----计算2点距离 = ${dis}")
ToastHelper.showShort(this@CalculateDistanceActivity,"距离= $dis")
// 计算2点距离
var dis=MSCalcuMapUtil.calculateLineDistance(latLng1,latLng2)
println("----计算2点距离 = ${dis}")
ToastHelper.showShort(this@CalculateDistanceActivity,"距离= ${dis}米")
}
}
......
......@@ -29,12 +29,13 @@ class ChangeMapCenterAct : AppCompatActivity() {
binding.bt1.setOnClickListener {
//改变地图中心点
//改变地图中心点,第二个参数是纬度,第三个参数是经度
MSMethodAdv.setMapCenter(mapReadView, binding.et1.text.toString().toDouble(), binding.et2.text.toString().toDouble())
}
//改变缩放级别
binding.bt2.setOnClickListener {
var zoom = binding.et3.text.toString().toFloat()
//改变缩放级别
MSMethodAdv.setMapZoom(mapReadView, zoom)
}
// //设置地图边界范围
......
......@@ -29,11 +29,11 @@ class GestureDemo : AppCompatActivity() {
})
binding.bt1.setOnClickListener {
//关闭旋转
//关闭(打开)旋转
MSGestures.setRotateGesturesEnabled(mapReadView!!, false)
}
binding.bt2.setOnClickListener {
//关闭倾斜开关
//关闭(打开)倾斜开关
MSGestures.setTiltGesturesEnabled(mapReadView!!, false)
}
......
......@@ -49,7 +49,7 @@ class ShowCarOnlineActivity : AppCompatActivity() {
}
//初始化定位
MSGpsLocation.initLoc(this)
MSGpsLocation.initLoc()
//设置定位回调
MSGpsLocation.setOnMsGpsLoc(object : MSGpsLocation.OnMsGpsLoc {
override fun onMsGpsLoc(mSLocBean: MSLocBean) {
......
......@@ -15,6 +15,7 @@ class TCircelActivity : AppCompatActivity() {
var mapReadView: MapReadyView? = null
//覆盖物对象
private var mSOverlay: MSOverlay? = null
override fun onCreate(savedInstanceState: Bundle?) {
......@@ -33,7 +34,8 @@ class TCircelActivity : AppCompatActivity() {
//删除圆形
binding.bt1.setOnClickListener {
MSCanvesInMap.deleteCircle(mapReadView,mSOverlay)
//删除圆形
MSCanvesInMap.deleteCircle(mapReadView, mSOverlay)
}
}
......
......@@ -31,7 +31,6 @@ import com.sd.maplibrary.MAP_TYPE
import com.sd.maplibrary.MSDKInitializer
import com.sd.maplibrary.bean.DriverRouteBean
import com.sd.maplibrary.bean.MSLatLng
import com.sd.maplibrary.bean.RouteOver
import com.sd.maplibrary.bean.WayPoi
import com.sd.maplibrary.core.MSRoutePlans
import com.sd.maplibrary.core.MSRoutePlans.OnDriveRoute
......@@ -60,7 +59,7 @@ class TDriveRouteActivity : AppCompatActivity() {
})
//初始化并设置监听
MSRoutePlans.addPlanLis(this, onDriveRoute)
MSRoutePlans.addPlanLis(onDriveRoute)
//开始规划
binding.starplan.setOnClickListener {
if (mapReadView == null)
......@@ -77,7 +76,7 @@ class TDriveRouteActivity : AppCompatActivity() {
}
var ways = listOf<WayPoi>(wayPoi)
//开始路径规划
MSRoutePlans.drivingPathPlanning(this, startPoint, endPoint, ways, endName)
MSRoutePlans.drivingPathPlanning(startPoint, endPoint, ways, endName)
// testDriverPlan()
// testDriverPlanaMAP()
......@@ -88,30 +87,10 @@ class TDriveRouteActivity : AppCompatActivity() {
//算路结果回调
private var onDriveRoute = object : OnDriveRoute {
override fun onDriverRoute(driverRouteBean: DriverRouteBean) {
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {//开始绘制
//删除已存在的路径图层
// if (RouteOver.instance.route != null) {
// mapReadView?.mMineMap?.removeOverlay(RouteOver.instance.route)
// }
MSRoutePlans.drawPlanPath(
mapReadView,
driverRouteBean,
this@TDriveRouteActivity
)
}
MAP_TYPE.AMAP -> {
// 清理地图上的所有覆盖物
// mapReadView?.aMap?.clear()
MSRoutePlans.drawPlanPath(
mapReadView,
driverRouteBean,
this@TDriveRouteActivity
)
}
}
MSRoutePlans.drawPlanPath(
mapReadView,
driverRouteBean
)
}
}
......
......@@ -40,7 +40,7 @@ class TGpsActivity : AppCompatActivity() {
})
//初始化定位
MSGpsLocation.initLoc(this)
MSGpsLocation.initLoc()
//设置回调
MSGpsLocation.setOnMsGpsLoc(object : MSGpsLocation.OnMsGpsLoc {
override fun onMsGpsLoc(mSLocBean: MSLocBean) {
......@@ -61,12 +61,12 @@ class TGpsActivity : AppCompatActivity() {
})
//开启定位
binding.bt.setOnClickListener {
//开启定位
MSGpsLocation.starLoc()
}
//我的位置
binding.bt1.setOnClickListener {
msMark =
MSCanvesInMap.drawMarket(this, mapReadView, lat, lng)
msMark = MSCanvesInMap.drawMarket(mapReadView, lat, lng)
MSMethodAdv.setMapCenter(mapReadView, lat, lng)
}
}
......@@ -81,7 +81,7 @@ class TGpsActivity : AppCompatActivity() {
override fun onDestroy() {
super.onDestroy()
//清理资源
MSGpsLocation.cleans()
MSGpsLocation.cleansLoc()
}
}
\ No newline at end of file
......@@ -34,10 +34,10 @@ class TLayersActivity : AppCompatActivity() {
binding.rg.setOnCheckedChangeListener { group, checkedId ->
when (checkedId) {
R.id.rb1 -> {
R.id.rb1 -> {//普通
MSLayers.changeLayers(mapReadView,1)
}
R.id.rb2 -> {
R.id.rb2 -> {//卫星
MSLayers.changeLayers(mapReadView,2)
}
}
......
......@@ -18,7 +18,9 @@ class TLineActivity : AppCompatActivity() {
var mapReadView: MapReadyView? = null
//覆盖物对象
private var mSOverlay: MSOverlay? = null
//虚线对象
private var mSOverlay2: MSOverlay? = null
override fun onCreate(savedInstanceState: Bundle?) {
......@@ -48,8 +50,8 @@ class TLineActivity : AppCompatActivity() {
binding.bt2.setOnClickListener {
//画虚线
var msLatLng = listOf<MSLatLng>(
MSLatLng(39.999591, 116.135972), MSLatLng(39.898123, 116.057694),
MSLatLng(39.900230, 116.265061), MSLatLng(39.951192, 116.140092)
MSLatLng(39.999591, 116.135973), MSLatLng(39.898123, 116.057691),
MSLatLng(39.900230, 116.265062), MSLatLng(39.951192, 116.140090)
)
mSOverlay2 = MSCanvesInMap.drawPolyline(
mapReadView,
......@@ -61,8 +63,10 @@ class TLineActivity : AppCompatActivity() {
}
//删除线
binding.bt3.setOnClickListener {
//删除实线
MSCanvesInMap.deletePolyline(mapReadView,mSOverlay)
// MSCanvesInMap.deletePolyline(mapReadView,mSOverlay2)
//删除虚线
MSCanvesInMap.deletePolyline(mapReadView,mSOverlay2)
}
......
......@@ -16,6 +16,7 @@ class TMarkerActivity : AppCompatActivity() {
var mapReadView: MapReadyView? = null
//marker点实例
var msMark: MSMarker? = null
......@@ -28,14 +29,14 @@ class TMarkerActivity : AppCompatActivity() {
override fun onMapReady(mapReadyView: MapReadyView) {
this@TMarkerActivity.mapReadView = mapReadyView
//绘制Marker点 116.3985,39.9079
msMark =
MSCanvesInMap.drawMarket(this@TMarkerActivity, mapReadView, 39.907900, 116.398500)
msMark = MSCanvesInMap.drawMarket(mapReadView, 39.907900, 116.398500)
// MSMethodAdv.setMapCenter(mapReadView, 39.977290, 116.337000)
}
})
binding.bt1.setOnClickListener {
MSCanvesInMap.deleteMarker(mapReadView,msMark!!)
//删除Marker点
MSCanvesInMap.deleteMarker(mapReadView, msMark)
}
......
......@@ -53,16 +53,16 @@ class TPoiSearchActivity : AppCompatActivity() {
//poi搜索
fun testPoiSearch(keyword: String) {
//poi搜索
MSPoiSearch.startPoiSearch(
this,
keyword,
41.80196,
123.43326,
object : MSPoiSearch.OnMSPoiSearchLis {
override fun onPoiLis(
poiList: List<PoiSearchRes>,
resCode: Int
poiList: List<PoiSearchRes>
) {
//自定义适配器展示列表
poiAdapter.submitList(poiList)
}
})
......@@ -70,16 +70,15 @@ class TPoiSearchActivity : AppCompatActivity() {
//poi 范围搜索
fun testPoiSearchBound(keyword: String) {
//poi 范围搜索
MSPoiSearch.startPoiSearchBound(
this,
keyword,
39.977290,
116.337000,
binding.et1.text.toString().toInt(),
object : MSPoiSearch.OnMSPoiSearchLis {
override fun onPoiLis(
poiList: List<PoiSearchRes>,
resCode: Int
poiList: List<PoiSearchRes>
) {
poiAdapter.submitList(poiList)
}
......
......@@ -10,13 +10,13 @@ import com.sd.maplibrary.core.MapReadyView
import com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import com.sd.mapmultiengine.databinding.ActivityTpolygonBinding
/*****/
/**绘制一个面***/
class TPolygonActivity : AppCompatActivity() {
private lateinit var binding: ActivityTpolygonBinding
var mapReadView: MapReadyView? = null
//覆盖物对象
private var mSOverlay: MSOverlay? = null
override fun onCreate(savedInstanceState: Bundle?) {
......@@ -41,6 +41,7 @@ class TPolygonActivity : AppCompatActivity() {
//删除面
binding.bt1.setOnClickListener {
//删除面
MSCanvesInMap.deletePolygon(mapReadView, mSOverlay)
}
......
......@@ -28,7 +28,7 @@ class TReGeocodeActivity : AppCompatActivity() {
var lat = binding.et2.text.toString().toDouble()
var lng = binding.et1.text.toString().toDouble()
//逆地理编码
MSRegeoCode.geoCoder(this, lat, lng, object : MSRegeoCode.MSOnRegeo {
MSRegeoCode.geoCoder(lat, lng, object : MSRegeoCode.MSOnRegeo {
override fun onRegeo(regeocodeRes: RegeocodeRes?) {
var sb = StringBuilder()
sb.append(regeocodeRes?.province+" ")
......
......@@ -8,19 +8,30 @@ object MyGeoTools {
/**
* 计算我的位置到目标的直线距离
* @param flat 起点纬度
* @param flng 起点经度
* @param lat 目标点纬度
* @param lng 目标点经度
* @return 距离信息对象,包含格式化后的距离数据
*/
fun cauMyLocDistance(lat: Double,lng: Double): DistanceBean {
fun cauMyLocDistance(flat: Double, flng: Double, lat: Double, lng: Double): DistanceBean {
if (flng == 0.0 || flng == 0.0) {
return DistanceBean("0","")
}
var mUtils = Utils()
var results = FloatArray(1)
// 使用Android Location API计算两点间直线距离
Location.distanceBetween(
MyContants.CUR_LAT,
MyContants.CUR_LNG,
flat,
flng,
lat,
lng,
results
)
var distanceInMeters = results[0]
// 将距离转换为整数并格式化为距离对象
val distanceBean: DistanceBean = mUtils.formatDistance(distanceInMeters.toInt(), false)
return distanceBean
}
}
\ No newline at end of file
......@@ -2,7 +2,7 @@
buildscript {
dependencies {
classpath("org.jetbrains.dokka:dokka-gradle-plugin:2.0.0")
classpath("org.jetbrains.dokka:dokka-base:2.0.0")
}
}
......
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