Commit b36447b4 authored by Qiu Xiang's avatar Qiu Xiang

添加 AMapUtils 模块

parent 9dd7268a
...@@ -12,7 +12,7 @@ class AMap3DPackage : ReactPackage { ...@@ -12,7 +12,7 @@ class AMap3DPackage : ReactPackage {
} }
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> { override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
return emptyList() return listOf(AMapUtilsModule(reactContext))
} }
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> { override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
......
package cn.qiuxiang.react.amap3d
import com.amap.api.maps.AMapUtils
import com.amap.api.maps.model.LatLng
import com.facebook.react.bridge.Promise
import com.facebook.react.bridge.ReactApplicationContext
import com.facebook.react.bridge.ReactContextBaseJavaModule
import com.facebook.react.bridge.ReactMethod
@Suppress("unused")
class AMapUtilsModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) {
override fun getName(): String {
return "AMapUtils"
}
@ReactMethod
fun distance(lat1: Double, lng1: Double, lat2: Double, lng2: Double, promise: Promise) {
promise.resolve(AMapUtils.calculateLineDistance(LatLng(lat1, lng1), LatLng(lat2, lng2)))
}
}
\ No newline at end of file
...@@ -6,12 +6,8 @@ import { ...@@ -6,12 +6,8 @@ import {
requireNativeComponent, requireNativeComponent,
} from 'react-native' } from 'react-native'
import {LatLng, Region} from './PropTypes' import {LatLng, Region} from './PropTypes'
import Marker from './Marker'
import Polyline from './Polyline'
import Polygon from './Polygon'
import Circle from './Circle'
class MapView extends Component { export default class MapView extends Component {
static propTypes = { static propTypes = {
...View.propTypes, ...View.propTypes,
...@@ -183,14 +179,6 @@ class MapView extends Component { ...@@ -183,14 +179,6 @@ class MapView extends Component {
render() { render() {
return <AMapView {...this.props}/> return <AMapView {...this.props}/>
} }
static Marker = Marker
static Polyline = Polyline
static Polygon = Polygon
static Circle = Circle
} }
AMapView = requireNativeComponent('AMapView', MapView) AMapView = requireNativeComponent('AMapView', MapView)
export default MapView
export {MapView, Marker, Polyline, Polygon, Circle}
import {NativeModules} from 'react-native'
export default NativeModules.AMapUtils
import MapView from './components/MapView'
import Marker from './components/Marker'
import Polyline from './components/Polyline'
import Polygon from './components/Polygon'
import Circle from './components/Circle'
import MapUtils from './components/Utils'
MapView.Marker = Marker
MapView.Polyline = Polyline
MapView.Polygon = Polygon
MapView.Circle = Circle
export default MapView
export {MapView, Marker, Polyline, Polygon, Circle, MapUtils}
#import <React/RCTBridgeModule.h>
#import <MAMapKit/MAGeometry.h>
#pragma ide diagnostic ignored "OCUnusedClassInspection"
@interface AMapUtils : NSObject <RCTBridgeModule>
@end
@implementation AMapUtils
RCT_EXPORT_MODULE()
RCT_EXPORT_METHOD(distance:(double)lat1
lng1:(double)lng1
lat2:(double)lat2
lng2:(double)lng2
resolve:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject ) {
resolve(@(MAMetersBetweenMapPoints(
MAMapPointForCoordinate(CLLocationCoordinate2DMake(lat1, lng1)),
MAMapPointForCoordinate(CLLocationCoordinate2DMake(lat2, lng2))
)));
}
@end
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
"name": "react-native-amap3d", "name": "react-native-amap3d",
"version": "0.2.0", "version": "0.2.0",
"description": "react-native 高德地图组件", "description": "react-native 高德地图组件",
"main": "components/MapView.js",
"author": "Qiu Xiang <i@7c00.cc>", "author": "Qiu Xiang <i@7c00.cc>",
"license": "MIT", "license": "MIT",
"keywords": [ "keywords": [
......
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