Loading android/src/main/java/cn/qiuxiang/react/amap3d/AMapMarkerManager.java +3 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,9 @@ class AMapMarkerManager extends SimpleViewManager<AMapMarker> { public Map<String, Object> getExportedCustomDirectEventTypeConstants() { HashMap<String, Object> map = new HashMap<>(); map.put("onMarkerClick", MapBuilder.of("registrationName", "onMarkerClick")); map.put("onMarkerDragStart", MapBuilder.of("registrationName", "onMarkerDragStart")); map.put("onMarkerDrag", MapBuilder.of("registrationName", "onMarkerDrag")); map.put("onMarkerDragEnd", MapBuilder.of("registrationName", "onMarkerDragEnd")); return map; } Loading android/src/main/java/cn/qiuxiang/react/amap3d/AMapView.java +21 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,27 @@ public class AMapView extends MapView { return false; } }); map.setOnMarkerDragListener(new AMap.OnMarkerDragListener() { @Override public void onMarkerDragStart(Marker marker) { markers.get(marker.getId()).sendEvent("onMarkerDragStart", Arguments.createMap()); } @Override public void onMarkerDrag(Marker marker) { markers.get(marker.getId()).sendEvent("onMarkerDrag", Arguments.createMap()); } @Override public void onMarkerDragEnd(Marker marker) { LatLng position = marker.getPosition(); WritableMap data = Arguments.createMap(); data.putDouble("latitude", position.latitude); data.putDouble("longitude", position.longitude); markers.get(marker.getId()).sendEvent("onMarkerDragEnd", data); } }); } public void addMarker(AMapMarker marker) { Loading components/Marker.js +6 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,9 @@ class Marker extends Component { zIndex: PropTypes.number, onPress: React.PropTypes.func, onDragStart: React.PropTypes.func, onDrag: React.PropTypes.func, onDragEnd: React.PropTypes.func, } _eventHandler(name) { Loading @@ -66,6 +69,9 @@ class Marker extends Component { const props = { ...this.props, onMarkerClick: this._eventHandler('onPress'), onMarkerDragStart: this._eventHandler('onDragStart'), onMarkerDrag: this._eventHandler('onDrag'), onMarkerDragEnd: this._eventHandler('onDragEnd'), } if (typeof props.image === 'number') { props.image = resolveAssetSource(this.props.image).uri Loading example/src/marker.js +25 −12 Original line number Diff line number Diff line Loading @@ -9,18 +9,31 @@ export default class MarkerComponent extends Component { render() { return <MapView style={StyleSheet.absoluteFill}> <Marker draggable title='这是一个可拖拽的 Marker' coordinate={{ <Marker title='一个可拖拽的 Marker' draggable onDragEnd={({nativeEvent}) => console.log(nativeEvent)} coordinate={{ latitude: 39.806901, longitude: 116.397972, }}/> <Marker image='HUE_RED' title='其他颜色' coordinate={{ }} /> <Marker image='HUE_RED' title='一个红色的 Marker' coordinate={{ latitude: 39.806901, longitude: 116.297972, }}/> <Marker image={require('../images/marker.png')} title='自定义图标' coordinate={{ }} /> <Marker image={require('../images/marker.png')} title='自定义图片' coordinate={{ latitude: 39.906901, longitude: 116.397972, }}/> }} /> </MapView> } } Loading
android/src/main/java/cn/qiuxiang/react/amap3d/AMapMarkerManager.java +3 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,9 @@ class AMapMarkerManager extends SimpleViewManager<AMapMarker> { public Map<String, Object> getExportedCustomDirectEventTypeConstants() { HashMap<String, Object> map = new HashMap<>(); map.put("onMarkerClick", MapBuilder.of("registrationName", "onMarkerClick")); map.put("onMarkerDragStart", MapBuilder.of("registrationName", "onMarkerDragStart")); map.put("onMarkerDrag", MapBuilder.of("registrationName", "onMarkerDrag")); map.put("onMarkerDragEnd", MapBuilder.of("registrationName", "onMarkerDragEnd")); return map; } Loading
android/src/main/java/cn/qiuxiang/react/amap3d/AMapView.java +21 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,27 @@ public class AMapView extends MapView { return false; } }); map.setOnMarkerDragListener(new AMap.OnMarkerDragListener() { @Override public void onMarkerDragStart(Marker marker) { markers.get(marker.getId()).sendEvent("onMarkerDragStart", Arguments.createMap()); } @Override public void onMarkerDrag(Marker marker) { markers.get(marker.getId()).sendEvent("onMarkerDrag", Arguments.createMap()); } @Override public void onMarkerDragEnd(Marker marker) { LatLng position = marker.getPosition(); WritableMap data = Arguments.createMap(); data.putDouble("latitude", position.latitude); data.putDouble("longitude", position.longitude); markers.get(marker.getId()).sendEvent("onMarkerDragEnd", data); } }); } public void addMarker(AMapMarker marker) { Loading
components/Marker.js +6 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,9 @@ class Marker extends Component { zIndex: PropTypes.number, onPress: React.PropTypes.func, onDragStart: React.PropTypes.func, onDrag: React.PropTypes.func, onDragEnd: React.PropTypes.func, } _eventHandler(name) { Loading @@ -66,6 +69,9 @@ class Marker extends Component { const props = { ...this.props, onMarkerClick: this._eventHandler('onPress'), onMarkerDragStart: this._eventHandler('onDragStart'), onMarkerDrag: this._eventHandler('onDrag'), onMarkerDragEnd: this._eventHandler('onDragEnd'), } if (typeof props.image === 'number') { props.image = resolveAssetSource(this.props.image).uri Loading
example/src/marker.js +25 −12 Original line number Diff line number Diff line Loading @@ -9,18 +9,31 @@ export default class MarkerComponent extends Component { render() { return <MapView style={StyleSheet.absoluteFill}> <Marker draggable title='这是一个可拖拽的 Marker' coordinate={{ <Marker title='一个可拖拽的 Marker' draggable onDragEnd={({nativeEvent}) => console.log(nativeEvent)} coordinate={{ latitude: 39.806901, longitude: 116.397972, }}/> <Marker image='HUE_RED' title='其他颜色' coordinate={{ }} /> <Marker image='HUE_RED' title='一个红色的 Marker' coordinate={{ latitude: 39.806901, longitude: 116.297972, }}/> <Marker image={require('../images/marker.png')} title='自定义图标' coordinate={{ }} /> <Marker image={require('../images/marker.png')} title='自定义图片' coordinate={{ latitude: 39.906901, longitude: 116.397972, }}/> }} /> </MapView> } }