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
a4c149a6
Commit
a4c149a6
authored
Jul 11, 2025
by
p x
Browse files
集成初始化,显示地图,显示定位蓝点
parent
b785e7cb
Changes
58
Hide whitespace changes
Inline
Side-by-side
.idea/androidTestResultsUserPreferences.xml
0 → 100644
View file @
a4c149a6
<?xml version="1.0" encoding="UTF-8"?>
<project
version=
"4"
>
<component
name=
"AndroidTestResultsUserPreferences"
>
<option
name=
"androidTestResultsTableState"
>
<map>
<entry
key=
"-390304764"
>
<value>
<AndroidTestResultsTableState>
<option
name=
"preferredColumnWidths"
>
<map>
<entry
key=
"Duration"
value=
"90"
/>
<entry
key=
"Tests"
value=
"360"
/>
<entry
key=
"Xiaomi 23043RP34C"
value=
"120"
/>
</map>
</option>
</AndroidTestResultsTableState>
</value>
</entry>
</map>
</option>
</component>
</project>
\ No newline at end of file
.idea/deploymentTargetSelector.xml
View file @
a4c149a6
...
...
@@ -5,6 +5,9 @@
<SelectionState
runConfigName=
"app"
>
<option
name=
"selectionMode"
value=
"DROPDOWN"
/>
</SelectionState>
<SelectionState
runConfigName=
"testAnnotation()"
>
<option
name=
"selectionMode"
value=
"DROPDOWN"
/>
</SelectionState>
</selectionStates>
</component>
</project>
\ No newline at end of file
app/build.gradle.kts
View file @
a4c149a6
...
...
@@ -34,7 +34,7 @@ android {
jvmTarget
=
"11"
}
buildFeatures
{
//
dataBinding = true
dataBinding
=
true
viewBinding
=
true
}
}
...
...
@@ -53,4 +53,6 @@ dependencies {
androidTestImplementation
(
libs
.
androidx
.
espresso
.
core
)
implementation
(
project
(
":maplibrary"
))
// https://github.com/CymChad/BaseRecyclerViewAdapterHelper/ RecyclerView 适配器
implementation
(
"io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.1.7"
)
}
\ No newline at end of file
app/src/main/AndroidManifest.xml
View file @
a4c149a6
...
...
@@ -13,6 +13,21 @@
android:theme=
"@style/Theme.MapMultiEngine"
tools:targetApi=
"31"
>
<!-- <uses-library-->
<!-- android:name="org.apache.http.legacy"-->
<!-- android:required="false" />-->
<!-- <meta-data-->
<!-- android:name="com.minedata.minenavi.apikey"-->
<!-- android:value="57ac7a0d56494912a0c28e651fa4a40a" />-->
<!-- <meta-data-->
<!-- android:name="com.amap.api.v2.apikey"-->
<!-- android:value="3b7d009011b97dcc3815a93e8ddfcd77" />-->
<!-- <!– 定位需要的服务 使用2.0的定位需要加上这个 –>-->
<!-- <service android:name="com.amap.api.location.APSService" />-->
<activity
android:name=
".MainActivity"
...
...
app/src/main/java/com/sd/mapmultiengine/MainActivity.kt
View file @
a4c149a6
package
com.sd.mapmultiengine
import
android.os.Bundle
import
androidx.activity.viewModels
import
androidx.appcompat.app.AppCompatActivity
import
com.sd.maplibrary.MAP_TYPE
import
com.sd.maplibrary.MSDKInitializer
import
com.sd.maplibrary.OnSdkInitCb
import
com.sd.maplibrary.core.MapReadyView
import
com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import
com.sd.maplibrary.vms.MainVM
import
com.sd.mapmultiengine.databinding.ActivityMainBinding
class
MainActivity
:
AppCompatActivity
()
{
// val yy:Yy by viewModels()
// val yy:Yy by viewModels()
val
mainVM
:
MainVM
by
viewModels
()
private
lateinit
var
binding
:
ActivityMainBinding
var
mapReadView
:
MapReadyView
?
=
null
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
// enableEdgeToEdge()
...
...
@@ -23,22 +30,30 @@ class MainActivity : AppCompatActivity() {
// v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
// insets
// }
initMap
()
test
()
}
fun
test
()
{
binding
.
mapMultiView
.
addMapRenderCallback
(
object
:
OnMapReadyLis
{
override
fun
onMapReady
(
mapReadyView
:
MapReadyView
)
{
this
@MainActivity
.
mapReadView
=
mapReadyView
//显示定位蓝点
mainVM
.
showMyLocLandian
(
this
@MainActivity
.
mapReadView
)
}
})
}
fun
initMap
()
{
MSDKInitializer
.
initializeMap
(
this
,
MAP_TYPE
.
MINE
,
object
:
OnSdkInitCb
{
override
fun
onInitSuccess
(
map_type
:
MAP_TYPE
)
{
println
(
"--------onMapInitSuccess
---map_type = ${map_type
}"
)
MSDKInitializer
.
initializeMap
(
this
,
MAP_TYPE
.
MINE
,
object
:
OnSdkInitCb
{
override
fun
onInitSuccess
()
{
println
(
"--------onMapInitSuccess}"
)
}
override
fun
onInitFailed
(
msg
:
String
?
)
{
override
fun
onInitFailed
(
msg
:
String
)
{
}
override
fun
onPerDenied
()
{
}
})
}
...
...
app/src/main/java/com/sd/mapmultiengine/Yy.kt
deleted
100644 → 0
View file @
b785e7cb
package
com.sd.mapmultiengine
import
androidx.lifecycle.ViewModel
class
Yy
:
ViewModel
()
{
}
\ No newline at end of file
m
ap
library
/src/main/java/com/sd/map
library
/adapter/PoiAdapter.kt
→
ap
p
/src/main/java/com/sd/map
multiengine
/adapter/PoiAdapter.kt
View file @
a4c149a6
package
com.sd.map
library
.adapter
package
com.sd.map
multiengine
.adapter
//import kotlinx.android.synthetic.main.poi_search_list_item.view.*
import
android.content.Context
...
...
@@ -11,9 +11,10 @@ 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.maplibrary.bean.PoiSearchBean
import
com.sd.maplibrary.databinding.PoiSearchListItemBinding
import
com.sd.maplibrary.utils.MyGeoTools
import
com.sd.mapmultiengine.bean.PoiSearchBean
import
com.sd.mapmultiengine.databinding.PoiSearchListItemBinding
import
com.sd.mapmultiengine.utils.MyGeoTools
class
PoiAdapter
:
BaseQuickAdapter
<
PoiSearchBean
,
PoiAdapter
.
PoiSH
>()
{
...
...
@@ -38,11 +39,8 @@ class PoiAdapter : BaseQuickAdapter<PoiSearchBean, PoiAdapter.PoiSH>() {
)
)
:
RecyclerView
.
ViewHolder
(
binding
.
root
)
{
private
var
poi_title
=
binding
.
poiTitle
private
var
tv_num
=
binding
.
tvNum
fun
show
(
bean
:
PoiSearchBean
)
{
tv_num
.
text
=
(
bindingAdapterPosition
+
1
).
toString
()
if
(
usrSearchStr
.
isNotEmpty
())
{
var
tempStr
=
bean
.
title
var
star
=
tempStr
.
indexOf
(
usrSearchStr
)
...
...
m
ap
library
/src/main/java/com/sd/map
library
/bean/MyLocBean.kt
→
ap
p
/src/main/java/com/sd/map
multiengine
/bean/MyLocBean.kt
View file @
a4c149a6
package
com.sd.map
library
.bean
package
com.sd.map
multiengine
.bean
class
MyLocBean
{
// 返回逆地理编码结果所在区(县)的编码。
...
...
m
ap
library
/src/main/java/com/sd/map
library
/bean/PoiSearchBean.kt
→
ap
p
/src/main/java/com/sd/map
multiengine
/bean/PoiSearchBean.kt
View file @
a4c149a6
package
com.sd.map
library
.bean
package
com.sd.map
multiengine
.bean
/**搜索poi**/
class
PoiSearchBean
{
...
...
app/src/main/java/com/sd/mapmultiengine/utils/DisplayUtil.kt
0 → 100644
View file @
a4c149a6
package
com.sd.mapmultiengine.utils
import
android.app.Activity
import
android.content.Context
import
android.content.res.Configuration
import
android.content.res.Resources
import
android.os.Build
import
android.provider.Settings
import
android.util.DisplayMetrics
import
android.util.TypedValue
import
android.view.View
import
android.view.View.MeasureSpec
/**
*author:pc-20171125
*data:2019/11/7 16:08
*/
object
DisplayUtil
{
fun
getDpi
():
Int
{
return
Resources
.
getSystem
().
displayMetrics
.
densityDpi
}
fun
px2dp
(
pxValue
:
Float
):
Int
{
val
scale
=
Resources
.
getSystem
().
displayMetrics
.
density
return
(
pxValue
/
scale
+
0.5f
).
toInt
()
}
fun
dp2px
(
dipValue
:
Float
):
Int
{
val
scale
=
Resources
.
getSystem
().
displayMetrics
.
density
return
(
dipValue
*
scale
+
0.5f
).
toInt
()
}
fun
px2sp
(
pxValue
:
Float
):
Int
{
val
fontScale
=
Resources
.
getSystem
().
displayMetrics
.
scaledDensity
return
(
pxValue
/
fontScale
+
0.5f
).
toInt
()
}
fun
sp2px
(
spValue
:
Float
):
Int
{
val
fontScale
=
Resources
.
getSystem
().
displayMetrics
.
scaledDensity
return
(
spValue
*
fontScale
+
0.5f
).
toInt
()
}
fun
getScreenWidthDp
():
Int
{
val
displayMetrics
=
Resources
.
getSystem
().
displayMetrics
val
widthPixels
=
displayMetrics
.
widthPixels
val
density
=
displayMetrics
.
density
return
Math
.
round
(
widthPixels
/
density
)
}
fun
getScreenWidthPx
():
Int
{
val
displayMetrics
=
Resources
.
getSystem
().
displayMetrics
return
displayMetrics
.
widthPixels
}
fun
getScreenHeightDp
():
Int
{
val
displayMetrics
=
Resources
.
getSystem
().
displayMetrics
val
heightPixels
=
displayMetrics
.
heightPixels
val
density
=
displayMetrics
.
density
return
Math
.
round
(
heightPixels
/
density
)
}
fun
getScreenHeightPx
():
Int
{
val
displayMetrics
=
Resources
.
getSystem
().
displayMetrics
return
displayMetrics
.
heightPixels
}
fun
forceMeasure
(
view
:
View
)
{
val
widthMeasureSpec
=
MeasureSpec
.
makeMeasureSpec
(
0
,
MeasureSpec
.
UNSPECIFIED
)
val
heightMeasureSpec
=
MeasureSpec
.
makeMeasureSpec
(
0
,
MeasureSpec
.
UNSPECIFIED
)
view
.
measure
(
widthMeasureSpec
,
heightMeasureSpec
)
}
private
val
mTmpValue
=
TypedValue
()
fun
getXmlDef
(
context
:
Context
,
id
:
Int
):
Int
{
synchronized
(
mTmpValue
)
{
val
value
:
TypedValue
=
mTmpValue
context
.
resources
.
getValue
(
id
,
value
,
true
)
return
TypedValue
.
complexToFloat
(
value
.
data
).
toInt
()
}
}
fun
getNavigationBarHeight
(
context
:
Context
):
Int
{
val
mInPortrait
=
context
.
resources
.
configuration
.
orientation
==
Configuration
.
ORIENTATION_PORTRAIT
val
result
=
0
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
ICE_CREAM_SANDWICH
)
{
if
(
hasNavBar
(
context
as
Activity
))
{
val
key
:
String
if
(
mInPortrait
)
{
key
=
"navigation_bar_height"
}
else
{
key
=
"navigation_bar_height_landscape"
}
return
getInternalDimensionSize
(
context
,
key
)
}
}
return
result
}
private
fun
hasNavBar
(
activity
:
Activity
):
Boolean
{
//判断小米手机是否开启了全面屏,开启了,直接返回false
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
JELLY_BEAN_MR1
)
{
if
(
Settings
.
Global
.
getInt
(
activity
.
contentResolver
,
"force_fsg_nav_bar"
,
0
)
!=
0
)
{
return
false
}
}
//其他手机根据屏幕真实高度与显示高度是否相同来判断
val
windowManager
=
activity
.
windowManager
val
d
=
windowManager
.
defaultDisplay
val
realDisplayMetrics
=
DisplayMetrics
()
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
JELLY_BEAN_MR1
)
{
d
.
getRealMetrics
(
realDisplayMetrics
)
}
val
realHeight
=
realDisplayMetrics
.
heightPixels
val
realWidth
=
realDisplayMetrics
.
widthPixels
val
displayMetrics
=
DisplayMetrics
()
d
.
getMetrics
(
displayMetrics
)
val
displayHeight
=
displayMetrics
.
heightPixels
val
displayWidth
=
displayMetrics
.
widthPixels
return
realWidth
-
displayWidth
>
0
||
realHeight
-
displayHeight
>
0
}
private
fun
getInternalDimensionSize
(
context
:
Context
,
key
:
String
):
Int
{
var
result
=
0
try
{
val
resourceId
=
context
.
resources
.
getIdentifier
(
key
,
"dimen"
,
"android"
)
if
(
resourceId
>
0
)
{
result
=
Math
.
round
(
context
.
resources
.
getDimensionPixelSize
(
resourceId
)
*
Resources
.
getSystem
().
displayMetrics
.
density
/
context
.
resources
.
displayMetrics
.
density
)
}
}
catch
(
ignored
:
Resources
.
NotFoundException
)
{
return
0
}
return
result
}
}
\ No newline at end of file
m
ap
library
/src/main/java/com/sd/map
library
/utils/MyContants.kt
→
ap
p
/src/main/java/com/sd/map
multiengine
/utils/MyContants.kt
View file @
a4c149a6
package
com.sd.map
library
.utils
package
com.sd.map
multiengine
.utils
object
MyContants
{
const
val
IS_DEBUG
=
true
...
...
m
ap
library
/src/main/java/com/sd/map
library
/utils/MyGeoTools.kt
→
ap
p
/src/main/java/com/sd/map
multiengine
/utils/MyGeoTools.kt
View file @
a4c149a6
package
com.sd.map
library
.utils
package
com.sd.map
multiengine
.utils
import
android.location.Location
import
com.minedata.minenavi.addons.DistanceBean
...
...
m
ap
library
/src/main/java/com/sd/map
library
/utils/SystemUtils.kt
→
ap
p
/src/main/java/com/sd/map
multiengine
/utils/SystemUtils.kt
View file @
a4c149a6
package
com.sd.map
library
.utils
package
com.sd.map
multiengine
.utils
import
android.app.Activity
import
android.app.ActivityManager
...
...
app/src/main/java/com/sd/mapmultiengine/utils/ToastHelper.kt
0 → 100644
View file @
a4c149a6
package
com.sd.mapmultiengine.utils
import
android.content.Context
import
android.widget.Toast
object
ToastHelper
{
/**
* 短时间显示Toast
*/
fun
showShort
(
context
:
Context
,
message
:
String
)
{
Toast
.
makeText
(
context
,
message
,
Toast
.
LENGTH_SHORT
).
run
{
show
()
}
}
}
m
ap
library
/src/main/java/com/sd/map
library
/utils/Utils.java
→
ap
p
/src/main/java/com/sd/map
multiengine
/utils/Utils.java
View file @
a4c149a6
...
...
@@ -20,7 +20,7 @@
*
* You may also get a copy of the license at http://navicore.cn/license/NC_MIT_0.1
**********************************************************************************************************************************/
package
com.sd.map
library
.utils
;
package
com.sd.map
multiengine
.utils
;
import
android.annotation.TargetApi
;
import
android.app.Activity
;
...
...
m
ap
library
/src/main/res/drawable-xhdpi/btn_change_normal.png
→
ap
p
/src/main/res/drawable-xhdpi/btn_change_normal.png
View file @
a4c149a6
File moved
m
ap
library
/src/main/res/drawable-xhdpi/btn_change_press.png
→
ap
p
/src/main/res/drawable-xhdpi/btn_change_press.png
View file @
a4c149a6
File moved
m
ap
library
/src/main/res/drawable-xhdpi/edit_delete.png
→
ap
p
/src/main/res/drawable-xhdpi/edit_delete.png
View file @
a4c149a6
File moved
m
ap
library
/src/main/res/drawable-xhdpi/go_here.png
→
ap
p
/src/main/res/drawable-xhdpi/go_here.png
View file @
a4c149a6
File moved
m
ap
library
/src/main/res/drawable-xhdpi/icon_search.png
→
ap
p
/src/main/res/drawable-xhdpi/icon_search.png
View file @
a4c149a6
File moved
Prev
1
2
3
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