From 357a06e7a3d74ef6225ccf51782be98acc6c8883 Mon Sep 17 00:00:00 2001 From: yhaiquan Date: Fri, 8 Nov 2019 12:34:05 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=9D=90?= =?UTF-8?q?=E6=A0=87=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 +- .../baidumap/module/GeolocationModule.java | 131 +++++++++++++++++ index.js | 2 + ios/RCTBaiduMap/GeolocationModule.m | 62 ++++++++ js/CoorTypes.js | 3 +- js/Geolocation.js | 56 ++++++++ yhq.txt | 135 ++++++++++++++++++ 7 files changed, 394 insertions(+), 2 deletions(-) create mode 100644 yhq.txt diff --git a/README.md b/README.md index 65171f6c..5392bf7b 100644 --- a/README.md +++ b/README.md @@ -250,7 +250,12 @@ Cluster 示例 | Promise getCurrentPosition(String coorType) | coorType 可为 `bd09ll` 或 `gcj02`,默认 `bd09ll`|`{"latitude": 0.0, "longitude": 0.0, "address": "", "province": "", "cityCode": "", "city": "", "district": "", "streetName": "", "streetNumber": ""}` Android: `{"latitude": 0.0, "longitude": 0.0, "direction": -1, "altitude": 0.0, "radius": 0.0, "address": "", "countryCode": "", "country": "", "province": "", "cityCode": "", "city": "", "district": "", "street": "", "streetNumber": "", "buildingId": "", "buildingName": ""}` | startLocating(function listener, String coorType) | 开始持续定位 | | stopLocating | 停止持续定位 | - +| convertCoor({longitude,latitude}, CoorType from, CoorType to) | 支持坐标系转换: WGS84->BD09LL, WGS84-GCJ02, BD09LL->GCJ02, GCJ02->BD09LL|{ longitude: 113.965453, latitude: 22.535045 } +convertCoor 样例 +```jsx +Geolocation.convertCoor({latitude:param.lat,longitude:param.lng},CoorTypes.BD09ll,CoorTypes.GCJ02).then((data)=>{ + }); +``` #### GetDistance Methods | Method | Result | ------------------------- | ------- diff --git a/android/src/main/java/org/lovebing/reactnative/baidumap/module/GeolocationModule.java b/android/src/main/java/org/lovebing/reactnative/baidumap/module/GeolocationModule.java index 454b59d9..1d1e13d1 100644 --- a/android/src/main/java/org/lovebing/reactnative/baidumap/module/GeolocationModule.java +++ b/android/src/main/java/org/lovebing/reactnative/baidumap/module/GeolocationModule.java @@ -96,6 +96,137 @@ protected LatLng getBaiduCoorFromGPSCoor(LatLng sourceLatLng) { } + @ReactMethod + public void getGCJ02CoorFromWGS84Coor(double lat, double lng,Promise promise) { + WritableMap params = Arguments.createMap(); + CoordType coord=SDKInitializer.getCoordType(); + boolean isSet_coord=false; + + + if (coord!= BD09LL){ + SDKInitializer.setCoordType(BD09LL); + isSet_coord=true; + } + LatLng src=new LatLng(lat,lng); + CoordinateConverter converter = new CoordinateConverter() + .from(GPS) + .coord(src); + //转换坐标 + LatLng tempdest = converter.convert(); + + + if (isSet_coord){ + SDKInitializer.setCoordType(coord); + } + + + + if (coord!= GCJ02){ + SDKInitializer.setCoordType(GCJ02); + isSet_coord=true; + } + + CoordinateConverter descconverter = new CoordinateConverter() + .from(CoordinateConverter.CoordType.BD09LL) + .coord(tempdest); + //转换坐标 + LatLng dest = descconverter.convert(); + params.putDouble("latitude", dest.latitude); + params.putDouble("longitude", dest.longitude); + if (isSet_coord){ + SDKInitializer.setCoordType(coord); + + } + //System.out.println("getGCJ02CoorFromWGS84Coor lat:"+lat+"lng:"+lng+" to "+"lat:"+dest.latitude+" lng:"+dest.longitude); + + promise.resolve(params); + } + + @ReactMethod + public void getBD09LLCoorFromWGS84Coor(double lat, double lng,Promise promise) { + WritableMap params = Arguments.createMap(); + CoordType coord=SDKInitializer.getCoordType(); + boolean isSet_coord=false; + + if (coord!= BD09LL){ + SDKInitializer.setCoordType(BD09LL); + + isSet_coord=true; + } + LatLng src=new LatLng(lat,lng); + CoordinateConverter converter = new CoordinateConverter() + .from(GPS) + .coord(src); + //转换坐标 + LatLng dest = converter.convert(); + params.putDouble("latitude", dest.latitude); + params.putDouble("longitude", dest.longitude); + if (isSet_coord){ + SDKInitializer.setCoordType(coord); + + } + //System.out.println("getBD09LLCoorFromWGS84Coor lat:"+lat+"lng:"+lng+" to "+"lat:"+dest.latitude+" lng:"+dest.longitude); + + promise.resolve(params); + } + + + @ReactMethod + public void getGCJ02CoorFromBD09LLCoor(double lat, double lng,Promise promise) { + + WritableMap params = Arguments.createMap(); + CoordType coord=SDKInitializer.getCoordType(); + boolean isSet_coord=false; + + if (coord!= GCJ02){ + SDKInitializer.setCoordType(GCJ02); + + isSet_coord=true; + } + LatLng src=new LatLng(lat,lng); + CoordinateConverter converter = new CoordinateConverter() + .from(CoordinateConverter.CoordType.BD09LL) + .coord(src); + //转换坐标 + LatLng dest = converter.convert(); + params.putDouble("latitude", dest.latitude); + params.putDouble("longitude", dest.longitude); + if (isSet_coord){ + SDKInitializer.setCoordType(coord); + + } + //System.out.println("getGCJ02CoorFromBD09LLCoor lat:"+lat+"lng:"+lng+" to "+"lat:"+dest.latitude+" lng:"+dest.longitude); + promise.resolve(params); + + } + @ReactMethod + public void getBD09LLCoorFromGCJ02Coor(double lat, double lng,Promise promise) { + WritableMap params = Arguments.createMap(); + CoordType coord=SDKInitializer.getCoordType(); + boolean isSet_coord=false; + + if (coord!= BD09LL){ + SDKInitializer.setCoordType(BD09LL); + + isSet_coord=true; + } + LatLng src=new LatLng(lat,lng); + CoordinateConverter converter = new CoordinateConverter() + .from(COMMON) + .coord(src); + //转换坐标 + LatLng dest = converter.convert(); + params.putDouble("latitude", dest.latitude); + params.putDouble("longitude", dest.longitude); + if (isSet_coord){ + SDKInitializer.setCoordType(coord); + + } + //System.out.println("getBD09LLCoorFromGCJ02Coor lat:"+lat+"lng:"+lng+" to "+"lat:"+dest.latitude+" lng:"+dest.longitude); + + promise.resolve(params); + } + @ReactMethod public void convertGPSCoor(double lat, double lng, Promise promise) { Log.i("convertGPSCoor", "convertGPSCoor"); diff --git a/index.js b/index.js index 4c71a0da..14c53154 100644 --- a/index.js +++ b/index.js @@ -14,7 +14,9 @@ import _MapTypes from './js/MapTypes'; import _Geolocation from './js/Geolocation'; import _GetDistance from './js/GetDistance'; import _Overlay from './js/Overlay/index'; +import _CoorTypes from './js/CoorTypes'; +export const CoorTypes = _CoorTypes; export const MapView = _MapView; export const MapTypes = _MapTypes; export const Geolocation = _Geolocation; diff --git a/ios/RCTBaiduMap/GeolocationModule.m b/ios/RCTBaiduMap/GeolocationModule.m index ae29f9b3..55aaa2c1 100644 --- a/ios/RCTBaiduMap/GeolocationModule.m +++ b/ios/RCTBaiduMap/GeolocationModule.m @@ -106,6 +106,68 @@ - (NSMutableDictionary *)getLocationEventData:(BMKLocation* _Nullable)location o resolve(coor); } + + +RCT_EXPORT_METHOD(getGCJ02CoorFromWGS84Coor:(double)lat lng:(double)lng + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) { + CLLocationCoordinate2D src = CLLocationCoordinate2DMake(lat, lng); + CLLocationCoordinate2D desc = BMKCoordTrans(src, BMK_COORDTYPE_GPS,BMK_COORDTYPE_COMMON); + NSDictionary* coor = @{ + @"latitude": @(desc.latitude), + @"longitude": @(desc.longitude) + }; + NSLog(@"getGCJ02CoorFromWGS84Coor lat:%f lng:%f to lat:%f lng:%f",lat,lng,desc.latitude,desc.longitude); + + resolve(coor); +} + + +RCT_EXPORT_METHOD(getBD09LLCoorFromWGS84Coor:(double)lat lng:(double)lng + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) { + CLLocationCoordinate2D src = CLLocationCoordinate2DMake(lat, lng); + CLLocationCoordinate2D desc = BMKCoordTrans(src, BMK_COORDTYPE_GPS,BMK_COORDTYPE_BD09LL); + NSDictionary* coor = @{ + @"latitude": @(desc.latitude), + @"longitude": @(desc.longitude) + }; + + NSLog(@"getBD09LLCoorFromWGS84Coor lat:%f lng:%f to lat:%f lng:%f",lat,lng,desc.latitude,desc.longitude); + resolve(coor); +} + + + +RCT_EXPORT_METHOD(getGCJ02CoorFromBD09LLCoor:(double)lat lng:(double)lng + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) { + CLLocationCoordinate2D src = CLLocationCoordinate2DMake(lat, lng); + CLLocationCoordinate2D desc = BMKCoordTrans(src, BMK_COORDTYPE_BD09LL,BMK_COORDTYPE_COMMON); + NSDictionary* coor = @{ + @"latitude": @(desc.latitude), + @"longitude": @(desc.longitude) + }; + + NSLog(@"getGCJ02CoorFromBD09LLCoor lat:%f lng:%f to lat:%f lng:%f",lat,lng,desc.latitude,desc.longitude); + resolve(coor); +} + + +RCT_EXPORT_METHOD(getBD09LLCoorFromGCJ02Coor:(double)lat lng:(double)lng + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) { + + CLLocationCoordinate2D src = CLLocationCoordinate2DMake(lat, lng); + CLLocationCoordinate2D desc = BMKCoordTrans(src,BMK_COORDTYPE_COMMON,BMK_COORDTYPE_BD09LL); + NSDictionary* coor = @{ + @"latitude": @(desc.latitude), + @"longitude": @(desc.longitude) + }; + NSLog(@"getBD09LLCoorFromGCJ02Coor lat:%f lng:%f to lat:%f lng:%f",lat,lng,desc.latitude,desc.longitude); + resolve(coor); +} + RCT_EXPORT_METHOD(geocode:(NSString *)city addr:(NSString *)addr) { [self getGeocodesearch].delegate = self; diff --git a/js/CoorTypes.js b/js/CoorTypes.js index d8f4ccd0..16b07847 100644 --- a/js/CoorTypes.js +++ b/js/CoorTypes.js @@ -7,5 +7,6 @@ export default { BD09ll: 'bd09ll', - GCJ02: 'gcj02' + GCJ02: 'gcj02', + WGS84:'wgs84' }; \ No newline at end of file diff --git a/js/Geolocation.js b/js/Geolocation.js index c3ae22fa..12286797 100644 --- a/js/Geolocation.js +++ b/js/Geolocation.js @@ -125,5 +125,61 @@ export default { _locatingUpdateListener.handler.remove(); _locatingUpdateListener.handler = null; } + }, + convertCoor(source,fromCoorType,toCoorType ) { + return new Promise((resolve, reject) => { + if (fromCoorType==CoorTypes.WGS84){ + if (toCoorType==CoorTypes.BD09ll){ + try { + _module.getBD09LLCoorFromWGS84Coor(source.latitude,source.longitude).then((data)=>{ + resolve(data); + }); + } + catch (e) { + reject(e); + return; + } + + }else if (toCoorType==CoorTypes.GCJ02){ + try { + _module.getGCJ02CoorFromWGS84Coor(source.latitude,source.longitude).then((data)=>{ + resolve(data); + }); + } + catch (e) { + reject(e); + return; + } + + } + }else if (fromCoorType==CoorTypes.BD09ll && toCoorType==CoorTypes.GCJ02){ + try { + _module.getGCJ02CoorFromBD09LLCoor(source.latitude,source.longitude).then((data)=>{ + resolve(data); + }); + } + catch (e) { + reject(e); + return; + } + } + else if (fromCoorType==CoorTypes.GCJ02 && toCoorType==CoorTypes.BD09ll){ + try { + _module.getBD09LLCoorFromGCJ02Coor(source.latitude,source.longitude).then((data)=>{ + resolve(data); + }); + } + catch (e) { + reject(e); + return; + } + }else{ + reject("不支持"); + return; + } + + }); + } + }; diff --git a/yhq.txt b/yhq.txt new file mode 100644 index 00000000..ea10a496 --- /dev/null +++ b/yhq.txt @@ -0,0 +1,135 @@ +js/CoorTypes.js + +, + WGS84:'wgs84' + +index.js + +import _CoorTypes from './js/CoorTypes'; + +export const CoorTypes = _CoorTypes; + + + + +js/Geolocation.js + +, + convertCoor(source,fromCoorType,toCoorType ) { + return new Promise((resolve, reject) => { + if (fromCoorType==CoorTypes.WGS84){ + if (toCoorType==CoorTypes.BD09ll){ + try { + _module.getBD09LLCoorFromWGS84Coor(source.latitude,source.longitude).then((data)=>{ + resolve(data); + }); + } + catch (e) { + reject(e); + return; + } + + }else if (toCoorType==CoorTypes.GCJ02){ + try { + _module.getGCJ02CoorFromWGS84Coor(source.latitude,source.longitude).then((data)=>{ + resolve(data); + }); + } + catch (e) { + reject(e); + return; + } + + } + }else if (fromCoorType==CoorTypes.BD09ll && toCoorType==CoorTypes.GCJ02){ + try { + _module.getGCJ02CoorFromBD09LLCoor(source.latitude,source.longitude).then((data)=>{ + resolve(data); + }); + } + catch (e) { + reject(e); + return; + } + } + else if (fromCoorType==CoorTypes.GCJ02 && toCoorType==CoorTypes.BD09ll){ + try { + _module.getBD09LLCoorFromGCJ02Coor(source.latitude,source.longitude).then((data)=>{ + resolve(data); + }); + } + catch (e) { + reject(e); + return; + } + }else{ + reject("不支持"); + return; + } + + }); + + } + + +/ios/RCTBaiduMap/GeolocationModule.m + +RCT_EXPORT_METHOD(getGCJ02CoorFromWGS84Coor:(double)lat lng:(double)lng + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) { + CLLocationCoordinate2D src = CLLocationCoordinate2DMake(lat, lng); + CLLocationCoordinate2D desc = BMKCoordTrans(src, BMK_COORDTYPE_GPS,BMK_COORDTYPE_COMMON); + NSDictionary* coor = @{ + @"latitude": @(desc.latitude), + @"longitude": @(desc.longitude) + }; + NSLog(@"getGCJ02CoorFromWGS84Coor lat:%f lng:%f to lat:%f lng:%f",lat,lng,desc.latitude,desc.longitude); + + resolve(coor); +} + + +RCT_EXPORT_METHOD(getBD09LLCoorFromWGS84Coor:(double)lat lng:(double)lng + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) { + CLLocationCoordinate2D src = CLLocationCoordinate2DMake(lat, lng); + CLLocationCoordinate2D desc = BMKCoordTrans(src, BMK_COORDTYPE_GPS,BMK_COORDTYPE_BD09LL); + NSDictionary* coor = @{ + @"latitude": @(desc.latitude), + @"longitude": @(desc.longitude) + }; + + NSLog(@"getBD09LLCoorFromWGS84Coor lat:%f lng:%f to lat:%f lng:%f",lat,lng,desc.latitude,desc.longitude); + resolve(coor); +} + + + +RCT_EXPORT_METHOD(getGCJ02CoorFromBD09LLCoor:(double)lat lng:(double)lng + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) { + CLLocationCoordinate2D src = CLLocationCoordinate2DMake(lat, lng); + CLLocationCoordinate2D desc = BMKCoordTrans(src, BMK_COORDTYPE_BD09LL,BMK_COORDTYPE_COMMON); + NSDictionary* coor = @{ + @"latitude": @(desc.latitude), + @"longitude": @(desc.longitude) + }; + + NSLog(@"getGCJ02CoorFromBD09LLCoor lat:%f lng:%f to lat:%f lng:%f",lat,lng,desc.latitude,desc.longitude); + resolve(coor); +} + + +RCT_EXPORT_METHOD(getBD09LLCoorFromGCJ02Coor:(double)lat lng:(double)lng + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) { + + CLLocationCoordinate2D src = CLLocationCoordinate2DMake(lat, lng); + CLLocationCoordinate2D desc = BMKCoordTrans(src,BMK_COORDTYPE_COMMON,BMK_COORDTYPE_BD09LL); + NSDictionary* coor = @{ + @"latitude": @(desc.latitude), + @"longitude": @(desc.longitude) + }; + NSLog(@"getBD09LLCoorFromGCJ02Coor lat:%f lng:%f to lat:%f lng:%f",lat,lng,desc.latitude,desc.longitude); + resolve(coor); +} \ No newline at end of file From 4f1fce20aba30a8859350685cd204fbc94bdc999 Mon Sep 17 00:00:00 2001 From: yhaiquan Date: Fri, 8 Nov 2019 12:42:48 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=9D=90?= =?UTF-8?q?=E6=A0=87=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5392bf7b..fa2c0ef9 100644 --- a/README.md +++ b/README.md @@ -250,7 +250,7 @@ Cluster 示例 | Promise getCurrentPosition(String coorType) | coorType 可为 `bd09ll` 或 `gcj02`,默认 `bd09ll`|`{"latitude": 0.0, "longitude": 0.0, "address": "", "province": "", "cityCode": "", "city": "", "district": "", "streetName": "", "streetNumber": ""}` Android: `{"latitude": 0.0, "longitude": 0.0, "direction": -1, "altitude": 0.0, "radius": 0.0, "address": "", "countryCode": "", "country": "", "province": "", "cityCode": "", "city": "", "district": "", "street": "", "streetNumber": "", "buildingId": "", "buildingName": ""}` | startLocating(function listener, String coorType) | 开始持续定位 | | stopLocating | 停止持续定位 | -| convertCoor({longitude,latitude}, CoorType from, CoorType to) | 支持坐标系转换: WGS84->BD09LL, WGS84-GCJ02, BD09LL->GCJ02, GCJ02->BD09LL|{ longitude: 113.965453, latitude: 22.535045 } +| convertCoor({longitude,latitude}, CoorType from, CoorType to) | 支持坐标系转换: WGS84->BD09LL, WGS84->GCJ02, BD09LL->GCJ02, GCJ02->BD09LL|{ longitude: 113.965453, latitude: 22.535045 } convertCoor 样例 ```jsx Geolocation.convertCoor({latitude:param.lat,longitude:param.lng},CoorTypes.BD09ll,CoorTypes.GCJ02).then((data)=>{ From 115a82cf0ddd052a762f0fcddcb00775bd2703ce Mon Sep 17 00:00:00 2001 From: yhaiquan Date: Fri, 8 Nov 2019 12:44:11 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=9D=90?= =?UTF-8?q?=E6=A0=87=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yhq.txt | 135 -------------------------------------------------------- 1 file changed, 135 deletions(-) delete mode 100644 yhq.txt diff --git a/yhq.txt b/yhq.txt deleted file mode 100644 index ea10a496..00000000 --- a/yhq.txt +++ /dev/null @@ -1,135 +0,0 @@ -js/CoorTypes.js - -, - WGS84:'wgs84' - -index.js - -import _CoorTypes from './js/CoorTypes'; - -export const CoorTypes = _CoorTypes; - - - - -js/Geolocation.js - -, - convertCoor(source,fromCoorType,toCoorType ) { - return new Promise((resolve, reject) => { - if (fromCoorType==CoorTypes.WGS84){ - if (toCoorType==CoorTypes.BD09ll){ - try { - _module.getBD09LLCoorFromWGS84Coor(source.latitude,source.longitude).then((data)=>{ - resolve(data); - }); - } - catch (e) { - reject(e); - return; - } - - }else if (toCoorType==CoorTypes.GCJ02){ - try { - _module.getGCJ02CoorFromWGS84Coor(source.latitude,source.longitude).then((data)=>{ - resolve(data); - }); - } - catch (e) { - reject(e); - return; - } - - } - }else if (fromCoorType==CoorTypes.BD09ll && toCoorType==CoorTypes.GCJ02){ - try { - _module.getGCJ02CoorFromBD09LLCoor(source.latitude,source.longitude).then((data)=>{ - resolve(data); - }); - } - catch (e) { - reject(e); - return; - } - } - else if (fromCoorType==CoorTypes.GCJ02 && toCoorType==CoorTypes.BD09ll){ - try { - _module.getBD09LLCoorFromGCJ02Coor(source.latitude,source.longitude).then((data)=>{ - resolve(data); - }); - } - catch (e) { - reject(e); - return; - } - }else{ - reject("不支持"); - return; - } - - }); - - } - - -/ios/RCTBaiduMap/GeolocationModule.m - -RCT_EXPORT_METHOD(getGCJ02CoorFromWGS84Coor:(double)lat lng:(double)lng - resolver:(RCTPromiseResolveBlock)resolve - rejecter:(RCTPromiseRejectBlock)reject) { - CLLocationCoordinate2D src = CLLocationCoordinate2DMake(lat, lng); - CLLocationCoordinate2D desc = BMKCoordTrans(src, BMK_COORDTYPE_GPS,BMK_COORDTYPE_COMMON); - NSDictionary* coor = @{ - @"latitude": @(desc.latitude), - @"longitude": @(desc.longitude) - }; - NSLog(@"getGCJ02CoorFromWGS84Coor lat:%f lng:%f to lat:%f lng:%f",lat,lng,desc.latitude,desc.longitude); - - resolve(coor); -} - - -RCT_EXPORT_METHOD(getBD09LLCoorFromWGS84Coor:(double)lat lng:(double)lng - resolver:(RCTPromiseResolveBlock)resolve - rejecter:(RCTPromiseRejectBlock)reject) { - CLLocationCoordinate2D src = CLLocationCoordinate2DMake(lat, lng); - CLLocationCoordinate2D desc = BMKCoordTrans(src, BMK_COORDTYPE_GPS,BMK_COORDTYPE_BD09LL); - NSDictionary* coor = @{ - @"latitude": @(desc.latitude), - @"longitude": @(desc.longitude) - }; - - NSLog(@"getBD09LLCoorFromWGS84Coor lat:%f lng:%f to lat:%f lng:%f",lat,lng,desc.latitude,desc.longitude); - resolve(coor); -} - - - -RCT_EXPORT_METHOD(getGCJ02CoorFromBD09LLCoor:(double)lat lng:(double)lng - resolver:(RCTPromiseResolveBlock)resolve - rejecter:(RCTPromiseRejectBlock)reject) { - CLLocationCoordinate2D src = CLLocationCoordinate2DMake(lat, lng); - CLLocationCoordinate2D desc = BMKCoordTrans(src, BMK_COORDTYPE_BD09LL,BMK_COORDTYPE_COMMON); - NSDictionary* coor = @{ - @"latitude": @(desc.latitude), - @"longitude": @(desc.longitude) - }; - - NSLog(@"getGCJ02CoorFromBD09LLCoor lat:%f lng:%f to lat:%f lng:%f",lat,lng,desc.latitude,desc.longitude); - resolve(coor); -} - - -RCT_EXPORT_METHOD(getBD09LLCoorFromGCJ02Coor:(double)lat lng:(double)lng - resolver:(RCTPromiseResolveBlock)resolve - rejecter:(RCTPromiseRejectBlock)reject) { - - CLLocationCoordinate2D src = CLLocationCoordinate2DMake(lat, lng); - CLLocationCoordinate2D desc = BMKCoordTrans(src,BMK_COORDTYPE_COMMON,BMK_COORDTYPE_BD09LL); - NSDictionary* coor = @{ - @"latitude": @(desc.latitude), - @"longitude": @(desc.longitude) - }; - NSLog(@"getBD09LLCoorFromGCJ02Coor lat:%f lng:%f to lat:%f lng:%f",lat,lng,desc.latitude,desc.longitude); - resolve(coor); -} \ No newline at end of file From 819b1e636d5bde3d9a7b4161ee28f43ee6075e70 Mon Sep 17 00:00:00 2001 From: yhaiquan Date: Fri, 8 Nov 2019 14:12:13 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=9D=90?= =?UTF-8?q?=E6=A0=87=E8=BD=AC=E6=8D=A2,=E4=BF=AE=E6=94=B9=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E9=A3=8E=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../baidumap/module/GeolocationModule.java | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/android/src/main/java/org/lovebing/reactnative/baidumap/module/GeolocationModule.java b/android/src/main/java/org/lovebing/reactnative/baidumap/module/GeolocationModule.java index 1d1e13d1..c8a1b1dc 100644 --- a/android/src/main/java/org/lovebing/reactnative/baidumap/module/GeolocationModule.java +++ b/android/src/main/java/org/lovebing/reactnative/baidumap/module/GeolocationModule.java @@ -99,11 +99,11 @@ protected LatLng getBaiduCoorFromGPSCoor(LatLng sourceLatLng) { @ReactMethod public void getGCJ02CoorFromWGS84Coor(double lat, double lng,Promise promise) { WritableMap params = Arguments.createMap(); - CoordType coord=SDKInitializer.getCoordType(); - boolean isSet_coord=false; + CoordType coord = SDKInitializer.getCoordType(); + boolean isSetCoord= false; - if (coord!= BD09LL){ + if (coord != BD09LL){ SDKInitializer.setCoordType(BD09LL); isSet_coord=true; } @@ -121,9 +121,9 @@ public void getGCJ02CoorFromWGS84Coor(double lat, double lng,Promise promise) { - if (coord!= GCJ02){ + if (coord != GCJ02){ SDKInitializer.setCoordType(GCJ02); - isSet_coord=true; + isSetCoord= true; } CoordinateConverter descconverter = new CoordinateConverter() @@ -145,15 +145,15 @@ public void getGCJ02CoorFromWGS84Coor(double lat, double lng,Promise promise) { @ReactMethod public void getBD09LLCoorFromWGS84Coor(double lat, double lng,Promise promise) { WritableMap params = Arguments.createMap(); - CoordType coord=SDKInitializer.getCoordType(); - boolean isSet_coord=false; + CoordType coord = SDKInitializer.getCoordType(); + boolean isSetCoord= false; if (coord!= BD09LL){ SDKInitializer.setCoordType(BD09LL); - isSet_coord=true; + isSetCoord= true; } - LatLng src=new LatLng(lat,lng); + LatLng src = new LatLng(lat,lng); CoordinateConverter converter = new CoordinateConverter() .from(GPS) .coord(src); @@ -175,15 +175,15 @@ public void getBD09LLCoorFromWGS84Coor(double lat, double lng,Promise promise) { public void getGCJ02CoorFromBD09LLCoor(double lat, double lng,Promise promise) { WritableMap params = Arguments.createMap(); - CoordType coord=SDKInitializer.getCoordType(); - boolean isSet_coord=false; + CoordType coord = SDKInitializer.getCoordType(); + boolean isSetCoord= false; - if (coord!= GCJ02){ + if (coord != GCJ02){ SDKInitializer.setCoordType(GCJ02); - isSet_coord=true; + isSetCoord=true; } - LatLng src=new LatLng(lat,lng); + LatLng src = new LatLng(lat,lng); CoordinateConverter converter = new CoordinateConverter() .from(CoordinateConverter.CoordType.BD09LL) .coord(src); @@ -202,16 +202,16 @@ public void getGCJ02CoorFromBD09LLCoor(double lat, double lng,Promise promise) { @ReactMethod public void getBD09LLCoorFromGCJ02Coor(double lat, double lng,Promise promise) { WritableMap params = Arguments.createMap(); - CoordType coord=SDKInitializer.getCoordType(); - boolean isSet_coord=false; + CoordType coord = SDKInitializer.getCoordType(); + boolean isSetCoord= false; - if (coord!= BD09LL){ + if (coord != BD09LL){ SDKInitializer.setCoordType(BD09LL); - isSet_coord=true; + isSetCoord= true; } - LatLng src=new LatLng(lat,lng); - CoordinateConverter converter = new CoordinateConverter() + LatLng src = new LatLng(lat,lng); + CoordinateConverter converter = new CoordinateConverter() .from(COMMON) .coord(src); //转换坐标 From 7bf0bc54b6c79670d28f513b9ca2941a4685e386 Mon Sep 17 00:00:00 2001 From: yhaiquan Date: Fri, 8 Nov 2019 15:12:04 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=9D=90?= =?UTF-8?q?=E6=A0=87=E8=BD=AC=E6=8D=A2,=E4=BF=AE=E6=94=B9=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E9=A3=8E=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../baidumap/module/GeolocationModule.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/android/src/main/java/org/lovebing/reactnative/baidumap/module/GeolocationModule.java b/android/src/main/java/org/lovebing/reactnative/baidumap/module/GeolocationModule.java index c8a1b1dc..2d5e5ab0 100644 --- a/android/src/main/java/org/lovebing/reactnative/baidumap/module/GeolocationModule.java +++ b/android/src/main/java/org/lovebing/reactnative/baidumap/module/GeolocationModule.java @@ -100,12 +100,12 @@ protected LatLng getBaiduCoorFromGPSCoor(LatLng sourceLatLng) { public void getGCJ02CoorFromWGS84Coor(double lat, double lng,Promise promise) { WritableMap params = Arguments.createMap(); CoordType coord = SDKInitializer.getCoordType(); - boolean isSetCoord= false; + boolean isSetCoord = false; if (coord != BD09LL){ SDKInitializer.setCoordType(BD09LL); - isSet_coord=true; + isSetCoord = true; } LatLng src=new LatLng(lat,lng); CoordinateConverter converter = new CoordinateConverter() @@ -115,7 +115,7 @@ public void getGCJ02CoorFromWGS84Coor(double lat, double lng,Promise promise) { LatLng tempdest = converter.convert(); - if (isSet_coord){ + if (isSetCoord){ SDKInitializer.setCoordType(coord); } @@ -123,7 +123,7 @@ public void getGCJ02CoorFromWGS84Coor(double lat, double lng,Promise promise) { if (coord != GCJ02){ SDKInitializer.setCoordType(GCJ02); - isSetCoord= true; + isSetCoord = true; } CoordinateConverter descconverter = new CoordinateConverter() @@ -133,7 +133,7 @@ public void getGCJ02CoorFromWGS84Coor(double lat, double lng,Promise promise) { LatLng dest = descconverter.convert(); params.putDouble("latitude", dest.latitude); params.putDouble("longitude", dest.longitude); - if (isSet_coord){ + if (isSetCoord){ SDKInitializer.setCoordType(coord); } @@ -146,12 +146,12 @@ public void getGCJ02CoorFromWGS84Coor(double lat, double lng,Promise promise) { public void getBD09LLCoorFromWGS84Coor(double lat, double lng,Promise promise) { WritableMap params = Arguments.createMap(); CoordType coord = SDKInitializer.getCoordType(); - boolean isSetCoord= false; + boolean isSetCoord = false; if (coord!= BD09LL){ SDKInitializer.setCoordType(BD09LL); - isSetCoord= true; + isSetCoord = true; } LatLng src = new LatLng(lat,lng); CoordinateConverter converter = new CoordinateConverter() @@ -161,7 +161,7 @@ public void getBD09LLCoorFromWGS84Coor(double lat, double lng,Promise promise) { LatLng dest = converter.convert(); params.putDouble("latitude", dest.latitude); params.putDouble("longitude", dest.longitude); - if (isSet_coord){ + if (isSetCoord){ SDKInitializer.setCoordType(coord); } @@ -176,12 +176,12 @@ public void getGCJ02CoorFromBD09LLCoor(double lat, double lng,Promise promise) { WritableMap params = Arguments.createMap(); CoordType coord = SDKInitializer.getCoordType(); - boolean isSetCoord= false; + boolean isSetCoord = false; if (coord != GCJ02){ SDKInitializer.setCoordType(GCJ02); - isSetCoord=true; + isSetCoord =true; } LatLng src = new LatLng(lat,lng); CoordinateConverter converter = new CoordinateConverter() @@ -191,7 +191,7 @@ public void getGCJ02CoorFromBD09LLCoor(double lat, double lng,Promise promise) { LatLng dest = converter.convert(); params.putDouble("latitude", dest.latitude); params.putDouble("longitude", dest.longitude); - if (isSet_coord){ + if (isSetCoord){ SDKInitializer.setCoordType(coord); } @@ -203,7 +203,7 @@ public void getGCJ02CoorFromBD09LLCoor(double lat, double lng,Promise promise) { public void getBD09LLCoorFromGCJ02Coor(double lat, double lng,Promise promise) { WritableMap params = Arguments.createMap(); CoordType coord = SDKInitializer.getCoordType(); - boolean isSetCoord= false; + boolean isSetCoord = false; if (coord != BD09LL){ SDKInitializer.setCoordType(BD09LL); @@ -218,7 +218,7 @@ public void getBD09LLCoorFromGCJ02Coor(double lat, double lng,Promise promise) { LatLng dest = converter.convert(); params.putDouble("latitude", dest.latitude); params.putDouble("longitude", dest.longitude); - if (isSet_coord){ + if (isSetCoord){ SDKInitializer.setCoordType(coord); } From 93ab7f1cc56f97ba833b3353627fc7e2b8f5a8d1 Mon Sep 17 00:00:00 2001 From: yhaiquan Date: Wed, 13 Nov 2019 10:42:52 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=9D=90?= =?UTF-8?q?=E6=A0=87=E8=BD=AC=E6=8D=A2,=E4=BF=AE=E6=94=B9=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E9=A3=8E=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ios/RCTBaiduMap/GeolocationModule.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ios/RCTBaiduMap/GeolocationModule.m b/ios/RCTBaiduMap/GeolocationModule.m index 55aaa2c1..65936520 100644 --- a/ios/RCTBaiduMap/GeolocationModule.m +++ b/ios/RCTBaiduMap/GeolocationModule.m @@ -7,7 +7,7 @@ // #import "GeolocationModule.h" - +#import @implementation GeolocationModule From faa45e8cfb2a015d04c4bbedda1aa83dc4a5f44a Mon Sep 17 00:00:00 2001 From: yhaiquan Date: Wed, 13 Nov 2019 11:04:09 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=9D=90?= =?UTF-8?q?=E6=A0=87=E8=BD=AC=E6=8D=A2,=E4=BF=AE=E6=94=B9=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E9=A3=8E=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reactnative/baidumap/module/GeolocationModule.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/android/src/main/java/org/lovebing/reactnative/baidumap/module/GeolocationModule.java b/android/src/main/java/org/lovebing/reactnative/baidumap/module/GeolocationModule.java index 2d5e5ab0..54ead3e2 100644 --- a/android/src/main/java/org/lovebing/reactnative/baidumap/module/GeolocationModule.java +++ b/android/src/main/java/org/lovebing/reactnative/baidumap/module/GeolocationModule.java @@ -15,6 +15,8 @@ import com.baidu.location.LocationClient; import com.baidu.location.LocationClientOption; import com.baidu.location.LocationClientOption.LocationMode; +import com.baidu.mapapi.CoordType; +import com.baidu.mapapi.SDKInitializer; import com.baidu.mapapi.model.LatLng; import com.baidu.mapapi.search.core.PoiInfo; import com.baidu.mapapi.search.core.SearchResult; @@ -33,8 +35,15 @@ import com.facebook.react.bridge.WritableMap; import org.lovebing.reactnative.baidumap.support.AppUtils; + import java.util.List; +import static com.baidu.mapapi.CoordType.BD09LL; +import static com.baidu.mapapi.CoordType.GCJ02; +import static com.baidu.mapapi.utils.CoordinateConverter.CoordType.COMMON; +import static com.baidu.mapapi.utils.CoordinateConverter.CoordType.GPS; + + /** * Created by lovebing on 2016/10/28. */ From 89f4a331794165dabeb2d5d2b2b8d2df1dc99dad Mon Sep 17 00:00:00 2001 From: yhaiquan Date: Wed, 13 Nov 2019 11:28:47 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=9D=90?= =?UTF-8?q?=E6=A0=87=E8=BD=AC=E6=8D=A2,=E4=BF=AE=E6=94=B9=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E9=A3=8E=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/Geolocation.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/Geolocation.js b/js/Geolocation.js index 12286797..8a0af421 100644 --- a/js/Geolocation.js +++ b/js/Geolocation.js @@ -16,7 +16,7 @@ import React, { Component, PropTypes } from 'react'; - +import CoorTypes from './CoorTypes' const _module = NativeModules.BaiduGeolocationModule;