Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
R
react-native-amap-sdk
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wind.wang
react-native-amap-sdk
Commits
b9d36b50
Commit
b9d36b50
authored
Mar 12, 2019
by
wind.wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update amap3d
parent
ce425048
Changes
53
Hide whitespace changes
Inline
Side-by-side
Showing
53 changed files
with
1271 additions
and
394 deletions
+1271
-394
.classpath
android/locationamap/.classpath
+6
-0
.project
android/locationamap/.project
+8
-2
org.eclipse.buildship.core.prefs
...d/locationamap/.settings/org.eclipse.buildship.core.prefs
+1
-1
.classpath
android/map3damap/.classpath
+6
-0
.project
android/map3damap/.project
+23
-0
org.eclipse.buildship.core.prefs
android/map3damap/.settings/org.eclipse.buildship.core.prefs
+2
-0
build.gradle
android/map3damap/build.gradle
+1
-1
AMap3DPackage.kt
...p/src/main/java/cn/qiuxiang/react/amap3d/AMap3DPackage.kt
+6
-2
AMapOfflineModule.kt
...c/main/java/cn/qiuxiang/react/amap3d/AMapOfflineModule.kt
+101
-0
AMapUtils.kt
...damap/src/main/java/cn/qiuxiang/react/amap3d/AMapUtils.kt
+2
-2
AMapCircle.kt
...src/main/java/cn/qiuxiang/react/amap3d/maps/AMapCircle.kt
+4
-4
AMapHeatMap.kt
...rc/main/java/cn/qiuxiang/react/amap3d/maps/AMapHeatMap.kt
+36
-0
AMapHeatMapManager.kt
.../java/cn/qiuxiang/react/amap3d/maps/AMapHeatMapManager.kt
+32
-0
AMapInfoWindowAdapter.kt
...va/cn/qiuxiang/react/amap3d/maps/AMapInfoWindowAdapter.kt
+3
-3
AMapMarker.kt
...src/main/java/cn/qiuxiang/react/amap3d/maps/AMapMarker.kt
+30
-2
AMapMarkerManager.kt
...n/java/cn/qiuxiang/react/amap3d/maps/AMapMarkerManager.kt
+21
-0
AMapMultiPoint.kt
...main/java/cn/qiuxiang/react/amap3d/maps/AMapMultiPoint.kt
+46
-0
AMapMultiPointManager.kt
...va/cn/qiuxiang/react/amap3d/maps/AMapMultiPointManager.kt
+34
-0
AMapOverlay.kt
...rc/main/java/cn/qiuxiang/react/amap3d/maps/AMapOverlay.kt
+1
-2
AMapPolygon.kt
...rc/main/java/cn/qiuxiang/react/amap3d/maps/AMapPolygon.kt
+4
-4
AMapPolyline.kt
...c/main/java/cn/qiuxiang/react/amap3d/maps/AMapPolyline.kt
+6
-4
AMapView.kt
...p/src/main/java/cn/qiuxiang/react/amap3d/maps/AMapView.kt
+28
-22
AMapViewManager.kt
...ain/java/cn/qiuxiang/react/amap3d/maps/AMapViewManager.kt
+70
-12
Component.js
app/amap3d/Component.js
+7
-9
Offline.js
app/amap3d/Offline.js
+12
-0
PropTypes.js
app/amap3d/PropTypes.js
+8
-8
index.js
app/amap3d/index.js
+16
-14
index.web.js
app/amap3d/index.web.js
+0
-21
Circle.js
app/amap3d/maps/Circle.js
+7
-7
HeatMap.js
app/amap3d/maps/HeatMap.js
+27
-0
MapView.js
app/amap3d/maps/MapView.js
+30
-118
Marker.js
app/amap3d/maps/Marker.js
+40
-62
MultiPoint.js
app/amap3d/maps/MultiPoint.js
+45
-0
Polygon.js
app/amap3d/maps/Polygon.js
+7
-7
Polyline.js
app/amap3d/maps/Polyline.js
+80
-0
AMapOffline.m
ios/map3damap/AMapOffline.m
+133
-0
RCTConvert+AMap3D.m
ios/map3damap/RCTConvert+AMap3D.m
+10
-0
AMapCircle.m
ios/map3damap/maps/AMapCircle.m
+5
-4
AMapHeatMap.h
ios/map3damap/maps/AMapHeatMap.h
+5
-0
AMapHeatMap.m
ios/map3damap/maps/AMapHeatMap.m
+42
-0
AMapHeatMapManager.m
ios/map3damap/maps/AMapHeatMapManager.m
+23
-0
AMapMarker.m
ios/map3damap/maps/AMapMarker.m
+10
-17
AMapMultiPoint.h
ios/map3damap/maps/AMapMultiPoint.h
+7
-0
AMapMultiPoint.m
ios/map3damap/maps/AMapMultiPoint.m
+38
-0
AMapMultiPointManager.m
ios/map3damap/maps/AMapMultiPointManager.m
+23
-0
AMapPolyline.h
ios/map3damap/maps/AMapPolyline.h
+11
-0
AMapPolyline.m
ios/map3damap/maps/AMapPolyline.m
+108
-0
AMapPolylineManager.m
ios/map3damap/maps/AMapPolylineManager.m
+26
-0
AMapView.h
ios/map3damap/maps/AMapView.h
+2
-2
AMapView.m
ios/map3damap/maps/AMapView.m
+24
-7
AMapViewManager.m
ios/map3damap/maps/AMapViewManager.m
+41
-48
react-native-amap-sdk.podspec
ios/react-native-amap-sdk.podspec
+7
-7
package.json
package.json
+6
-2
No files found.
android/locationamap/.classpath
0 → 100644
View file @
b9d36b50
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry
kind=
"con"
path=
"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"
/>
<classpathentry
kind=
"con"
path=
"org.eclipse.buildship.core.gradleclasspathcontainer"
/>
<classpathentry
kind=
"output"
path=
"bin/default"
/>
</classpath>
android/locationamap/.project
View file @
b9d36b50
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>
locationamap
</name>
<comment>
Project
locationamap
created by Buildship.
</comment>
<name>
react-native-amap-location
</name>
<comment>
Project
react-native-amap-location
created by Buildship.
</comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>
org.eclipse.jdt.core.javabuilder
</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>
org.eclipse.buildship.core.gradleprojectbuilder
</name>
<arguments>
...
...
@@ -12,6 +17,7 @@
</buildCommand>
</buildSpec>
<natures>
<nature>
org.eclipse.jdt.core.javanature
</nature>
<nature>
org.eclipse.buildship.core.gradleprojectnature
</nature>
</natures>
</projectDescription>
android/locationamap/.settings/org.eclipse.buildship.core.prefs
View file @
b9d36b50
connection.project.dir=
connection.project.dir=
../../../../../android
eclipse.preferences.version=1
android/map3damap/.classpath
0 → 100644
View file @
b9d36b50
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry
kind=
"con"
path=
"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"
/>
<classpathentry
kind=
"con"
path=
"org.eclipse.buildship.core.gradleclasspathcontainer"
/>
<classpathentry
kind=
"output"
path=
"bin/default"
/>
</classpath>
android/map3damap/.project
0 → 100644
View file @
b9d36b50
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>
react-native-amap-map
</name>
<comment>
Project react-native-amap-map created by Buildship.
</comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>
org.eclipse.jdt.core.javabuilder
</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>
org.eclipse.buildship.core.gradleprojectbuilder
</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>
org.eclipse.jdt.core.javanature
</nature>
<nature>
org.eclipse.buildship.core.gradleprojectnature
</nature>
</natures>
</projectDescription>
android/map3damap/.settings/org.eclipse.buildship.core.prefs
0 → 100644
View file @
b9d36b50
connection.project.dir=../../../../../android
eclipse.preferences.version=1
android/map3damap/build.gradle
View file @
b9d36b50
...
...
@@ -27,6 +27,6 @@ android {
dependencies
{
provided
'com.facebook.react:react-native:+'
compile
'com.amap.api:
map2d:5.2
.0'
compile
'com.amap.api:
3dmap:6.6
.0'
compile
"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}
android/map3damap/src/main/java/cn/qiuxiang/react/amap3d/AMap3DPackage.kt
View file @
b9d36b50
...
...
@@ -8,7 +8,9 @@ import com.facebook.react.uimanager.ViewManager
class
AMap3DPackage
:
ReactPackage
{
override
fun
createNativeModules
(
reactContext
:
ReactApplicationContext
):
List
<
NativeModule
>
{
return
listOf
()
return
listOf
(
AMapOfflineModule
(
reactContext
)
)
}
override
fun
createViewManagers
(
reactContext
:
ReactApplicationContext
):
List
<
ViewManager
<*
,
*
>>
{
...
...
@@ -18,7 +20,9 @@ class AMap3DPackage : ReactPackage {
AMapInfoWindowManager
(),
AMapPolylineManager
(),
AMapPolygonManager
(),
AMapCircleManager
()
AMapCircleManager
(),
AMapHeatMapManager
(),
AMapMultiPointManager
()
)
}
}
android/map3damap/src/main/java/cn/qiuxiang/react/amap3d/AMapOfflineModule.kt
0 → 100644
View file @
b9d36b50
package
cn.qiuxiang.react.amap3d
import
com.amap.api.maps.offlinemap.OfflineMapCity
import
com.amap.api.maps.offlinemap.OfflineMapManager
import
com.amap.api.maps.offlinemap.OfflineMapProvince
import
com.amap.api.maps.offlinemap.OfflineMapStatus
import
com.facebook.react.bridge.*
import
com.facebook.react.modules.core.DeviceEventManagerModule
@Suppress
(
"unused"
)
class
AMapOfflineModule
(
private
val
reactContext
:
ReactApplicationContext
)
:
ReactContextBaseJavaModule
(
reactContext
),
OfflineMapManager
.
OfflineMapDownloadListener
{
private
val
manager
=
OfflineMapManager
(
reactContext
,
this
)
override
fun
getName
():
String
{
return
"AMapOffline"
}
@ReactMethod
fun
getProvinces
(
promise
:
Promise
)
{
val
provinces
=
Arguments
.
createArray
()
manager
.
offlineMapProvinceList
.
forEach
{
provinces
.
pushMap
(
buildProvince
(
it
))
}
promise
.
resolve
(
provinces
)
}
@ReactMethod
fun
getCities
(
promise
:
Promise
)
{
val
cities
=
Arguments
.
createArray
()
manager
.
offlineMapCityList
.
forEach
{
cities
.
pushMap
(
buildCity
(
it
))
}
promise
.
resolve
(
cities
)
}
@ReactMethod
fun
download
(
name
:
String
)
{
manager
.
offlineMapProvinceList
.
forEach
{
if
(
it
.
provinceName
==
name
)
{
return
manager
.
downloadByProvinceName
(
name
)
}
it
.
cityList
.
forEach
{
if
(
it
.
city
==
name
)
{
return
manager
.
downloadByCityName
(
name
)
}
}
}
}
@ReactMethod
fun
stop
()
{
manager
.
stop
()
}
@ReactMethod
fun
remove
(
name
:
String
)
{
manager
.
remove
(
name
)
}
private
fun
buildCity
(
city
:
OfflineMapCity
):
WritableMap
{
val
map
=
Arguments
.
createMap
()
map
.
putString
(
"name"
,
city
.
city
)
map
.
putString
(
"code"
,
city
.
code
)
map
.
putString
(
"state"
,
getState
(
city
.
state
))
map
.
putInt
(
"size"
,
city
.
size
.
toInt
())
return
map
}
private
fun
buildProvince
(
province
:
OfflineMapProvince
):
WritableMap
{
val
map
=
Arguments
.
createMap
()
map
.
putString
(
"name"
,
province
.
provinceName
)
map
.
putString
(
"state"
,
getState
(
province
.
state
))
map
.
putInt
(
"size"
,
province
.
size
.
toInt
())
val
cities
=
Arguments
.
createArray
()
province
.
cityList
.
forEach
{
cities
.
pushMap
(
buildCity
(
it
))
}
map
.
putArray
(
"cities"
,
cities
)
return
map
}
private
fun
getState
(
code
:
Int
):
String
{
var
state
=
""
when
(
code
)
{
OfflineMapStatus
.
SUCCESS
->
state
=
"downloaded"
OfflineMapStatus
.
LOADING
->
state
=
"downloading"
OfflineMapStatus
.
NEW_VERSION
->
state
=
"expired"
OfflineMapStatus
.
WAITING
->
state
=
"waiting"
OfflineMapStatus
.
UNZIP
->
state
=
"unzip"
}
return
state
}
override
fun
onDownload
(
state
:
Int
,
progress
:
Int
,
name
:
String
?)
{
val
data
=
Arguments
.
createMap
()
data
.
putString
(
"name"
,
name
)
data
.
putString
(
"state"
,
getState
(
state
))
data
.
putInt
(
"progress"
,
progress
)
reactContext
.
getJSModule
(
DeviceEventManagerModule
.
RCTDeviceEventEmitter
::
class
.
java
).
emit
(
"download"
,
data
)
}
override
fun
onCheckUpdate
(
p0
:
Boolean
,
p1
:
String
?)
{}
override
fun
onRemove
(
p0
:
Boolean
,
p1
:
String
?,
p2
:
String
?)
{}
}
\ No newline at end of file
android/map3damap/src/main/java/cn/qiuxiang/react/amap3d/AMapUtils.kt
View file @
b9d36b50
package
cn.qiuxiang.react.amap3d
import
android.content.res.Resources
import
com.amap.api.maps
2d
.model.LatLng
import
com.amap.api.maps
2d
.model.LatLngBounds
import
com.amap.api.maps.model.LatLng
import
com.amap.api.maps.model.LatLngBounds
import
com.facebook.react.bridge.Arguments
import
com.facebook.react.bridge.ReadableArray
import
com.facebook.react.bridge.ReadableMap
...
...
android/map3damap/src/main/java/cn/qiuxiang/react/amap3d/maps/AMapCircle.kt
View file @
b9d36b50
...
...
@@ -2,10 +2,10 @@ package cn.qiuxiang.react.amap3d.maps
import
android.content.Context
import
android.graphics.Color
import
com.amap.api.maps
2d
.AMap
import
com.amap.api.maps
2d
.model.Circle
import
com.amap.api.maps
2d
.model.CircleOptions
import
com.amap.api.maps
2d
.model.LatLng
import
com.amap.api.maps.AMap
import
com.amap.api.maps.model.Circle
import
com.amap.api.maps.model.CircleOptions
import
com.amap.api.maps.model.LatLng
import
com.facebook.react.views.view.ReactViewGroup
class
AMapCircle
(
context
:
Context
)
:
ReactViewGroup
(
context
),
AMapOverlay
{
...
...
android/map3damap/src/main/java/cn/qiuxiang/react/amap3d/maps/AMapHeatMap.kt
0 → 100644
View file @
b9d36b50
package
cn.qiuxiang.react.amap3d.maps
import
android.content.Context
import
cn.qiuxiang.react.amap3d.toLatLngList
import
com.amap.api.maps.AMap
import
com.amap.api.maps.model.HeatmapTileProvider
import
com.amap.api.maps.model.LatLng
import
com.amap.api.maps.model.TileOverlay
import
com.amap.api.maps.model.TileOverlayOptions
import
com.facebook.react.bridge.ReadableArray
import
com.facebook.react.views.view.ReactViewGroup
class
AMapHeatMap
(
context
:
Context
)
:
ReactViewGroup
(
context
),
AMapOverlay
{
private
var
overlay
:
TileOverlay
?
=
null
private
var
coordinates
:
ArrayList
<
LatLng
>
=
ArrayList
()
var
opacity
:
Double
=
0.6
var
radius
:
Int
=
12
fun
setCoordinates
(
coordinates
:
ReadableArray
)
{
this
.
coordinates
=
coordinates
.
toLatLngList
()
}
override
fun
add
(
map
:
AMap
)
{
overlay
=
map
.
addTileOverlay
(
TileOverlayOptions
().
tileProvider
(
HeatmapTileProvider
.
Builder
()
.
data
(
coordinates
)
.
radius
(
radius
)
.
transparency
(
opacity
)
.
build
()))
}
override
fun
remove
()
{
overlay
?.
remove
()
}
}
\ No newline at end of file
android/map3damap/src/main/java/cn/qiuxiang/react/amap3d/maps/AMapHeatMapManager.kt
0 → 100644
View file @
b9d36b50
package
cn.qiuxiang.react.amap3d.maps
import
com.facebook.react.bridge.ReadableArray
import
com.facebook.react.uimanager.SimpleViewManager
import
com.facebook.react.uimanager.ThemedReactContext
import
com.facebook.react.uimanager.annotations.ReactProp
@Suppress
(
"unused"
)
internal
class
AMapHeatMapManager
:
SimpleViewManager
<
AMapHeatMap
>()
{
override
fun
getName
():
String
{
return
"AMapHeatMap"
}
override
fun
createViewInstance
(
reactContext
:
ThemedReactContext
):
AMapHeatMap
{
return
AMapHeatMap
(
reactContext
)
}
@ReactProp
(
name
=
"coordinates"
)
fun
setCoordinate
(
heatMap
:
AMapHeatMap
,
coordinates
:
ReadableArray
)
{
heatMap
.
setCoordinates
(
coordinates
)
}
@ReactProp
(
name
=
"radius"
)
fun
setRadius
(
heatMap
:
AMapHeatMap
,
radius
:
Int
)
{
heatMap
.
radius
=
radius
}
@ReactProp
(
name
=
"opacity"
)
fun
setOpacity
(
heatMap
:
AMapHeatMap
,
opacity
:
Double
)
{
heatMap
.
opacity
=
opacity
}
}
\ No newline at end of file
android/map3damap/src/main/java/cn/qiuxiang/react/amap3d/maps/AMapInfoWindowAdapter.kt
View file @
b9d36b50
...
...
@@ -5,13 +5,13 @@ import android.graphics.Color
import
android.view.View
import
android.widget.LinearLayout
import
android.widget.TextView
import
com.amap.api.maps
2d.AMap
import
com.amap.api.maps
2d
.model.Marker
import
com.amap.api.maps
.AMap.InfoWindowAdapter
import
com.amap.api.maps.model.Marker
class
AMapInfoWindowAdapter
(
private
val
context
:
Context
,
private
val
markers
:
HashMap
<
String
,
AMapMarker
>
)
:
AMap
.
InfoWindowAdapter
{
)
:
InfoWindowAdapter
{
val
paddingTop
=
context
.
resources
.
displayMetrics
.
density
override
fun
getInfoWindow
(
marker
:
Marker
):
View
?
{
...
...
android/map3damap/src/main/java/cn/qiuxiang/react/amap3d/maps/AMapMarker.kt
View file @
b9d36b50
...
...
@@ -5,8 +5,8 @@ import android.graphics.Bitmap
import
android.graphics.Canvas
import
android.view.View
import
cn.qiuxiang.react.amap3d.toPx
import
com.amap.api.maps
2d
.AMap
import
com.amap.api.maps
2d
.model.*
import
com.amap.api.maps.AMap
import
com.amap.api.maps.model.*
import
com.facebook.react.bridge.ReadableArray
import
com.facebook.react.views.view.ReactViewGroup
...
...
@@ -59,12 +59,36 @@ class AMapMarker(context: Context) : ReactViewGroup(context), AMapOverlay {
marker
?.
snippet
=
value
}
var
flat
:
Boolean
=
false
set
(
value
)
{
field
=
value
marker
?.
isFlat
=
value
}
var
opacity
:
Float
=
1f
set
(
value
)
{
field
=
value
marker
?.
alpha
=
value
}
var
draggable
:
Boolean
=
false
set
(
value
)
{
field
=
value
marker
?.
isDraggable
=
value
}
var
clickDisabled
:
Boolean
=
false
set
(
value
)
{
field
=
value
marker
?.
isClickable
=
!
value
}
var
infoWindowDisabled
:
Boolean
=
false
set
(
value
)
{
field
=
value
marker
?.
isInfoWindowEnable
=
!
value
}
var
active
:
Boolean
=
false
set
(
value
)
{
field
=
value
...
...
@@ -83,14 +107,18 @@ class AMapMarker(context: Context) : ReactViewGroup(context), AMapOverlay {
override
fun
add
(
map
:
AMap
)
{
marker
=
map
.
addMarker
(
MarkerOptions
()
.
setFlat
(
flat
)
.
icon
(
bitmapDescriptor
)
.
alpha
(
opacity
)
.
draggable
(
draggable
)
.
position
(
position
)
.
anchor
(
anchorU
,
anchorV
)
.
infoWindowEnable
(!
infoWindowDisabled
)
.
title
(
title
)
.
snippet
(
snippet
)
.
zIndex
(
zIndex
))
this
.
clickDisabled
=
clickDisabled
this
.
active
=
active
}
...
...
android/map3damap/src/main/java/cn/qiuxiang/react/amap3d/maps/AMapMarkerManager.kt
View file @
b9d36b50
...
...
@@ -2,6 +2,7 @@ package cn.qiuxiang.react.amap3d.maps
import
android.view.View
import
cn.qiuxiang.react.amap3d.toLatLng
import
com.amap.api.maps.model.LatLng
import
com.facebook.react.bridge.ReadableArray
import
com.facebook.react.bridge.ReadableMap
import
com.facebook.react.common.MapBuilder
...
...
@@ -73,11 +74,31 @@ internal class AMapMarkerManager : ViewGroupManager<AMapMarker>() {
view
.
position
=
coordinate
.
toLatLng
()
}
@ReactProp
(
name
=
"flat"
)
fun
setFlat
(
marker
:
AMapMarker
,
flat
:
Boolean
)
{
marker
.
flat
=
flat
}
@ReactProp
(
name
=
"opacity"
)
override
fun
setOpacity
(
marker
:
AMapMarker
,
opacity
:
Float
)
{
marker
.
opacity
=
opacity
}
@ReactProp
(
name
=
"draggable"
)
fun
setDraggable
(
marker
:
AMapMarker
,
draggable
:
Boolean
)
{
marker
.
draggable
=
draggable
}
@ReactProp
(
name
=
"clickDisabled"
)
fun
setClickDisabled
(
marker
:
AMapMarker
,
disabled
:
Boolean
)
{
marker
.
clickDisabled
=
disabled
}
@ReactProp
(
name
=
"infoWindowDisabled"
)
fun
setInfoWindowDisabled
(
marker
:
AMapMarker
,
disabled
:
Boolean
)
{
marker
.
infoWindowDisabled
=
disabled
}
@ReactProp
(
name
=
"active"
)
fun
setSelected
(
marker
:
AMapMarker
,
active
:
Boolean
)
{
marker
.
active
=
active
...
...
android/map3damap/src/main/java/cn/qiuxiang/react/amap3d/maps/AMapMultiPoint.kt
0 → 100644
View file @
b9d36b50
package
cn.qiuxiang.react.amap3d.maps
import
android.content.Context
import
cn.qiuxiang.react.amap3d.toLatLng
import
com.amap.api.maps.AMap
import
com.amap.api.maps.model.*
import
com.facebook.react.bridge.ReadableArray
import
com.facebook.react.views.view.ReactViewGroup
class
AMapMultiPoint
(
context
:
Context
)
:
ReactViewGroup
(
context
),
AMapOverlay
{
private
var
overlay
:
MultiPointOverlay
?
=
null
private
var
items
:
ArrayList
<
MultiPointItem
>
=
ArrayList
()
private
var
icon
:
BitmapDescriptor
?
=
null
fun
setPoints
(
points
:
ReadableArray
)
{
items
=
ArrayList
((
0
until
points
.
size
())
.
map
{
val
data
=
points
.
getMap
(
it
)
val
item
=
MultiPointItem
(
data
.
toLatLng
())
if
(
data
.
hasKey
(
"title"
))
{
item
.
title
=
data
.
getString
(
"title"
)
}
if
(
data
.
hasKey
(
"subtitle"
))
{
item
.
snippet
=
data
.
getString
(
"subtitle"
)
}
item
.
customerId
=
id
.
toString
()
+
"_"
+
it
item
})
overlay
?.
setItems
(
items
)
}
override
fun
add
(
map
:
AMap
)
{
overlay
=
map
.
addMultiPointOverlay
(
MultiPointOverlayOptions
().
icon
(
icon
))
overlay
?.
setItems
(
items
)
overlay
?.
setEnable
(
true
)
}
override
fun
remove
()
{
overlay
?.
destroy
()
}
fun
setImage
(
image
:
String
)
{
val
drawable
=
context
.
resources
.
getIdentifier
(
image
,
"drawable"
,
context
.
packageName
)
icon
=
BitmapDescriptorFactory
.
fromResource
(
drawable
)
}
}
\ No newline at end of file
android/map3damap/src/main/java/cn/qiuxiang/react/amap3d/maps/AMapMultiPointManager.kt
0 → 100644
View file @
b9d36b50
package
cn.qiuxiang.react.amap3d.maps
import
com.facebook.react.bridge.ReadableArray
import
com.facebook.react.common.MapBuilder
import
com.facebook.react.uimanager.SimpleViewManager
import
com.facebook.react.uimanager.ThemedReactContext
import
com.facebook.react.uimanager.annotations.ReactProp
@Suppress
(
"unused"
)
internal
class
AMapMultiPointManager
:
SimpleViewManager
<
AMapMultiPoint
>()
{
override
fun
getName
():
String
{
return
"AMapMultiPoint"
}
override
fun
createViewInstance
(
reactContext
:
ThemedReactContext
):
AMapMultiPoint
{
return
AMapMultiPoint
(
reactContext
)
}
override
fun
getExportedCustomDirectEventTypeConstants
():
Map
<
String
,
Any
>?
{
return
MapBuilder
.
of
(
"onItemPress"
,
MapBuilder
.
of
(
"registrationName"
,
"onItemPress"
)
)
}
@ReactProp
(
name
=
"points"
)
fun
setPoints
(
multiPoint
:
AMapMultiPoint
,
points
:
ReadableArray
)
{
multiPoint
.
setPoints
(
points
)
}
@ReactProp
(
name
=
"image"
)
fun
setImage
(
multiPoint
:
AMapMultiPoint
,
image
:
String
)
{
multiPoint
.
setImage
(
image
);
}
}
\ No newline at end of file
android/map3damap/src/main/java/cn/qiuxiang/react/amap3d/maps/AMapOverlay.kt
View file @
b9d36b50
package
cn.qiuxiang.react.amap3d.maps
import
com.amap.api.maps2d.AMap
import
com.amap.api.maps.AMap
interface
AMapOverlay
{
fun
add
(
map
:
AMap
)
...
...
android/map3damap/src/main/java/cn/qiuxiang/react/amap3d/maps/AMapPolygon.kt
View file @
b9d36b50
...
...
@@ -3,10 +3,10 @@ package cn.qiuxiang.react.amap3d.maps
import
android.content.Context
import
android.graphics.Color
import
cn.qiuxiang.react.amap3d.toLatLngList
import
com.amap.api.maps
2d
.AMap
import
com.amap.api.maps
2d
.model.LatLng
import
com.amap.api.maps
2d
.model.Polygon
import
com.amap.api.maps
2d
.model.PolygonOptions
import
com.amap.api.maps.AMap
import
com.amap.api.maps.model.LatLng
import
com.amap.api.maps.model.Polygon
import
com.amap.api.maps.model.PolygonOptions
import
com.facebook.react.bridge.ReadableArray
import
com.facebook.react.views.view.ReactViewGroup
...
...
android/map3damap/src/main/java/cn/qiuxiang/react/amap3d/maps/AMapPolyline.kt
View file @
b9d36b50
...
...
@@ -3,10 +3,10 @@ package cn.qiuxiang.react.amap3d.maps
import
android.content.Context
import
android.graphics.Color
import
cn.qiuxiang.react.amap3d.toLatLngList
import
com.amap.api.maps
2d
.AMap
import
com.amap.api.maps
2d
.model.LatLng
import
com.amap.api.maps
2d
.model.Polyline
import
com.amap.api.maps
2d
.model.PolylineOptions
import
com.amap.api.maps.AMap
import
com.amap.api.maps.model.LatLng
import
com.amap.api.maps.model.Polyline
import
com.amap.api.maps.model.PolylineOptions
import
com.facebook.react.bridge.ReadableArray
import
com.facebook.react.views.view.ReactViewGroup
...
...
@@ -62,7 +62,9 @@ class AMapPolyline(context: Context) : ReactViewGroup(context), AMapOverlay {
polyline
=
map
.
addPolyline
(
PolylineOptions
()
.
addAll
(
coordinates
)
.
color
(
color
)
.
colorValues
(
colors
)
.
width
(
width
)
.
useGradient
(
gradient
)
.
geodesic
(
geodesic
)
.
setDottedLine
(
dashed
)
.
zIndex
(
zIndex
))
...
...
android/map3damap/src/main/java/cn/qiuxiang/react/amap3d/maps/AMapView.kt
View file @
b9d36b50
package
cn.qiuxiang.react.amap3d.maps
import
android.content.Context
import
android.view.MotionEvent
import
android.view.View
import
cn.qiuxiang.react.amap3d.toLatLng
import
cn.qiuxiang.react.amap3d.toLatLngBounds
import
cn.qiuxiang.react.amap3d.toWritableMap
import
com.amap.api.maps
2d
.AMap
import
com.amap.api.maps
2d
.CameraUpdateFactory
import
com.amap.api.maps
2d.
MapView
import
com.amap.api.maps
2d
.model.BitmapDescriptorFactory
import
com.amap.api.maps
2d
.model.CameraPosition
import
com.amap.api.maps
2d
.model.Marker
import
com.amap.api.maps
2d
.model.MyLocationStyle
import
com.amap.api.maps.AMap
import
com.amap.api.maps.CameraUpdateFactory
import
com.amap.api.maps
.Texture
MapView
import
com.amap.api.maps.model.BitmapDescriptorFactory
import
com.amap.api.maps.model.CameraPosition
import
com.amap.api.maps.model.Marker
import
com.amap.api.maps.model.MyLocationStyle
import
com.facebook.react.bridge.Arguments
import
com.facebook.react.bridge.ReadableArray
import
com.facebook.react.bridge.ReadableMap
...
...
@@ -20,18 +19,13 @@ import com.facebook.react.bridge.WritableMap
import
com.facebook.react.uimanager.ThemedReactContext
import
com.facebook.react.uimanager.events.RCTEventEmitter
class
AMapView
(
context
:
Context
)
:
MapView
(
context
)
{
class
AMapView
(
context
:
Context
)
:
Texture
MapView
(
context
)
{
private
val
eventEmitter
:
RCTEventEmitter
=
(
context
as
ThemedReactContext
).
getJSModule
(
RCTEventEmitter
::
class
.
java
)
private
val
markers
=
HashMap
<
String
,
AMapMarker
>()
private
val
lines
=
HashMap
<
String
,
AMapPolyline
>()
var
touchEnable
:
Boolean
=
true
private
val
locationStyle
by
lazy
{
val
locationStyle
=
MyLocationStyle
()
locationStyle
.
myLocationType
(
MyLocationStyle
.
LOCATION_TYPE_
FOLLOW
_NO_CENTER
)
locationStyle
.
myLocationType
(
MyLocationStyle
.
LOCATION_TYPE_
LOCATION_ROTATE
_NO_CENTER
)
locationStyle
}
...
...
@@ -43,7 +37,7 @@ class AMapView(context: Context) : MapView(context) {
marker
.
active
=
false
}
emit
(
id
,
"on
Map
Press"
,
latLng
.
toWritableMap
())
emit
(
id
,
"onPress"
,
latLng
.
toWritableMap
())
}
map
.
setOnMapLongClickListener
{
latLng
->
...
...
@@ -97,6 +91,18 @@ class AMapView(context: Context) : MapView(context) {
emit
(
markers
[
marker
.
id
]
?.
id
,
"onInfoWindowPress"
)
}
map
.
setOnPolylineClickListener
{
polyline
->
emit
(
lines
[
polyline
.
id
]
?.
id
,
"onPress"
)
}
map
.
setOnMultiPointClickListener
{
item
->
val
slice
=
item
.
customerId
.
split
(
"_"
)
val
data
=
Arguments
.
createMap
()
data
.
putInt
(
"index"
,
slice
[
1
].
toInt
())
emit
(
slice
[
0
].
toInt
(),
"onItemPress"
,
data
)
false
}
map
.
setInfoWindowAdapter
(
AMapInfoWindowAdapter
(
context
,
markers
))
}
...
...
@@ -189,9 +195,13 @@ class AMapView(context: Context) : MapView(context) {
map
.
moveCamera
(
CameraUpdateFactory
.
newLatLngBounds
(
region
.
toLatLngBounds
(),
0
))
}
fun
setLimitRegion
(
region
:
ReadableMap
)
{
map
.
setMapStatusLimits
(
region
.
toLatLngBounds
())
}
fun
setLocationEnabled
(
enabled
:
Boolean
)
{
map
.
isMyLocationEnabled
=
enabled
map
.
setMyLocationStyle
(
locationStyle
)
map
.
myLocationStyle
=
locationStyle
}
fun
setLocationInterval
(
interval
:
Long
)
{
...
...
@@ -220,10 +230,6 @@ class AMapView(context: Context) : MapView(context) {
fun
setLocationType
(
type
:
Int
)
{
locationStyle
.
myLocationType
(
type
)
map
.
setMyLocationStyle
(
locationStyle
)
}
override
fun
onInterceptTouchEvent
(
ev
:
MotionEvent
?):
Boolean
{
return
!
touchEnable
map
.
myLocationStyle
=
locationStyle
}
}
android/map3damap/src/main/java/cn/qiuxiang/react/amap3d/maps/AMapViewManager.kt
View file @
b9d36b50
package
cn.qiuxiang.react.amap3d.maps
import
android.view.View
import
com.amap.api.maps
2d
.AMap
import
com.amap.api.maps
2d
.CameraUpdateFactory
import
com.amap.api.maps
2d
.model.LatLng