Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
R
react-native-amap3d
Project
Project
Details
Activity
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
放牛的园子
react-native-amap3d
Commits
4e467747
Commit
4e467747
authored
Jun 04, 2017
by
Qiu Xiang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加 polyline onPress 事件接口
parent
c6355cc1
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
47 additions
and
3 deletions
+47
-3
AMapPolyline.java
.../src/main/java/cn/qiuxiang/react/amap3d/AMapPolyline.java
+12
-2
AMapPolylineManager.java
...in/java/cn/qiuxiang/react/amap3d/AMapPolylineManager.java
+11
-0
AMapView.java
android/src/main/java/cn/qiuxiang/react/amap3d/AMapView.java
+8
-0
Polyline.js
components/Polyline.js
+14
-0
polyline.js
example/src/polyline.js
+2
-1
No files found.
android/src/main/java/cn/qiuxiang/react/amap3d/AMapPolyline.java
View file @
4e467747
package
cn
.
qiuxiang
.
react
.
amap3d
;
import
android.
content.Contex
t
;
import
android.
annotation.SuppressLin
t
;
import
com.amap.api.maps.AMap
;
import
com.amap.api.maps.model.LatLng
;
...
...
@@ -8,10 +8,14 @@ import com.amap.api.maps.model.Polyline;
import
com.amap.api.maps.model.PolylineOptions
;
import
com.facebook.react.bridge.ReadableArray
;
import
com.facebook.react.bridge.ReadableMap
;
import
com.facebook.react.bridge.WritableMap
;
import
com.facebook.react.uimanager.ThemedReactContext
;
import
com.facebook.react.uimanager.events.RCTEventEmitter
;
import
com.facebook.react.views.view.ReactViewGroup
;
import
java.util.ArrayList
;
@SuppressLint
(
"ViewConstructor"
)
public
class
AMapPolyline
extends
ReactViewGroup
{
private
ArrayList
<
LatLng
>
coordinates
;
private
Polyline
polyline
;
...
...
@@ -23,9 +27,11 @@ public class AMapPolyline extends ReactViewGroup {
private
float
opacity
;
private
ArrayList
<
Integer
>
colors
;
private
boolean
gradient
;
private
RCTEventEmitter
eventEmitter
;
public
AMapPolyline
(
Context
context
)
{
public
AMapPolyline
(
ThemedReact
Context
context
)
{
super
(
context
);
eventEmitter
=
context
.
getJSModule
(
RCTEventEmitter
.
class
);
}
public
void
setCoordinates
(
ReadableArray
coordinates
)
{
...
...
@@ -110,4 +116,8 @@ public class AMapPolyline extends ReactViewGroup {
public
String
getPolylineId
()
{
return
polyline
.
getId
();
}
public
void
sendEvent
(
String
name
,
WritableMap
data
)
{
eventEmitter
.
receiveEvent
(
getId
(),
name
,
data
);
}
}
android/src/main/java/cn/qiuxiang/react/amap3d/AMapPolylineManager.java
View file @
4e467747
package
cn
.
qiuxiang
.
react
.
amap3d
;
import
com.facebook.react.bridge.ReadableArray
;
import
com.facebook.react.common.MapBuilder
;
import
com.facebook.react.uimanager.ThemedReactContext
;
import
com.facebook.react.uimanager.ViewGroupManager
;
import
com.facebook.react.uimanager.annotations.ReactProp
;
import
java.util.HashMap
;
import
java.util.Map
;
class
AMapPolylineManager
extends
ViewGroupManager
<
AMapPolyline
>
{
@Override
public
String
getName
()
{
...
...
@@ -16,6 +20,13 @@ class AMapPolylineManager extends ViewGroupManager<AMapPolyline> {
return
new
AMapPolyline
(
reactContext
);
}
@Override
public
Map
<
String
,
Object
>
getExportedCustomDirectEventTypeConstants
()
{
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"onPolylineClick"
,
MapBuilder
.
of
(
"registrationName"
,
"onPolylineClick"
));
return
map
;
}
@ReactProp
(
name
=
"coordinates"
)
public
void
setCoordinate
(
AMapPolyline
polyline
,
ReadableArray
coordinates
)
{
polyline
.
setCoordinates
(
coordinates
);
...
...
android/src/main/java/cn/qiuxiang/react/amap3d/AMapView.java
View file @
4e467747
...
...
@@ -14,6 +14,7 @@ import com.amap.api.maps.UiSettings;
import
com.amap.api.maps.model.LatLng
;
import
com.amap.api.maps.model.Marker
;
import
com.amap.api.maps.model.MyLocationStyle
;
import
com.amap.api.maps.model.Polyline
;
import
com.facebook.react.bridge.Arguments
;
import
com.facebook.react.bridge.WritableMap
;
import
com.facebook.react.uimanager.ThemedReactContext
;
...
...
@@ -145,6 +146,13 @@ public class AMapView extends MapView {
return
layout
;
}
});
map
.
setOnPolylineClickListener
(
new
AMap
.
OnPolylineClickListener
()
{
@Override
public
void
onPolylineClick
(
Polyline
polyline
)
{
polylines
.
get
(
polyline
.
getId
()).
sendEvent
(
"onPolylineClick"
,
Arguments
.
createMap
());
}
});
}
private
static
float
pxFromDp
(
Context
context
,
float
dp
)
{
...
...
components/Polyline.js
View file @
4e467747
...
...
@@ -34,6 +34,11 @@ class Polyline extends Component {
* 是否绘制虚线
*/
dottedLine
:
PropTypes
.
bool
,
/**
* 点击事件
*/
onPress
:
PropTypes
.
func
,
}
static
defaultProps
=
{
...
...
@@ -43,11 +48,20 @@ class Polyline extends Component {
opacity
:
1
,
}
_handle
(
name
)
{
return
event
=>
{
if
(
this
.
props
[
name
])
{
this
.
props
[
name
](
event
)
}
}
}
render
()
{
const
props
=
{
...
this
.
props
,
width
:
PixelRatio
.
getPixelSizeForLayoutSize
(
this
.
props
.
width
),
colors
:
this
.
props
.
colors
.
map
(
processColor
),
onPolylineClick
:
this
.
_handle
(
'onPress'
),
}
return
<
AMapPolyline
{...
props
}
/
>
}
...
...
example/src/polyline.js
View file @
4e467747
import
React
,
{
Component
}
from
'react'
import
{
StyleSheet
}
from
'react-native'
import
{
StyleSheet
,
Alert
}
from
'react-native'
import
{
MapView
,
Polyline
}
from
'react-native-amap3d'
export
default
class
PolylineExample
extends
Component
{
...
...
@@ -52,6 +52,7 @@ export default class PolylineExample extends Component {
width
=
{
5
}
color
=
'blue'
colors
=
{[
'#f44336'
,
'#2196f3'
,
'#4caf50'
]}
onPress
=
{()
=>
Alert
.
alert
(
'onPress'
)}
coordinates
=
{[
{
latitude
:
39.906901
,
...
...
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