Commit 8a1780fa authored by p x's avatar p x
Browse files

调试DEMO

parent 7a1a8e98
<?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" />
......
...@@ -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")
} }
......
...@@ -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.drawMarket(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.drawPolyline(mapReadView, msLatLng)
//绘制一个圆形 //绘制一个圆形
MSCanvesInMap.dCircle(mapReadView, 39.997290, 116.337000, 2000f) MSCanvesInMap.drawCircle(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.drawPolygon(mapReadView, mspLatLng)
//Poi搜索 //Poi搜索
// testPoiSearch() // testPoiSearch()
//POi范围搜索 //POi范围搜索
......
...@@ -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.mapmultiengine.bean.PoiSearchBean import com.sd.maplibrary.bean.PoiSearchRes
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<PoiSearchBean, PoiAdapter.PoiSH>() { class PoiAdapter : BaseQuickAdapter<PoiSearchRes, 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: PoiSearchBean) { fun show(bean: PoiSearchRes) {
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: PoiSearchBean?) { override fun onBindViewHolder(holder: PoiSH, position: Int, item: PoiSearchRes?) {
holder.show(item!!) holder.show(item!!)
} }
......
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
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
...@@ -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.drawCircle(mapReadView, 39.907923, 116.397512, 2000f)
} }
}) })
//删除圆形
binding.bt1.setOnClickListener {
MSCanvesInMap.deleteCircle(mapReadView,mSOverlay)
}
} }
......
...@@ -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
......
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
...@@ -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)
}
} }
......
...@@ -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!!)
}
} }
......
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
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.drawPolygon(mapReadView, mspLatLng)
} }
}) })
} //删除面
binding.bt1.setOnClickListener {
MSCanvesInMap.deletePolygon(mapReadView, mSOverlay)
}
}
} }
\ No newline at end of file
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
<?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
...@@ -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"
......
<?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
<?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
...@@ -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
...@@ -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"
......
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