Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
p x
MapMultiEngine
Commits
8a1780fa
Commit
8a1780fa
authored
Jul 29, 2025
by
p x
Browse files
调试DEMO
parent
7a1a8e98
Changes
31
Hide whitespace changes
Inline
Side-by-side
app/src/main/AndroidManifest.xml
View file @
8a1780fa
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
>
xmlns:tools=
"http://schemas.android.com/tools"
>
<!-- 打开关闭sdcard的权限 -->
<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"
/>
<!-- 程序访问粗略位置 -->
<uses-permission
android:name=
"android.permission.ACCESS_COARSE_LOCATION"
/>
<!-- 允许用户访问精确位置 -->
<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.READ_EXTERNAL_STORAGE"
/>
<!-- 允许程序写入外部存储设备 -->
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
<!-- 允许程序读取所有者数据 -->
<!-- Android 11+ 所有文件访问权限 -->
<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"
/>
<application
<application
android:allowBackup=
"true"
android:allowBackup=
"true"
...
@@ -37,6 +12,18 @@
...
@@ -37,6 +12,18 @@
android:supportsRtl=
"true"
android:supportsRtl=
"true"
android:theme=
"@style/Theme.MapMultiEngine"
android:theme=
"@style/Theme.MapMultiEngine"
tools:targetApi=
"31"
>
tools:targetApi=
"31"
>
<activity
android:name=
".ui.DisplayMapActivity"
android:exported=
"false"
/>
<activity
android:name=
".ui.TGpsActivity"
android:exported=
"false"
/>
<activity
android:name=
".ui.TReGeocodeActivity"
android:exported=
"false"
/>
<activity
android:name=
".ui.TPoiSearchActivity"
android:exported=
"false"
/>
<activity
<activity
android:name=
".ui.TLayersActivity"
android:name=
".ui.TLayersActivity"
android:exported=
"false"
/>
android:exported=
"false"
/>
...
...
app/src/main/java/com/sd/mapmultiengine/MainActivity.kt
View file @
8a1780fa
...
@@ -13,14 +13,18 @@ import com.sd.maplibrary.OnSdkInitCb
...
@@ -13,14 +13,18 @@ import com.sd.maplibrary.OnSdkInitCb
import
com.sd.mapmultiengine.adapter.DemoListAdapter
import
com.sd.mapmultiengine.adapter.DemoListAdapter
import
com.sd.mapmultiengine.databinding.ActivityMainBinding
import
com.sd.mapmultiengine.databinding.ActivityMainBinding
import
com.sd.mapmultiengine.ui.ChangeMapCenterAct
import
com.sd.mapmultiengine.ui.ChangeMapCenterAct
import
com.sd.mapmultiengine.ui.DisplayMapActivity
import
com.sd.mapmultiengine.ui.GestureDemo
import
com.sd.mapmultiengine.ui.GestureDemo
import
com.sd.mapmultiengine.ui.ShowMyLocLandian
import
com.sd.mapmultiengine.ui.ShowMyLocLandian
import
com.sd.mapmultiengine.ui.TCircelActivity
import
com.sd.mapmultiengine.ui.TCircelActivity
import
com.sd.mapmultiengine.ui.TDriveRouteActivity
import
com.sd.mapmultiengine.ui.TDriveRouteActivity
import
com.sd.mapmultiengine.ui.TGpsActivity
import
com.sd.mapmultiengine.ui.TLayersActivity
import
com.sd.mapmultiengine.ui.TLayersActivity
import
com.sd.mapmultiengine.ui.TLineActivity
import
com.sd.mapmultiengine.ui.TLineActivity
import
com.sd.mapmultiengine.ui.TMarkerActivity
import
com.sd.mapmultiengine.ui.TMarkerActivity
import
com.sd.mapmultiengine.ui.TPoiSearchActivity
import
com.sd.mapmultiengine.ui.TPolygonActivity
import
com.sd.mapmultiengine.ui.TPolygonActivity
import
com.sd.mapmultiengine.ui.TReGeocodeActivity
class
MainActivity
:
AppCompatActivity
()
{
class
MainActivity
:
AppCompatActivity
()
{
...
@@ -36,6 +40,7 @@ class MainActivity : AppCompatActivity() {
...
@@ -36,6 +40,7 @@ class MainActivity : AppCompatActivity() {
)
)
private
var
demos
=
listOf
(
private
var
demos
=
listOf
(
DemoDetails
(
"展示地图"
,
DisplayMapActivity
::
class
.
java
),
DemoDetails
(
"切换地图图层"
,
TLayersActivity
::
class
.
java
),
DemoDetails
(
"切换地图图层"
,
TLayersActivity
::
class
.
java
),
DemoDetails
(
"显示定位蓝点"
,
ShowMyLocLandian
::
class
.
java
),
DemoDetails
(
"显示定位蓝点"
,
ShowMyLocLandian
::
class
.
java
),
DemoDetails
(
"手势控制"
,
GestureDemo
::
class
.
java
),
DemoDetails
(
"手势控制"
,
GestureDemo
::
class
.
java
),
...
@@ -44,9 +49,13 @@ class MainActivity : AppCompatActivity() {
...
@@ -44,9 +49,13 @@ class MainActivity : AppCompatActivity() {
DemoDetails
(
"绘制一条线(实线、虚线)"
,
TLineActivity
::
class
.
java
),
DemoDetails
(
"绘制一条线(实线、虚线)"
,
TLineActivity
::
class
.
java
),
DemoDetails
(
"绘制圆形"
,
TCircelActivity
::
class
.
java
),
DemoDetails
(
"绘制圆形"
,
TCircelActivity
::
class
.
java
),
DemoDetails
(
"绘制一个面"
,
TPolygonActivity
::
class
.
java
),
DemoDetails
(
"绘制一个面"
,
TPolygonActivity
::
class
.
java
),
DemoDetails
(
"Poi检索(关键字,范围)"
,
TPoiSearchActivity
::
class
.
java
),
DemoDetails
(
"逆地理编码"
,
TReGeocodeActivity
::
class
.
java
),
DemoDetails
(
"定位"
,
TGpsActivity
::
class
.
java
),
DemoDetails
(
"驾车路线"
,
TDriveRouteActivity
::
class
.
java
)
DemoDetails
(
"驾车路线规划"
,
TDriveRouteActivity
::
class
.
java
),
)
)
...
@@ -70,7 +79,7 @@ class MainActivity : AppCompatActivity() {
...
@@ -70,7 +79,7 @@ class MainActivity : AppCompatActivity() {
}
}
fun
initMap
()
{
fun
initMap
()
{
MSDKInitializer
.
initializeMap
(
this
,
MAP_TYPE
.
AMAP
,
object
:
OnSdkInitCb
{
MSDKInitializer
.
initializeMap
(
this
,
MAP_TYPE
.
MINE
,
object
:
OnSdkInitCb
{
override
fun
onInitSuccess
()
{
override
fun
onInitSuccess
()
{
println
(
"--------onMapInitSuccess"
)
println
(
"--------onMapInitSuccess"
)
}
}
...
...
app/src/main/java/com/sd/mapmultiengine/TextMainActivity.kt
View file @
8a1780fa
...
@@ -12,7 +12,6 @@ import com.sd.maplibrary.bean.MSLocBean
...
@@ -12,7 +12,6 @@ import com.sd.maplibrary.bean.MSLocBean
import
com.sd.maplibrary.bean.PoiSearchRes
import
com.sd.maplibrary.bean.PoiSearchRes
import
com.sd.maplibrary.bean.RegeocodeRes
import
com.sd.maplibrary.bean.RegeocodeRes
import
com.sd.maplibrary.core.MSCanvesInMap
import
com.sd.maplibrary.core.MSCanvesInMap
import
com.sd.maplibrary.core.MSGestures
import
com.sd.maplibrary.core.MSGpsLocation
import
com.sd.maplibrary.core.MSGpsLocation
import
com.sd.maplibrary.core.MSMethodAdv
import
com.sd.maplibrary.core.MSMethodAdv
import
com.sd.maplibrary.core.MSPoiSearch
import
com.sd.maplibrary.core.MSPoiSearch
...
@@ -71,21 +70,21 @@ class TextMainActivity : AppCompatActivity() {
...
@@ -71,21 +70,21 @@ class TextMainActivity : AppCompatActivity() {
//改变缩放级别
//改变缩放级别
MSMethodAdv
.
setMapZoom
(
mapReadView
,
10f
)
MSMethodAdv
.
setMapZoom
(
mapReadView
,
10f
)
//绘制Marker点
//绘制Marker点
MSCanvesInMap
.
dMarket
(
this
,
mapReadView
,
39.977290
,
116.337000
)
MSCanvesInMap
.
d
raw
Market
(
this
,
mapReadView
,
39.977290
,
116.337000
)
//绘制一条线
//绘制一条线
var
msLatLng
=
listOf
<
MSLatLng
>(
var
msLatLng
=
listOf
<
MSLatLng
>(
MSLatLng
(
39.999391
,
116.135972
),
MSLatLng
(
39.898323
,
116.057694
),
MSLatLng
(
39.999391
,
116.135972
),
MSLatLng
(
39.898323
,
116.057694
),
MSLatLng
(
39.900430
,
116.265061
),
MSLatLng
(
39.955192
,
116.140092
)
MSLatLng
(
39.900430
,
116.265061
),
MSLatLng
(
39.955192
,
116.140092
)
)
)
MSCanvesInMap
.
dPolyline
(
mapReadView
,
msLatLng
)
MSCanvesInMap
.
d
raw
Polyline
(
mapReadView
,
msLatLng
)
//绘制一个圆形
//绘制一个圆形
MSCanvesInMap
.
dCircle
(
mapReadView
,
39.997290
,
116.337000
,
2000f
)
MSCanvesInMap
.
d
raw
Circle
(
mapReadView
,
39.997290
,
116.337000
,
2000f
)
//绘制一个面
//绘制一个面
var
mspLatLng
=
listOf
<
MSLatLng
>(
var
mspLatLng
=
listOf
<
MSLatLng
>(
MSLatLng
(
39.993391
,
116.135272
),
MSLatLng
(
39.808323
,
116.057604
),
MSLatLng
(
39.993391
,
116.135272
),
MSLatLng
(
39.808323
,
116.057604
),
MSLatLng
(
39.904430
,
116.265061
),
MSLatLng
(
39.950192
,
116.140002
)
MSLatLng
(
39.904430
,
116.265061
),
MSLatLng
(
39.950192
,
116.140002
)
)
)
MSCanvesInMap
.
dPolygon
(
mapReadView
,
mspLatLng
)
MSCanvesInMap
.
d
raw
Polygon
(
mapReadView
,
mspLatLng
)
//Poi搜索
//Poi搜索
// testPoiSearch()
// testPoiSearch()
//POi范围搜索
//POi范围搜索
...
...
app/src/main/java/com/sd/mapmultiengine/adapter/PoiAdapter.kt
View file @
8a1780fa
...
@@ -11,13 +11,13 @@ import androidx.core.text.set
...
@@ -11,13 +11,13 @@ import androidx.core.text.set
import
androidx.recyclerview.widget.RecyclerView
import
androidx.recyclerview.widget.RecyclerView
import
com.chad.library.adapter4.BaseQuickAdapter
import
com.chad.library.adapter4.BaseQuickAdapter
import
com.minedata.minenavi.addons.DistanceBean
import
com.minedata.minenavi.addons.DistanceBean
import
com.sd.map
multiengine
.bean.PoiSearch
Bean
import
com.sd.map
library
.bean.PoiSearch
Res
import
com.sd.mapmultiengine.databinding.PoiSearchListItemBinding
import
com.sd.mapmultiengine.databinding.PoiSearchListItemBinding
import
com.sd.mapmultiengine.utils.MyGeoTools
import
com.sd.mapmultiengine.utils.MyGeoTools
class
PoiAdapter
:
BaseQuickAdapter
<
PoiSearch
Bean
,
PoiAdapter
.
PoiSH
>()
{
class
PoiAdapter
:
BaseQuickAdapter
<
PoiSearch
Res
,
PoiAdapter
.
PoiSH
>()
{
init
{
init
{
// addChildClickViewIds(R.id.tv_fouc)
// addChildClickViewIds(R.id.tv_fouc)
...
@@ -40,7 +40,7 @@ class PoiAdapter : BaseQuickAdapter<PoiSearchBean, PoiAdapter.PoiSH>() {
...
@@ -40,7 +40,7 @@ class PoiAdapter : BaseQuickAdapter<PoiSearchBean, PoiAdapter.PoiSH>() {
)
:
RecyclerView
.
ViewHolder
(
binding
.
root
)
{
)
:
RecyclerView
.
ViewHolder
(
binding
.
root
)
{
private
var
poi_title
=
binding
.
poiTitle
private
var
poi_title
=
binding
.
poiTitle
fun
show
(
bean
:
PoiSearch
Bean
)
{
fun
show
(
bean
:
PoiSearch
Res
)
{
if
(
usrSearchStr
.
isNotEmpty
())
{
if
(
usrSearchStr
.
isNotEmpty
())
{
var
tempStr
=
bean
.
title
var
tempStr
=
bean
.
title
var
star
=
tempStr
.
indexOf
(
usrSearchStr
)
var
star
=
tempStr
.
indexOf
(
usrSearchStr
)
...
@@ -58,9 +58,9 @@ class PoiAdapter : BaseQuickAdapter<PoiSearchBean, PoiAdapter.PoiSH>() {
...
@@ -58,9 +58,9 @@ class PoiAdapter : BaseQuickAdapter<PoiSearchBean, PoiAdapter.PoiSH>() {
}
}
binding
.
poiDes
.
text
=
bean
.
snippet
binding
.
poiDes
.
text
=
bean
.
snippet
binding
.
tvDistan
.
text
=
bean
.
distance
.
toString
()
val
distanceBean
:
DistanceBean
=
MyGeoTools
.
cauMyLocDistance
(
bean
.
lat
,
bean
.
lng
)
//
val distanceBean: DistanceBean = MyGeoTools.cauMyLocDistance(bean.lat, bean.lng)
binding
.
tvDistan
.
text
=
"${distanceBean.distanceValue}${distanceBean.distanceUnit}"
//
binding.tvDistan.text = "${distanceBean.distanceValue}${distanceBean.distanceUnit}"
}
}
fun
setListener
()
{
fun
setListener
()
{
...
@@ -70,7 +70,7 @@ class PoiAdapter : BaseQuickAdapter<PoiSearchBean, PoiAdapter.PoiSH>() {
...
@@ -70,7 +70,7 @@ class PoiAdapter : BaseQuickAdapter<PoiSearchBean, PoiAdapter.PoiSH>() {
}
}
}
}
override
fun
onBindViewHolder
(
holder
:
PoiSH
,
position
:
Int
,
item
:
PoiSearch
Bean
?)
{
override
fun
onBindViewHolder
(
holder
:
PoiSH
,
position
:
Int
,
item
:
PoiSearch
Res
?)
{
holder
.
show
(
item
!!
)
holder
.
show
(
item
!!
)
}
}
...
...
app/src/main/java/com/sd/mapmultiengine/bean/PoiSearchBean.kt
deleted
100644 → 0
View file @
7a1a8e98
package
com.sd.mapmultiengine.bean
/**搜索poi**/
class
PoiSearchBean
{
var
lat
=
0.0
var
lng
=
0.0
var
cityName
=
""
var
adCode
=
""
//POI的名称
var
title
=
""
//POI的地址
var
snippet
=
""
//POI距离中心点的距离。
var
distance
=
0
}
\ No newline at end of file
app/src/main/java/com/sd/mapmultiengine/ui/DisplayMapActivity.kt
0 → 100644
View file @
8a1780fa
package
com.sd.mapmultiengine.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.maplibrary.bean.MSLatLng
import
com.sd.maplibrary.core.MSCanvesInMap
import
com.sd.maplibrary.core.MSMethodAdv
import
com.sd.maplibrary.core.MapReadyView
import
com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import
com.sd.mapmultiengine.R
import
com.sd.mapmultiengine.databinding.ActivityDisplayMapBinding
import
com.sd.mapmultiengine.databinding.ActivityTpolygonBinding
import
com.sd.mapmultiengine.ui.TPolygonActivity
/***展示地图***/
class
DisplayMapActivity
:
AppCompatActivity
()
{
private
lateinit
var
binding
:
ActivityDisplayMapBinding
var
mapReadView
:
MapReadyView
?
=
null
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
binding
=
ActivityDisplayMapBinding
.
inflate
(
layoutInflater
)
setContentView
(
binding
.
root
)
binding
.
mapMultiView
.
addMapRenderCallback
(
object
:
OnMapReadyLis
{
override
fun
onMapReady
(
mapReadyView
:
MapReadyView
)
{
this
@DisplayMapActivity
.
mapReadView
=
mapReadyView
}
})
}
}
\ No newline at end of file
app/src/main/java/com/sd/mapmultiengine/ui/TCircelActivity.kt
View file @
8a1780fa
...
@@ -3,6 +3,7 @@ package com.sd.mapmultiengine.ui
...
@@ -3,6 +3,7 @@ package com.sd.mapmultiengine.ui
import
android.os.Bundle
import
android.os.Bundle
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.app.AppCompatActivity
import
com.sd.maplibrary.core.MSCanvesInMap
import
com.sd.maplibrary.core.MSCanvesInMap
import
com.sd.maplibrary.core.MSOverlay
import
com.sd.maplibrary.core.MapReadyView
import
com.sd.maplibrary.core.MapReadyView
import
com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import
com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import
com.sd.mapmultiengine.databinding.ActivityTcircelBinding
import
com.sd.mapmultiengine.databinding.ActivityTcircelBinding
...
@@ -14,6 +15,7 @@ class TCircelActivity : AppCompatActivity() {
...
@@ -14,6 +15,7 @@ class TCircelActivity : AppCompatActivity() {
var
mapReadView
:
MapReadyView
?
=
null
var
mapReadView
:
MapReadyView
?
=
null
private
var
mSOverlay
:
MSOverlay
?
=
null
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
...
@@ -25,11 +27,14 @@ class TCircelActivity : AppCompatActivity() {
...
@@ -25,11 +27,14 @@ class TCircelActivity : AppCompatActivity() {
this
@TCircelActivity
.
mapReadView
=
mapReadyView
this
@TCircelActivity
.
mapReadView
=
mapReadyView
//绘制一个圆形 116.3975,39.9079
//绘制一个圆形 116.3975,39.9079
MSCanvesInMap
.
dCircle
(
mapReadView
,
39.907923
,
116.397512
,
2000f
)
mSOverlay
=
MSCanvesInMap
.
d
raw
Circle
(
mapReadView
,
39.907923
,
116.397512
,
2000f
)
}
}
})
})
//删除圆形
binding
.
bt1
.
setOnClickListener
{
MSCanvesInMap
.
deleteCircle
(
mapReadView
,
mSOverlay
)
}
}
}
...
...
app/src/main/java/com/sd/mapmultiengine/ui/TDriveRouteActivity.kt
View file @
8a1780fa
...
@@ -27,7 +27,7 @@ class TDriveRouteActivity : TBaseActivity() {
...
@@ -27,7 +27,7 @@ class TDriveRouteActivity : TBaseActivity() {
//初始化并设置监听
//初始化并设置监听
MSRoutePlans
.
addPlanLis
(
this
,
onDriveRoute
)
MSRoutePlans
.
addPlanLis
(
this
,
onDriveRoute
)
//开始
导航
//开始
规划
binding
.
starplan
.
setOnClickListener
{
binding
.
starplan
.
setOnClickListener
{
// if (mapReadView == null)
// if (mapReadView == null)
// return@setOnClickListener
// return@setOnClickListener
...
...
app/src/main/java/com/sd/mapmultiengine/ui/TGpsActivity.kt
0 → 100644
View file @
8a1780fa
package
com.sd.mapmultiengine.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.maplibrary.bean.MSLocBean
import
com.sd.maplibrary.core.MSGpsLocation
import
com.sd.mapmultiengine.R
import
com.sd.mapmultiengine.databinding.ActivityTgpsBinding
import
com.sd.mapmultiengine.databinding.ActivityTreGeocodeBinding
/***定位***/
class
TGpsActivity
:
AppCompatActivity
()
{
private
lateinit
var
binding
:
ActivityTgpsBinding
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
binding
=
ActivityTgpsBinding
.
inflate
(
layoutInflater
)
setContentView
(
binding
.
root
)
//初始化
MSGpsLocation
.
initLoc
(
this
)
//设置回调
MSGpsLocation
.
setOnMsGpsLoc
(
object
:
MSGpsLocation
.
OnMsGpsLoc
{
override
fun
onMsGpsLoc
(
mSLocBean
:
MSLocBean
)
{
println
(
"---------mSLocBean = ${mSLocBean}"
)
var
sb
=
StringBuilder
()
sb
.
run
{
append
(
"纬度:${mSLocBean.lat} \n"
)
append
(
"精度:${mSLocBean.lng} \n"
)
append
(
"速度:${mSLocBean.speed} \n"
)
append
(
"航向角:${mSLocBean.bearing} \n"
)
append
(
"精度:${mSLocBean.accuracy} \n"
)
append
(
"高程:${mSLocBean.altitude} \n"
)
}
binding
.
tv
.
text
=
sb
}
})
//开启定位
binding
.
bt
.
setOnClickListener
{
MSGpsLocation
.
starLoc
()
}
}
override
fun
onStop
()
{
super
.
onStop
()
//停止定位
MSGpsLocation
.
stopLoc
()
}
override
fun
onDestroy
()
{
super
.
onDestroy
()
//清理资源
MSGpsLocation
.
cleans
()
}
}
\ No newline at end of file
app/src/main/java/com/sd/mapmultiengine/ui/TLineActivity.kt
View file @
8a1780fa
...
@@ -2,19 +2,14 @@ package com.sd.mapmultiengine.ui
...
@@ -2,19 +2,14 @@ package com.sd.mapmultiengine.ui
import
android.graphics.Color
import
android.graphics.Color
import
android.os.Bundle
import
android.os.Bundle
import
androidx.activity.enableEdgeToEdge
import
androidx.appcompat.app.AppCompatActivity
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.bean.MSLatLng
import
com.sd.maplibrary.core.MSCanvesInMap
import
com.sd.maplibrary.core.MSCanvesInMap
import
com.sd.maplibrary.core.MSMethodAdv
import
com.sd.maplibrary.core.MSMethodAdv
import
com.sd.maplibrary.core.MSOverlay
import
com.sd.maplibrary.core.MapReadyView
import
com.sd.maplibrary.core.MapReadyView
import
com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import
com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import
com.sd.mapmultiengine.R
import
com.sd.mapmultiengine.databinding.ActivityTlineBinding
import
com.sd.mapmultiengine.databinding.ActivityTlineBinding
import
com.sd.mapmultiengine.databinding.ActivityTmarkerBinding
import
com.sd.mapmultiengine.ui.TMarkerActivity
/*****绘制一条线**/
/*****绘制一条线**/
class
TLineActivity
:
AppCompatActivity
()
{
class
TLineActivity
:
AppCompatActivity
()
{
...
@@ -23,6 +18,9 @@ class TLineActivity : AppCompatActivity() {
...
@@ -23,6 +18,9 @@ class TLineActivity : AppCompatActivity() {
var
mapReadView
:
MapReadyView
?
=
null
var
mapReadView
:
MapReadyView
?
=
null
private
var
mSOverlay
:
MSOverlay
?
=
null
private
var
mSOverlay2
:
MSOverlay
?
=
null
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
binding
=
ActivityTlineBinding
.
inflate
(
layoutInflater
)
binding
=
ActivityTlineBinding
.
inflate
(
layoutInflater
)
...
@@ -44,7 +42,8 @@ class TLineActivity : AppCompatActivity() {
...
@@ -44,7 +42,8 @@ class TLineActivity : AppCompatActivity() {
MSLatLng
(
39.999391
,
116.135972
),
MSLatLng
(
39.898323
,
116.057694
),
MSLatLng
(
39.999391
,
116.135972
),
MSLatLng
(
39.898323
,
116.057694
),
MSLatLng
(
39.900430
,
116.265061
),
MSLatLng
(
39.955192
,
116.140092
)
MSLatLng
(
39.900430
,
116.265061
),
MSLatLng
(
39.955192
,
116.140092
)
)
)
MSCanvesInMap
.
dPolyline
(
mapReadView
,
msLatLng
,
5f
,
Color
.
argb
(
255
,
255
,
0
,
255
))
mSOverlay
=
MSCanvesInMap
.
drawPolyline
(
mapReadView
,
msLatLng
,
5f
,
Color
.
argb
(
255
,
255
,
0
,
255
))
}
}
binding
.
bt2
.
setOnClickListener
{
binding
.
bt2
.
setOnClickListener
{
//画虚线
//画虚线
...
@@ -52,8 +51,20 @@ class TLineActivity : AppCompatActivity() {
...
@@ -52,8 +51,20 @@ class TLineActivity : AppCompatActivity() {
MSLatLng
(
39.999591
,
116.135972
),
MSLatLng
(
39.898123
,
116.057694
),
MSLatLng
(
39.999591
,
116.135972
),
MSLatLng
(
39.898123
,
116.057694
),
MSLatLng
(
39.900230
,
116.265061
),
MSLatLng
(
39.951192
,
116.140092
)
MSLatLng
(
39.900230
,
116.265061
),
MSLatLng
(
39.951192
,
116.140092
)
)
)
MSCanvesInMap
.
dPolyline
(
mapReadView
,
msLatLng
,
5f
,
Color
.
argb
(
255
,
255
,
0
,
255
),
isDotted
=
true
)
mSOverlay2
=
MSCanvesInMap
.
drawPolyline
(
mapReadView
,
msLatLng
,
5f
,
Color
.
argb
(
255
,
255
,
0
,
255
),
isDotted
=
true
)
}
}
//删除线
binding
.
bt3
.
setOnClickListener
{
MSCanvesInMap
.
deletePolyline
(
mapReadView
,
mSOverlay
)
// MSCanvesInMap.deletePolyline(mapReadView,mSOverlay2)
}
}
}
...
...
app/src/main/java/com/sd/mapmultiengine/ui/TMarkerActivity.kt
View file @
8a1780fa
...
@@ -3,7 +3,8 @@ package com.sd.mapmultiengine.ui
...
@@ -3,7 +3,8 @@ package com.sd.mapmultiengine.ui
import
android.os.Bundle
import
android.os.Bundle
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.app.AppCompatActivity
import
com.sd.maplibrary.core.MSCanvesInMap
import
com.sd.maplibrary.core.MSCanvesInMap
import
com.sd.maplibrary.core.MSMethodAdv
import
com.sd.maplibrary.core.MSMarker
import
com.sd.maplibrary.core.MSOverlay
import
com.sd.maplibrary.core.MapReadyView
import
com.sd.maplibrary.core.MapReadyView
import
com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import
com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import
com.sd.mapmultiengine.databinding.ActivityTmarkerBinding
import
com.sd.mapmultiengine.databinding.ActivityTmarkerBinding
...
@@ -15,6 +16,9 @@ class TMarkerActivity : AppCompatActivity() {
...
@@ -15,6 +16,9 @@ class TMarkerActivity : AppCompatActivity() {
var
mapReadView
:
MapReadyView
?
=
null
var
mapReadView
:
MapReadyView
?
=
null
var
msMark
:
MSMarker
?
=
null
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
binding
=
ActivityTmarkerBinding
.
inflate
(
layoutInflater
)
binding
=
ActivityTmarkerBinding
.
inflate
(
layoutInflater
)
...
@@ -24,11 +28,16 @@ class TMarkerActivity : AppCompatActivity() {
...
@@ -24,11 +28,16 @@ class TMarkerActivity : AppCompatActivity() {
override
fun
onMapReady
(
mapReadyView
:
MapReadyView
)
{
override
fun
onMapReady
(
mapReadyView
:
MapReadyView
)
{
this
@TMarkerActivity
.
mapReadView
=
mapReadyView
this
@TMarkerActivity
.
mapReadView
=
mapReadyView
//绘制Marker点 116.3985,39.9079
//绘制Marker点 116.3985,39.9079
MSCanvesInMap
.
dMarket
(
this
@TMarkerActivity
,
mapReadView
,
39.907900
,
116.398500
)
msMark
=
MSCanvesInMap
.
drawMarket
(
this
@TMarkerActivity
,
mapReadView
,
39.907900
,
116.398500
)
// MSMethodAdv.setMapCenter(mapReadView, 39.977290, 116.337000)
// MSMethodAdv.setMapCenter(mapReadView, 39.977290, 116.337000)
}
}
})
})
binding
.
bt1
.
setOnClickListener
{
MSCanvesInMap
.
deleteMarker
(
mapReadView
,
msMark
!!
)
}
}
}
...
...
app/src/main/java/com/sd/mapmultiengine/ui/TPoiSearchActivity.kt
0 → 100644
View file @
8a1780fa
package
com.sd.mapmultiengine.ui
import
android.os.Bundle
import
androidx.appcompat.app.AppCompatActivity
import
com.sd.maplibrary.bean.PoiSearchRes
import
com.sd.maplibrary.core.MSPoiSearch
import
com.sd.maplibrary.core.MapReadyView
import
com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import
com.sd.mapmultiengine.adapter.PoiAdapter
import
com.sd.mapmultiengine.databinding.ActivityTpoiSearchBinding
/****poi关键字搜索,范围搜索**/
class
TPoiSearchActivity
:
AppCompatActivity
()
{
private
lateinit
var
binding
:
ActivityTpoiSearchBinding
var
mapReadView
:
MapReadyView
?
=
null
private
var
poiAdapter
=
PoiAdapter
()
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
binding
=
ActivityTpoiSearchBinding
.
inflate
(
layoutInflater
)
setContentView
(
binding
.
root
)
binding
.
mapMultiView
.
addMapRenderCallback
(
object
:
OnMapReadyLis
{
override
fun
onMapReady
(
mapReadyView
:
MapReadyView
)
{
this
@TPoiSearchActivity
.
mapReadView
=
mapReadyView
//绘制Marker点 116.3985,39.9079
// MSCanvesInMap.dMarket(this@TLineActivity, mapReadView, 39.907900, 116.398500)
// MSMethodAdv.setMapCenter(mapReadView, 39.999391, 116.135972)
}
})
binding
.
poiList
.
adapter
=
poiAdapter
//关键字检索
binding
.
bt
.
setOnClickListener
{
poiAdapter
.
submitList
(
listOf
())
var
str
=
binding
.
et
.
text
.
toString
()
testPoiSearch
(
str
)
}
//范围搜索
binding
.
bt2
.
setOnClickListener
{
poiAdapter
.
submitList
(
listOf
())
var
str
=
binding
.
et
.
text
.
toString
()
testPoiSearchBound
(
str
)
}
}
//poi搜索
fun
testPoiSearch
(
keyword
:
String
)
{
MSPoiSearch
.
startPoiSearch
(
this
,
keyword
,
41.80196
,
123.43326
,
object
:
MSPoiSearch
.
OnMSPoiSearchLis
{
override
fun
onPoiLis
(
poiList
:
List
<
PoiSearchRes
>,
resCode
:
Int
)
{
poiAdapter
.
submitList
(
poiList
)
}
})
}
//poi 范围搜索
fun
testPoiSearchBound
(
keyword
:
String
)
{
MSPoiSearch
.
startPoiSearchBound
(
this
,
keyword
,
39.977290
,
116.337000
,
25000
,
object
:
MSPoiSearch
.
OnMSPoiSearchLis
{
override
fun
onPoiLis
(
poiList
:
List
<
PoiSearchRes
>,
resCode
:
Int
)
{
poiAdapter
.
submitList
(
poiList
)
}
})
}
}
\ No newline at end of file
app/src/main/java/com/sd/mapmultiengine/ui/TPolygonActivity.kt
View file @
8a1780fa
package
com.sd.mapmultiengine.ui
package
com.sd.mapmultiengine.ui
import
android.os.Bundle
import
android.os.Bundle
import
androidx.activity.enableEdgeToEdge
import
androidx.appcompat.app.AppCompatActivity
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.bean.MSLatLng
import
com.sd.maplibrary.core.MSCanvesInMap
import
com.sd.maplibrary.core.MSCanvesInMap
import
com.sd.maplibrary.core.MSMethodAdv
import
com.sd.maplibrary.core.MSMethodAdv
import
com.sd.maplibrary.core.MSOverlay
import
com.sd.maplibrary.core.MapReadyView
import
com.sd.maplibrary.core.MapReadyView
import
com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import
com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import
com.sd.mapmultiengine.R
import
com.sd.mapmultiengine.databinding.ActivityTcircelBinding
import
com.sd.mapmultiengine.databinding.ActivityTpolygonBinding
import
com.sd.mapmultiengine.databinding.ActivityTpolygonBinding
import
com.sd.mapmultiengine.ui.TCircelActivity
/*****/
/*****/
class
TPolygonActivity
:
AppCompatActivity
()
{
class
TPolygonActivity
:
AppCompatActivity
()
{
...
@@ -22,6 +17,8 @@ class TPolygonActivity : AppCompatActivity() {
...
@@ -22,6 +17,8 @@ class TPolygonActivity : AppCompatActivity() {
var
mapReadView
:
MapReadyView
?
=
null
var
mapReadView
:
MapReadyView
?
=
null
private
var
mSOverlay
:
MSOverlay
?
=
null
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
binding
=
ActivityTpolygonBinding
.
inflate
(
layoutInflater
)
binding
=
ActivityTpolygonBinding
.
inflate
(
layoutInflater
)
...
@@ -38,12 +35,16 @@ class TPolygonActivity : AppCompatActivity() {
...
@@ -38,12 +35,16 @@ class TPolygonActivity : AppCompatActivity() {
MSLatLng
(
39.993391
,
116.135272
),
MSLatLng
(
39.808323
,
116.057604
),
MSLatLng
(
39.993391
,
116.135272
),
MSLatLng
(
39.808323
,
116.057604
),
MSLatLng
(
39.904430
,
116.265061
),
MSLatLng
(
39.950192
,
116.140002
)
MSLatLng
(
39.904430
,
116.265061
),
MSLatLng
(
39.950192
,
116.140002
)
)
)
MSCanvesInMap
.
dPolygon
(
mapReadView
,
mspLatLng
)
mSOverlay
=
MSCanvesInMap
.
d
raw
Polygon
(
mapReadView
,
mspLatLng
)
}
}
})
})
}
//删除面
binding
.
bt1
.
setOnClickListener
{
MSCanvesInMap
.
deletePolygon
(
mapReadView
,
mSOverlay
)
}
}
}
}
\ No newline at end of file
app/src/main/java/com/sd/mapmultiengine/ui/TReGeocodeActivity.kt
0 → 100644
View file @
8a1780fa
package
com.sd.mapmultiengine.ui
import
android.os.Bundle
import
androidx.appcompat.app.AppCompatActivity
import
com.sd.maplibrary.bean.RegeocodeRes
import
com.sd.maplibrary.core.MSRegeoCode
import
com.sd.mapmultiengine.databinding.ActivityTreGeocodeBinding
/***逆地理编码***/
class
TReGeocodeActivity
:
AppCompatActivity
()
{
private
lateinit
var
binding
:
ActivityTreGeocodeBinding
// var mapReadView: MapReadyView? = null
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
binding
=
ActivityTreGeocodeBinding
.
inflate
(
layoutInflater
)
setContentView
(
binding
.
root
)
// binding.mapMultiView.addMapRenderCallback(object : OnMapReadyLis {
// override fun onMapReady(mapReadyView: MapReadyView) {
// this@TReGeocodeActivity.mapReadView = mapReadyView
// }
// })
binding
.
bt
.
setOnClickListener
{
var
lat
=
binding
.
et2
.
text
.
toString
().
toDouble
()
var
lng
=
binding
.
et1
.
text
.
toString
().
toDouble
()
//逆地理编码
MSRegeoCode
.
geoCoder
(
this
,
lat
,
lng
,
object
:
MSRegeoCode
.
MSOnRegeo
{
override
fun
onRegeo
(
regeocodeRes
:
RegeocodeRes
?)
{
var
sb
=
StringBuilder
()
sb
.
append
(
regeocodeRes
?.
province
+
" "
)
sb
.
append
(
regeocodeRes
?.
city
+
" "
)
sb
.
append
(
"城市编码:${regeocodeRes?.cityCode} "
)
sb
.
append
(
regeocodeRes
?.
town
)
binding
.
tv
.
setText
(
sb
)
}
})
}
}
}
\ No newline at end of file
app/src/main/res/layout/activity_display_map.xml
0 → 100644
View file @
8a1780fa
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<com.sd.maplibrary.ui.MapMultiView
android:id=
"@+id/mapMultiView"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
/>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/activity_tcircel.xml
View file @
8a1780fa
...
@@ -5,6 +5,18 @@
...
@@ -5,6 +5,18 @@
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<Button
android:id=
"@+id/bt1"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"删除圆形"
/>
</LinearLayout>
<com.sd.maplibrary.ui.MapMultiView
<com.sd.maplibrary.ui.MapMultiView
android:id=
"@+id/mapMultiView"
android:id=
"@+id/mapMultiView"
...
...
app/src/main/res/layout/activity_tgps.xml
0 → 100644
View file @
8a1780fa
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<Button
android:id=
"@+id/bt"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"开始定位"
/>
<TextView
android:id=
"@+id/tv"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
/>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/activity_tlayers.xml
View file @
8a1780fa
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
...
@@ -20,14 +18,15 @@
...
@@ -20,14 +18,15 @@
<RadioButton
<RadioButton
android:id=
"@+id/rb1"
android:id=
"@+id/rb1"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:checked=
"true"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"普通"
/>
android:checked=
"true"
android:text=
"普通"
/>
<RadioButton
<RadioButton
android:id=
"@+id/rb2"
android:id=
"@+id/rb2"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"卫星"
/>
android:text=
"卫星"
/>
</RadioGroup>
</RadioGroup>
</LinearLayout>
</LinearLayout>
...
@@ -35,7 +34,6 @@
...
@@ -35,7 +34,6 @@
<com.sd.maplibrary.ui.MapMultiView
<com.sd.maplibrary.ui.MapMultiView
android:id=
"@+id/mapMultiView"
android:id=
"@+id/mapMultiView"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
/>
app:map_type=
"AMAP"
/>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/activity_tline.xml
View file @
8a1780fa
...
@@ -22,12 +22,18 @@
...
@@ -22,12 +22,18 @@
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"画虚线"
/>
android:text=
"画虚线"
/>
<Button
android:id=
"@+id/bt3"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"删除线"
/>
</LinearLayout>
</LinearLayout>
<com.sd.maplibrary.ui.MapMultiView
<com.sd.maplibrary.ui.MapMultiView
android:id=
"@+id/mapMultiView"
android:id=
"@+id/mapMultiView"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
app:map_type=
"
AMAP
"
/>
app:map_type=
"
MINE
"
/>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/activity_tmarker.xml
View file @
8a1780fa
...
@@ -6,18 +6,19 @@
...
@@ -6,18 +6,19 @@
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
<!-- <LinearLayout-->
<LinearLayout
<!-- android:layout_width="match_parent"-->
android:layout_width=
"match_parent"
<!-- android:layout_height="wrap_content">-->
android:layout_height=
"wrap_content"
>
<Button
android:id=
"@+id/bt1"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"删除mark"
/>
<!-- <Button-->
<!-- android:id="@+id/bt1"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="改变中心点" />-->
<!-- -->
<!--
</LinearLayout>
-->
</LinearLayout>
<com.sd.maplibrary.ui.MapMultiView
<com.sd.maplibrary.ui.MapMultiView
android:id=
"@+id/mapMultiView"
android:id=
"@+id/mapMultiView"
...
...
Prev
1
2
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment