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
Show whitespace changes
Inline
Side-by-side
app/src/main/AndroidManifest.xml
View file @
8a1780fa
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
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
android:allowBackup=
"true"
...
...
@@ -37,6 +12,18 @@
android:supportsRtl=
"true"
android:theme=
"@style/Theme.MapMultiEngine"
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
android:name=
".ui.TLayersActivity"
android:exported=
"false"
/>
...
...
app/src/main/java/com/sd/mapmultiengine/MainActivity.kt
View file @
8a1780fa
...
...
@@ -13,14 +13,18 @@ import com.sd.maplibrary.OnSdkInitCb
import
com.sd.mapmultiengine.adapter.DemoListAdapter
import
com.sd.mapmultiengine.databinding.ActivityMainBinding
import
com.sd.mapmultiengine.ui.ChangeMapCenterAct
import
com.sd.mapmultiengine.ui.DisplayMapActivity
import
com.sd.mapmultiengine.ui.GestureDemo
import
com.sd.mapmultiengine.ui.ShowMyLocLandian
import
com.sd.mapmultiengine.ui.TCircelActivity
import
com.sd.mapmultiengine.ui.TDriveRouteActivity
import
com.sd.mapmultiengine.ui.TGpsActivity
import
com.sd.mapmultiengine.ui.TLayersActivity
import
com.sd.mapmultiengine.ui.TLineActivity
import
com.sd.mapmultiengine.ui.TMarkerActivity
import
com.sd.mapmultiengine.ui.TPoiSearchActivity
import
com.sd.mapmultiengine.ui.TPolygonActivity
import
com.sd.mapmultiengine.ui.TReGeocodeActivity
class
MainActivity
:
AppCompatActivity
()
{
...
...
@@ -36,6 +40,7 @@ class MainActivity : AppCompatActivity() {
)
private
var
demos
=
listOf
(
DemoDetails
(
"展示地图"
,
DisplayMapActivity
::
class
.
java
),
DemoDetails
(
"切换地图图层"
,
TLayersActivity
::
class
.
java
),
DemoDetails
(
"显示定位蓝点"
,
ShowMyLocLandian
::
class
.
java
),
DemoDetails
(
"手势控制"
,
GestureDemo
::
class
.
java
),
...
...
@@ -44,9 +49,13 @@ class MainActivity : AppCompatActivity() {
DemoDetails
(
"绘制一条线(实线、虚线)"
,
TLineActivity
::
class
.
java
),
DemoDetails
(
"绘制圆形"
,
TCircelActivity
::
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() {
}
fun
initMap
()
{
MSDKInitializer
.
initializeMap
(
this
,
MAP_TYPE
.
AMAP
,
object
:
OnSdkInitCb
{
MSDKInitializer
.
initializeMap
(
this
,
MAP_TYPE
.
MINE
,
object
:
OnSdkInitCb
{
override
fun
onInitSuccess
()
{
println
(
"--------onMapInitSuccess"
)
}
...
...
app/src/main/java/com/sd/mapmultiengine/TextMainActivity.kt
View file @
8a1780fa
...
...
@@ -12,7 +12,6 @@ import com.sd.maplibrary.bean.MSLocBean
import
com.sd.maplibrary.bean.PoiSearchRes
import
com.sd.maplibrary.bean.RegeocodeRes
import
com.sd.maplibrary.core.MSCanvesInMap
import
com.sd.maplibrary.core.MSGestures
import
com.sd.maplibrary.core.MSGpsLocation
import
com.sd.maplibrary.core.MSMethodAdv
import
com.sd.maplibrary.core.MSPoiSearch
...
...
@@ -71,21 +70,21 @@ class TextMainActivity : AppCompatActivity() {
//改变缩放级别
MSMethodAdv
.
setMapZoom
(
mapReadView
,
10f
)
//绘制Marker点
MSCanvesInMap
.
dMarket
(
this
,
mapReadView
,
39.977290
,
116.337000
)
MSCanvesInMap
.
d
raw
Market
(
this
,
mapReadView
,
39.977290
,
116.337000
)
//绘制一条线
var
msLatLng
=
listOf
<
MSLatLng
>(
MSLatLng
(
39.999391
,
116.135972
),
MSLatLng
(
39.898323
,
116.057694
),
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
>(
MSLatLng
(
39.993391
,
116.135272
),
MSLatLng
(
39.808323
,
116.057604
),
MSLatLng
(
39.904430
,
116.265061
),
MSLatLng
(
39.950192
,
116.140002
)
)
MSCanvesInMap
.
dPolygon
(
mapReadView
,
mspLatLng
)
MSCanvesInMap
.
d
raw
Polygon
(
mapReadView
,
mspLatLng
)
//Poi搜索
// testPoiSearch()
//POi范围搜索
...
...
app/src/main/java/com/sd/mapmultiengine/adapter/PoiAdapter.kt
View file @
8a1780fa
...
...
@@ -11,13 +11,13 @@ import androidx.core.text.set
import
androidx.recyclerview.widget.RecyclerView
import
com.chad.library.adapter4.BaseQuickAdapter
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.utils.MyGeoTools
class
PoiAdapter
:
BaseQuickAdapter
<
PoiSearch
Bean
,
PoiAdapter
.
PoiSH
>()
{
class
PoiAdapter
:
BaseQuickAdapter
<
PoiSearch
Res
,
PoiAdapter
.
PoiSH
>()
{
init
{
// addChildClickViewIds(R.id.tv_fouc)
...
...
@@ -40,7 +40,7 @@ class PoiAdapter : BaseQuickAdapter<PoiSearchBean, PoiAdapter.PoiSH>() {
)
:
RecyclerView
.
ViewHolder
(
binding
.
root
)
{
private
var
poi_title
=
binding
.
poiTitle
fun
show
(
bean
:
PoiSearch
Bean
)
{
fun
show
(
bean
:
PoiSearch
Res
)
{
if
(
usrSearchStr
.
isNotEmpty
())
{
var
tempStr
=
bean
.
title
var
star
=
tempStr
.
indexOf
(
usrSearchStr
)
...
...
@@ -58,9 +58,9 @@ class PoiAdapter : BaseQuickAdapter<PoiSearchBean, PoiAdapter.PoiSH>() {
}
binding
.
poiDes
.
text
=
bean
.
snippet
val
distanceBean
:
DistanceBean
=
MyGeoTools
.
cauMyLocDistance
(
bean
.
lat
,
bean
.
lng
)
binding
.
tvDistan
.
text
=
"${distanceBean.distanceValue}${distanceBean.distanceUnit}"
binding
.
tvDistan
.
text
=
bean
.
distance
.
toString
()
//
val distanceBean: DistanceBean = MyGeoTools.cauMyLocDistance(bean.lat, bean.lng)
//
binding.tvDistan.text = "${distanceBean.distanceValue}${distanceBean.distanceUnit}"
}
fun
setListener
()
{
...
...
@@ -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
!!
)
}
...
...
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
import
android.os.Bundle
import
androidx.appcompat.app.AppCompatActivity
import
com.sd.maplibrary.core.MSCanvesInMap
import
com.sd.maplibrary.core.MSOverlay
import
com.sd.maplibrary.core.MapReadyView
import
com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import
com.sd.mapmultiengine.databinding.ActivityTcircelBinding
...
...
@@ -14,6 +15,7 @@ class TCircelActivity : AppCompatActivity() {
var
mapReadView
:
MapReadyView
?
=
null
private
var
mSOverlay
:
MSOverlay
?
=
null
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
...
...
@@ -25,11 +27,14 @@ class TCircelActivity : AppCompatActivity() {
this
@TCircelActivity
.
mapReadView
=
mapReadyView
//绘制一个圆形 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() {
//初始化并设置监听
MSRoutePlans
.
addPlanLis
(
this
,
onDriveRoute
)
//开始
导航
//开始
规划
binding
.
starplan
.
setOnClickListener
{
// if (mapReadView == null)
// 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
import
android.graphics.Color
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.MSOverlay
import
com.sd.maplibrary.core.MapReadyView
import
com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import
com.sd.mapmultiengine.R
import
com.sd.mapmultiengine.databinding.ActivityTlineBinding
import
com.sd.mapmultiengine.databinding.ActivityTmarkerBinding
import
com.sd.mapmultiengine.ui.TMarkerActivity
/*****绘制一条线**/
class
TLineActivity
:
AppCompatActivity
()
{
...
...
@@ -23,6 +18,9 @@ class TLineActivity : AppCompatActivity() {
var
mapReadView
:
MapReadyView
?
=
null
private
var
mSOverlay
:
MSOverlay
?
=
null
private
var
mSOverlay2
:
MSOverlay
?
=
null
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
binding
=
ActivityTlineBinding
.
inflate
(
layoutInflater
)
...
...
@@ -44,7 +42,8 @@ class TLineActivity : AppCompatActivity() {
MSLatLng
(
39.999391
,
116.135972
),
MSLatLng
(
39.898323
,
116.057694
),
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
{
//画虚线
...
...
@@ -52,8 +51,20 @@ class TLineActivity : AppCompatActivity() {
MSLatLng
(
39.999591
,
116.135972
),
MSLatLng
(
39.898123
,
116.057694
),
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
import
android.os.Bundle
import
androidx.appcompat.app.AppCompatActivity
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.ui.MapMultiView.OnMapReadyLis
import
com.sd.mapmultiengine.databinding.ActivityTmarkerBinding
...
...
@@ -15,6 +16,9 @@ class TMarkerActivity : AppCompatActivity() {
var
mapReadView
:
MapReadyView
?
=
null
var
msMark
:
MSMarker
?
=
null
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
binding
=
ActivityTmarkerBinding
.
inflate
(
layoutInflater
)
...
...
@@ -24,11 +28,16 @@ class TMarkerActivity : AppCompatActivity() {
override
fun
onMapReady
(
mapReadyView
:
MapReadyView
)
{
this
@TMarkerActivity
.
mapReadView
=
mapReadyView
//绘制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)
}
})
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
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.MSOverlay
import
com.sd.maplibrary.core.MapReadyView
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.ui.TCircelActivity
/*****/
class
TPolygonActivity
:
AppCompatActivity
()
{
...
...
@@ -22,6 +17,8 @@ class TPolygonActivity : AppCompatActivity() {
var
mapReadView
:
MapReadyView
?
=
null
private
var
mSOverlay
:
MSOverlay
?
=
null
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
binding
=
ActivityTpolygonBinding
.
inflate
(
layoutInflater
)
...
...
@@ -38,12 +35,16 @@ class TPolygonActivity : AppCompatActivity() {
MSLatLng
(
39.993391
,
116.135272
),
MSLatLng
(
39.808323
,
116.057604
),
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 @@
android:layout_height=
"match_parent"
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
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"?>
<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_height=
"match_parent"
android:orientation=
"vertical"
>
...
...
@@ -20,14 +18,15 @@
<RadioButton
android:id=
"@+id/rb1"
android:layout_width=
"wrap_content"
android:checked=
"true"
android:layout_height=
"wrap_content"
android:text=
"普通"
/>
android:checked=
"true"
android:text=
"普通"
/>
<RadioButton
android:id=
"@+id/rb2"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"卫星"
/>
android:text=
"卫星"
/>
</RadioGroup>
</LinearLayout>
...
...
@@ -35,7 +34,6 @@
<com.sd.maplibrary.ui.MapMultiView
android:id=
"@+id/mapMultiView"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
app:map_type=
"AMAP"
/>
android:layout_height=
"match_parent"
/>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/activity_tline.xml
View file @
8a1780fa
...
...
@@ -22,12 +22,18 @@
android:layout_height=
"wrap_content"
android:text=
"画虚线"
/>
<Button
android:id=
"@+id/bt3"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"删除线"
/>
</LinearLayout>
<com.sd.maplibrary.ui.MapMultiView
android:id=
"@+id/mapMultiView"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
app:map_type=
"
AMAP
"
/>
app:map_type=
"
MINE
"
/>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/activity_tmarker.xml
View file @
8a1780fa
...
...
@@ -6,18 +6,19 @@
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<!-- <LinearLayout-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content">-->
<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=
"删除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
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