react-native-maps 1.21.0-alpha.12 → 1.21.0-alpha.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +77 -57
- package/android/gradlew +1 -2
- package/android/src/generated/RCTAppDependencyProvider.h +25 -0
- package/android/src/generated/RCTAppDependencyProvider.mm +55 -0
- package/android/src/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
- package/android/src/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
- package/android/src/generated/RCTThirdPartyComponentsProvider.h +16 -0
- package/android/src/generated/RCTThirdPartyComponentsProvider.mm +26 -0
- package/android/src/generated/ReactAppDependencyProvider.podspec +34 -0
- package/android/src/generated/java/com/facebook/fbreact/specs/NativeAirMapsModuleSpec.java +63 -0
- package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerDelegate.java +35 -0
- package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerInterface.java +17 -0
- package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsCircleManagerDelegate.java +49 -0
- package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsCircleManagerInterface.java +23 -0
- package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerDelegate.java +49 -0
- package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerInterface.java +23 -0
- package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +206 -0
- package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +73 -0
- package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerDelegate.java +104 -0
- package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerInterface.java +39 -0
- package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerDelegate.java +46 -0
- package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerInterface.java +23 -0
- package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerDelegate.java +58 -0
- package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerInterface.java +26 -0
- package/android/src/generated/jni/CMakeLists.txt +36 -0
- package/android/src/generated/jni/RNMapsSpecs-generated.cpp +68 -0
- package/android/src/generated/jni/RNMapsSpecs.h +31 -0
- package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
- package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +31 -0
- package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +977 -0
- package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +846 -0
- package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/Props.cpp +193 -0
- package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/Props.h +1223 -0
- package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI-generated.cpp +74 -0
- package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI.h +268 -0
- package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +24 -0
- package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +109 -0
- package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/States.cpp +16 -0
- package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/States.h +113 -0
- package/android/src/main/java/com/rnmaps/fabric/CalloutManager.java +77 -0
- package/android/src/main/java/com/rnmaps/fabric/CircleManager.java +94 -0
- package/android/src/main/java/com/rnmaps/fabric/JSONUtil.java +86 -0
- package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +619 -0
- package/android/src/main/java/com/rnmaps/fabric/MarkerManager.java +258 -0
- package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +235 -2
- package/android/src/main/java/com/rnmaps/fabric/OverlayManager.java +95 -0
- package/android/src/main/java/com/rnmaps/fabric/PolygonManager.java +89 -0
- package/android/src/main/java/com/rnmaps/fabric/PolylineManager.java +121 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnCalloutPressEvent.java +25 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDeselectEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDoublePressEvent.java +27 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDragEndEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDragEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDragStartEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorBuildingFocusedEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorLevelActivatedEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnKmlReadyEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMapLoadedEvent.java +29 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +29 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnPanDragEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +27 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +27 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeCompleteEvent.java +30 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +48 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeStartEvent.java +33 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnSelectEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +39 -3
- package/android/src/main/java/com/rnmaps/maps/MapCallout.java +18 -0
- package/android/src/main/java/com/rnmaps/maps/MapCircle.java +24 -0
- package/android/src/main/java/com/rnmaps/maps/MapManager.java +14 -14
- package/android/src/main/java/com/rnmaps/maps/MapMarker.java +637 -556
- package/android/src/main/java/com/rnmaps/maps/MapMarkerManager.java +3 -3
- package/android/src/main/java/com/rnmaps/maps/MapModule.java +206 -206
- package/android/src/main/java/com/rnmaps/maps/MapOverlay.java +267 -151
- package/android/src/main/java/com/rnmaps/maps/MapPolygon.java +31 -1
- package/android/src/main/java/com/rnmaps/maps/MapPolyline.java +207 -141
- package/android/src/main/java/com/rnmaps/maps/MapPolylineManager.java +1 -16
- package/android/src/main/java/com/rnmaps/maps/MapView.java +1650 -1337
- package/ios/AirGoogleMaps/AIRGoogleMap.h +9 -10
- package/ios/AirGoogleMaps/AIRGoogleMap.m +109 -71
- package/ios/AirGoogleMaps/AIRGoogleMapCircle.m +23 -11
- package/ios/AirGoogleMaps/AIRGoogleMapManager.m +10 -9
- package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +14 -6
- package/ios/AirGoogleMaps/AIRGoogleMapMarkerManager.m +1 -1
- package/ios/AirGoogleMaps/AIRGoogleMapPolygon.h +2 -1
- package/ios/AirGoogleMaps/AIRGoogleMapPolygon.m +30 -0
- package/ios/AirGoogleMaps/AIRGoogleMapPolyline.h +0 -1
- package/ios/AirGoogleMaps/AIRGoogleMapPolyline.m +0 -7
- package/ios/AirGoogleMaps/AIRGoogleMapUrlTile.m +2 -2
- package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.h +1 -1
- package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +4 -4
- package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.m +2 -0
- package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +126 -61
- package/ios/AirGoogleMaps/RNMapsGoogleMapViewManager.mm +16 -1
- package/ios/AirGoogleMaps/RNMapsGooglePolygonView.h +26 -0
- package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +217 -0
- package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +26 -0
- package/ios/AirMaps/AIRMap.h +7 -7
- package/ios/AirMaps/AIRMap.m +227 -236
- package/ios/AirMaps/AIRMapManager.m +13 -7
- package/ios/AirMaps/AIRMapMarker.h +1 -0
- package/ios/AirMaps/AIRMapMarker.m +165 -103
- package/ios/AirMaps/Callout/SMCalloutView.m +1 -1
- package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.h +28 -0
- package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.mm +68 -0
- package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.h +25 -0
- package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.mm +43 -0
- package/ios/AirMaps/RNMapsAirModule.h +1 -1
- package/ios/AirMaps/RNMapsAirModule.mm +4 -3
- package/ios/AirMaps/RNMapsAirModuleDelegate.h +2 -2
- package/ios/AirMaps/RNMapsDefines.h +0 -0
- package/ios/AirMaps/RNMapsMapView.mm +336 -299
- package/ios/AirMaps/RNMapsMapViewManager.mm +19 -1
- package/ios/AirMaps/RNMapsMarkerView.h +24 -0
- package/ios/AirMaps/RNMapsMarkerView.mm +430 -0
- package/ios/AirMaps/RNMapsMarkerViewManager.mm +28 -0
- package/ios/AirMaps.xcodeproj/project.pbxproj +20 -0
- package/ios/generated/RCTAppDependencyProvider.h +25 -0
- package/ios/generated/RCTAppDependencyProvider.mm +55 -0
- package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
- package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
- package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
- package/ios/generated/RCTThirdPartyComponentsProvider.mm +26 -0
- package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
- package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +31 -0
- package/ios/generated/RNMapsSpecs/EventEmitters.cpp +977 -0
- package/ios/generated/RNMapsSpecs/EventEmitters.h +846 -0
- package/ios/generated/RNMapsSpecs/Props.cpp +193 -0
- package/ios/generated/RNMapsSpecs/Props.h +1223 -0
- package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +591 -0
- package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
- package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +137 -0
- package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +24 -0
- package/ios/generated/RNMapsSpecs/ShadowNodes.h +109 -0
- package/ios/generated/RNMapsSpecs/States.cpp +16 -0
- package/ios/generated/RNMapsSpecs/States.h +113 -0
- package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
- package/ios/generated/RNMapsSpecsJSI.h +268 -0
- package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
- package/package.json +24 -18
- package/react-native-google-maps.podspec +26 -0
- package/react-native-maps-generated.podspec +31 -0
- package/react-native-maps.podspec +44 -15
- package/src/AnimatedRegion.ts +169 -0
- package/src/Geojson.tsx +541 -0
- package/src/MapCallout.tsx +77 -0
- package/src/MapCalloutSubview.tsx +64 -0
- package/src/MapCircle.tsx +162 -0
- package/src/MapHeatmap.tsx +125 -0
- package/src/MapLocalTile.tsx +60 -0
- package/src/MapMarker.tsx +531 -0
- package/src/MapMarkerNativeComponent.ts +51 -0
- package/src/MapOverlay.tsx +156 -0
- package/src/MapPolygon.tsx +188 -0
- package/src/MapPolygon.types.ts +25 -0
- package/src/MapPolyline.tsx +215 -0
- package/src/MapUrlTile.tsx +169 -0
- package/src/MapView.tsx +1223 -0
- package/src/MapView.types.ts +212 -0
- package/src/MapView.web.ts +2 -0
- package/src/MapViewNativeComponent.ts +86 -0
- package/src/MapWMSTile.tsx +148 -0
- package/src/ProviderConstants.ts +2 -0
- package/src/createFabricMap.tsx +253 -0
- package/src/decorateMapComponent.ts +219 -0
- package/src/fixImageProp.ts +17 -0
- package/src/index.ts +52 -0
- package/src/sharedTypes.ts +101 -0
- package/src/specs/NativeAirMapsModule.ts +36 -0
- package/src/specs/NativeComponentCallout.ts +63 -0
- package/src/specs/NativeComponentCircle.ts +93 -0
- package/src/specs/NativeComponentGoogleMapView.ts +913 -0
- package/src/specs/NativeComponentGooglePolygon.ts +94 -0
- package/src/specs/NativeComponentMapView.ts +1091 -0
- package/src/specs/NativeComponentMarker.ts +326 -0
- package/src/specs/NativeComponentOverlay.ts +89 -0
- package/src/specs/NativeComponentPolyline.ts +124 -0
- package/lib/AnimatedRegion.d.ts +0 -19
- package/lib/AnimatedRegion.js +0 -134
- package/lib/Geojson.d.ts +0 -204
- package/lib/Geojson.js +0 -166
- package/lib/MapCallout.d.ts +0 -40
- package/lib/MapCallout.js +0 -51
- package/lib/MapCalloutSubview.d.ts +0 -34
- package/lib/MapCalloutSubview.js +0 -48
- package/lib/MapCircle.d.ts +0 -117
- package/lib/MapCircle.js +0 -53
- package/lib/MapHeatmap.d.ts +0 -78
- package/lib/MapHeatmap.js +0 -59
- package/lib/MapLocalTile.d.ts +0 -35
- package/lib/MapLocalTile.js +0 -44
- package/lib/MapMarker.d.ts +0 -309
- package/lib/MapMarker.js +0 -116
- package/lib/MapMarkerNativeComponent.d.ts +0 -15
- package/lib/MapMarkerNativeComponent.js +0 -17
- package/lib/MapOverlay.d.ts +0 -87
- package/lib/MapOverlay.js +0 -63
- package/lib/MapPolygon.d.ts +0 -140
- package/lib/MapPolygon.js +0 -53
- package/lib/MapPolygon.types.d.ts +0 -18
- package/lib/MapPolygon.types.js +0 -2
- package/lib/MapPolyline.d.ts +0 -156
- package/lib/MapPolyline.js +0 -53
- package/lib/MapUrlTile.d.ts +0 -134
- package/lib/MapUrlTile.js +0 -44
- package/lib/MapView.d.ts +0 -715
- package/lib/MapView.js +0 -447
- package/lib/MapView.types.d.ts +0 -161
- package/lib/MapView.types.js +0 -2
- package/lib/MapView.web.d.ts +0 -1
- package/lib/MapView.web.js +0 -9
- package/lib/MapViewNativeComponent.d.ts +0 -18
- package/lib/MapViewNativeComponent.js +0 -19
- package/lib/MapWMSTile.d.ts +0 -116
- package/lib/MapWMSTile.js +0 -44
- package/lib/ProviderConstants.d.ts +0 -2
- package/lib/ProviderConstants.js +0 -5
- package/lib/createFabricMap.d.ts +0 -23
- package/lib/createFabricMap.js +0 -175
- package/lib/decorateMapComponent.d.ts +0 -36
- package/lib/decorateMapComponent.js +0 -80
- package/lib/index.d.ts +0 -38
- package/lib/index.js +0 -81
- package/lib/sharedTypes.d.ts +0 -81
- package/lib/sharedTypes.js +0 -2
- package/lib/sharedTypesInternal.js +0 -2
- package/lib/specs/NativeAirMapsModule.d.ts +0 -31
- package/lib/specs/NativeAirMapsModule.js +0 -4
- package/lib/specs/NativeComponentGoogleMapView.d.ts +0 -713
- package/lib/specs/NativeComponentGoogleMapView.js +0 -21
- package/lib/specs/NativeComponentMapView.d.ts +0 -855
- package/lib/specs/NativeComponentMapView.js +0 -21
- /package/{lib/sharedTypesInternal.d.ts → src/sharedTypesInternal.ts} +0 -0
|
@@ -27,18 +27,17 @@
|
|
|
27
27
|
@property (nonatomic, assign) NSString *customMapStyleString;
|
|
28
28
|
@property (nonatomic, assign) UIEdgeInsets mapPadding;
|
|
29
29
|
@property (nonatomic, assign) NSString *paddingAdjustmentBehaviorString;
|
|
30
|
-
@property (nonatomic, copy)
|
|
31
|
-
@property (nonatomic, copy)
|
|
32
|
-
@property (nonatomic, copy)
|
|
30
|
+
@property (nonatomic, copy) RCTDirectEventBlock onMapReady;
|
|
31
|
+
@property (nonatomic, copy) RCTDirectEventBlock onMapLoaded;
|
|
32
|
+
@property (nonatomic, copy) RCTDirectEventBlock onKmlReady;
|
|
33
33
|
@property (nonatomic, copy) RCTBubblingEventBlock onPress;
|
|
34
34
|
@property (nonatomic, copy) RCTBubblingEventBlock onLongPress;
|
|
35
|
-
@property (nonatomic, copy)
|
|
36
|
-
@property (nonatomic, copy)
|
|
37
|
-
@property (nonatomic, copy)
|
|
38
|
-
@property (nonatomic, copy)
|
|
39
|
-
@property (nonatomic, copy)
|
|
40
|
-
@property (nonatomic, copy)
|
|
41
|
-
@property (nonatomic, copy) RCTBubblingEventBlock onPoiClick;
|
|
35
|
+
@property (nonatomic, copy) RCTDirectEventBlock onPanDrag;
|
|
36
|
+
@property (nonatomic, copy) RCTDirectEventBlock onUserLocationChange;
|
|
37
|
+
@property (nonatomic, copy) RCTDirectEventBlock onMarkerPress;
|
|
38
|
+
@property (nonatomic, copy) RCTDirectEventBlock onMarkerSelect;
|
|
39
|
+
@property (nonatomic, copy) RCTDirectEventBlock onMarkerDeselect;
|
|
40
|
+
@property (nonatomic, copy) RCTDirectEventBlock onPoiClick;
|
|
42
41
|
@property (nonatomic, copy) RCTDirectEventBlock onRegionChangeStart;
|
|
43
42
|
@property (nonatomic, copy) RCTDirectEventBlock onRegionChange;
|
|
44
43
|
@property (nonatomic, copy) RCTDirectEventBlock onRegionChangeComplete;
|
|
@@ -69,6 +69,7 @@ id regionAsJSON(MKCoordinateRegion region) {
|
|
|
69
69
|
BOOL _didPrepareMap;
|
|
70
70
|
BOOL _didCallOnMapReady;
|
|
71
71
|
BOOL _zoomTapEnabled;
|
|
72
|
+
BOOL _isAnimating;
|
|
72
73
|
NSString* _googleMapId;
|
|
73
74
|
}
|
|
74
75
|
|
|
@@ -243,8 +244,13 @@ id regionAsJSON(MKCoordinateRegion region) {
|
|
|
243
244
|
[self.markers addObject:marker];
|
|
244
245
|
} else if ([subview isKindOfClass:[AIRGoogleMapPolygon class]]) {
|
|
245
246
|
AIRGoogleMapPolygon *polygon = (AIRGoogleMapPolygon*)subview;
|
|
246
|
-
polygon
|
|
247
|
+
[polygon didInsertInMap:self];
|
|
247
248
|
[self.polygons addObject:polygon];
|
|
249
|
+
|
|
250
|
+
} else if ([NSStringFromClass([subview class]) isEqualToString:@"RNMapsGooglePolygonView"]){
|
|
251
|
+
// RNMapsGooglePolygonView *polygon = (RNMapsGooglePolygonView*)subview;
|
|
252
|
+
// [polygon didInsertInMap:self];
|
|
253
|
+
[self.polygons addObject:subview];
|
|
248
254
|
} else if ([subview isKindOfClass:[AIRGoogleMapPolyline class]]) {
|
|
249
255
|
AIRGoogleMapPolyline *polyline = (AIRGoogleMapPolyline*)subview;
|
|
250
256
|
polyline.polyline.map = self;
|
|
@@ -289,7 +295,9 @@ id regionAsJSON(MKCoordinateRegion region) {
|
|
|
289
295
|
AIRGoogleMapMarker *marker = (AIRGoogleMapMarker*)subview;
|
|
290
296
|
marker.realMarker.map = nil;
|
|
291
297
|
[self.markers removeObject:marker];
|
|
292
|
-
} else if ([subview
|
|
298
|
+
} else if ([NSStringFromClass([subview class]) isEqualToString:@"RNMapsGooglePolygonView"]) {
|
|
299
|
+
[self.polygons removeObject:subview];
|
|
300
|
+
} else if ([subview isKindOfClass:[AIRGoogleMapPolygon class]]) {
|
|
293
301
|
AIRGoogleMapPolygon *polygon = (AIRGoogleMapPolygon*)subview;
|
|
294
302
|
polygon.polygon.map = nil;
|
|
295
303
|
[self.polygons removeObject:polygon];
|
|
@@ -354,6 +362,19 @@ id regionAsJSON(MKCoordinateRegion region) {
|
|
|
354
362
|
];
|
|
355
363
|
}
|
|
356
364
|
|
|
365
|
+
- (NSDictionary *) getCameraDic {
|
|
366
|
+
GMSCameraPosition *camera = [self camera];
|
|
367
|
+
return @{
|
|
368
|
+
@"center": @{
|
|
369
|
+
@"latitude": @(camera.target.latitude),
|
|
370
|
+
@"longitude": @(camera.target.longitude),
|
|
371
|
+
},
|
|
372
|
+
@"pitch": @(camera.viewingAngle),
|
|
373
|
+
@"heading": @(camera.bearing),
|
|
374
|
+
@"zoom": @(camera.zoom),
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
|
|
357
378
|
- (void)layoutSubviews {
|
|
358
379
|
[super layoutSubviews];
|
|
359
380
|
if(_didLayoutSubviews) return;
|
|
@@ -390,7 +411,7 @@ id regionAsJSON(MKCoordinateRegion region) {
|
|
|
390
411
|
}
|
|
391
412
|
|
|
392
413
|
- (void)setRegion:(MKCoordinateRegion)region {
|
|
393
|
-
|
|
414
|
+
if (_isAnimating || !CLLocationCoordinate2DIsValid(region.center)) return;
|
|
394
415
|
_region = region;
|
|
395
416
|
if(_didLayoutSubviews) {
|
|
396
417
|
self.camera = [AIRGoogleMap makeGMSCameraPositionFromMap:self andMKCoordinateRegion:region];
|
|
@@ -410,6 +431,7 @@ id regionAsJSON(MKCoordinateRegion region) {
|
|
|
410
431
|
}
|
|
411
432
|
|
|
412
433
|
- (void)setCameraProp:(GMSCameraPosition*)camera {
|
|
434
|
+
if (_isAnimating || !CLLocationCoordinate2DIsValid([camera target])) return;
|
|
413
435
|
_initialCamera = camera;
|
|
414
436
|
if(_didLayoutSubviews) {
|
|
415
437
|
self.camera = camera;
|
|
@@ -491,6 +513,7 @@ id regionAsJSON(MKCoordinateRegion region) {
|
|
|
491
513
|
}
|
|
492
514
|
|
|
493
515
|
- (void)willMove:(BOOL)gesture {
|
|
516
|
+
_isAnimating = YES;
|
|
494
517
|
id event = @{@"isGesture": [NSNumber numberWithBool:gesture]};
|
|
495
518
|
if (self.onRegionChangeStart) self.onRegionChangeStart(event);
|
|
496
519
|
}
|
|
@@ -501,7 +524,7 @@ id regionAsJSON(MKCoordinateRegion region) {
|
|
|
501
524
|
@"isGesture": [NSNumber numberWithBool:isGesture],
|
|
502
525
|
};
|
|
503
526
|
|
|
504
|
-
if (self.
|
|
527
|
+
if (self.onRegionChange) self.onRegionChange(event);
|
|
505
528
|
}
|
|
506
529
|
|
|
507
530
|
- (void)didTapPOIWithPlaceID:(NSString *)placeID
|
|
@@ -523,7 +546,8 @@ id regionAsJSON(MKCoordinateRegion region) {
|
|
|
523
546
|
@"region": regionAsJSON([AIRGoogleMap makeGMSCameraPositionFromMap:self andGMSCameraPosition:position]),
|
|
524
547
|
@"isGesture": [NSNumber numberWithBool:isGesture],
|
|
525
548
|
};
|
|
526
|
-
|
|
549
|
+
if (self.onRegionChangeComplete) self.onRegionChangeComplete(event); // complete
|
|
550
|
+
_isAnimating = NO;
|
|
527
551
|
}
|
|
528
552
|
|
|
529
553
|
- (void)setMapPadding:(UIEdgeInsets)mapPadding {
|
|
@@ -772,8 +796,7 @@ id regionAsJSON(MKCoordinateRegion region) {
|
|
|
772
796
|
};
|
|
773
797
|
}
|
|
774
798
|
|
|
775
|
-
-(void) takeSnapshotWithConfig:(NSDictionary *)config
|
|
776
|
-
{
|
|
799
|
+
-(void) takeSnapshotWithConfig:(NSDictionary *)config success:(RCTPromiseResolveBlock)success error:(RCTPromiseRejectBlock)error {
|
|
777
800
|
/* unused
|
|
778
801
|
NSNumber *width = [config objectForKey:@"width"];
|
|
779
802
|
NSNumber *height = [config objectForKey:@"height"];
|
|
@@ -782,8 +805,9 @@ id regionAsJSON(MKCoordinateRegion region) {
|
|
|
782
805
|
|
|
783
806
|
NSString *format = [config objectForKey:@"format"];
|
|
784
807
|
NSString *result = [config objectForKey:@"result"];
|
|
785
|
-
|
|
786
|
-
|
|
808
|
+
NSTimeInterval timeStamp = [[NSDate date] timeIntervalSince1970];
|
|
809
|
+
NSString *pathComponent = [NSString stringWithFormat:@"Documents/snapshot-%.20lf.%@", timeStamp, format];
|
|
810
|
+
NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent: pathComponent];
|
|
787
811
|
|
|
788
812
|
// TODO: currently we are ignoring width, height, region
|
|
789
813
|
|
|
@@ -801,9 +825,9 @@ id regionAsJSON(MKCoordinateRegion region) {
|
|
|
801
825
|
|
|
802
826
|
if ([result isEqualToString:@"file"]) {
|
|
803
827
|
[data writeToFile:filePath atomically:YES];
|
|
804
|
-
|
|
828
|
+
success(filePath);
|
|
805
829
|
} else if ([result isEqualToString:@"base64"]) {
|
|
806
|
-
|
|
830
|
+
success([data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn]);
|
|
807
831
|
}
|
|
808
832
|
|
|
809
833
|
UIGraphicsEndImageContext();
|
|
@@ -1044,7 +1068,7 @@ id regionAsJSON(MKCoordinateRegion region) {
|
|
|
1044
1068
|
}
|
|
1045
1069
|
|
|
1046
1070
|
+ (NSString *)GetIconUrl:(GMUPlacemark *) marker parser:(GMUKMLParser *) parser {
|
|
1047
|
-
#
|
|
1071
|
+
#if HAVE_GOOGLE_MAPS_UTILS
|
|
1048
1072
|
if (marker.style.styleID != nil) {
|
|
1049
1073
|
for (GMUStyle *style in parser.styles) {
|
|
1050
1074
|
if (style.styleID == marker.style.styleID) {
|
|
@@ -1063,8 +1087,53 @@ id regionAsJSON(MKCoordinateRegion region) {
|
|
|
1063
1087
|
return _kmlSrc;
|
|
1064
1088
|
}
|
|
1065
1089
|
|
|
1090
|
+
- (void) setKMLData:(NSData *) urlData {
|
|
1091
|
+
GMUKMLParser *parser = [[GMUKMLParser alloc] initWithData:urlData];
|
|
1092
|
+
[parser parse];
|
|
1093
|
+
|
|
1094
|
+
NSUInteger index = 0;
|
|
1095
|
+
NSMutableArray *markers = [[NSMutableArray alloc]init];
|
|
1096
|
+
|
|
1097
|
+
for (GMUPlacemark *place in parser.placemarks) {
|
|
1098
|
+
|
|
1099
|
+
CLLocationCoordinate2D location =((GMUPoint *) place.geometry).coordinate;
|
|
1100
|
+
|
|
1101
|
+
AIRGoogleMapMarker *marker = (AIRGoogleMapMarker *)[[AIRGoogleMapMarkerManager alloc] view];
|
|
1102
|
+
if (!marker.bridge) {
|
|
1103
|
+
marker.bridge = _bridge;
|
|
1104
|
+
}
|
|
1105
|
+
marker.identifier = place.title;
|
|
1106
|
+
marker.coordinate = location;
|
|
1107
|
+
marker.title = place.title;
|
|
1108
|
+
marker.subtitle = place.snippet;
|
|
1109
|
+
marker.pinColor = place.style.fillColor;
|
|
1110
|
+
marker.imageSrc = [AIRGoogleMap GetIconUrl:place parser:parser];
|
|
1111
|
+
marker.layer.backgroundColor = [UIColor clearColor].CGColor;
|
|
1112
|
+
marker.layer.position = CGPointZero;
|
|
1113
|
+
|
|
1114
|
+
[self insertReactSubview:(UIView *) marker atIndex:index];
|
|
1115
|
+
|
|
1116
|
+
[markers addObject:@{@"id": marker.identifier,
|
|
1117
|
+
@"title": marker.title,
|
|
1118
|
+
@"description": marker.subtitle,
|
|
1119
|
+
@"coordinate": @{
|
|
1120
|
+
@"latitude": @(location.latitude),
|
|
1121
|
+
@"longitude": @(location.longitude)
|
|
1122
|
+
}
|
|
1123
|
+
}];
|
|
1124
|
+
|
|
1125
|
+
index++;
|
|
1126
|
+
}
|
|
1127
|
+
|
|
1128
|
+
id event = @{@"markers": markers};
|
|
1129
|
+
if (self.onKmlReady) self.onKmlReady(event);
|
|
1130
|
+
#else
|
|
1131
|
+
REQUIRES_GOOGLE_MAPS_UTILS();
|
|
1132
|
+
#endif
|
|
1133
|
+
}
|
|
1134
|
+
|
|
1066
1135
|
- (void)setKmlSrc:(NSString *)kmlUrl {
|
|
1067
|
-
#
|
|
1136
|
+
#if HAVE_GOOGLE_MAPS_UTILS
|
|
1068
1137
|
|
|
1069
1138
|
_kmlSrc = kmlUrl;
|
|
1070
1139
|
|
|
@@ -1072,53 +1141,28 @@ id regionAsJSON(MKCoordinateRegion region) {
|
|
|
1072
1141
|
NSData *urlData = nil;
|
|
1073
1142
|
|
|
1074
1143
|
if ([url isFileURL]) {
|
|
1075
|
-
|
|
1144
|
+
[self setKMLData:[NSData dataWithContentsOfURL:url]];
|
|
1076
1145
|
} else {
|
|
1077
|
-
|
|
1146
|
+
__weak AIRGoogleMap *weakSelf = self;
|
|
1147
|
+
|
|
1148
|
+
NSURLSession *session = [NSURLSession sharedSession];
|
|
1149
|
+
NSURLSessionDataTask *dataTask = [session dataTaskWithURL:url
|
|
1150
|
+
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
|
|
1151
|
+
if (error) {
|
|
1152
|
+
NSLog(@"Error fetching data: %@", error.localizedDescription);
|
|
1153
|
+
return;
|
|
1154
|
+
} else {
|
|
1155
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1156
|
+
AIRGoogleMap *strongSelf = weakSelf;
|
|
1157
|
+
[strongSelf setKMLData:data];
|
|
1158
|
+
});
|
|
1159
|
+
|
|
1160
|
+
}
|
|
1161
|
+
}];
|
|
1162
|
+
[dataTask resume];
|
|
1078
1163
|
}
|
|
1079
1164
|
|
|
1080
|
-
GMUKMLParser *parser = [[GMUKMLParser alloc] initWithData:urlData];
|
|
1081
|
-
[parser parse];
|
|
1082
1165
|
|
|
1083
|
-
NSUInteger index = 0;
|
|
1084
|
-
NSMutableArray *markers = [[NSMutableArray alloc]init];
|
|
1085
|
-
|
|
1086
|
-
for (GMUPlacemark *place in parser.placemarks) {
|
|
1087
|
-
|
|
1088
|
-
CLLocationCoordinate2D location =((GMUPoint *) place.geometry).coordinate;
|
|
1089
|
-
|
|
1090
|
-
AIRGoogleMapMarker *marker = (AIRGoogleMapMarker *)[[AIRGoogleMapMarkerManager alloc] view];
|
|
1091
|
-
if (!marker.bridge) {
|
|
1092
|
-
marker.bridge = _bridge;
|
|
1093
|
-
}
|
|
1094
|
-
marker.identifier = place.title;
|
|
1095
|
-
marker.coordinate = location;
|
|
1096
|
-
marker.title = place.title;
|
|
1097
|
-
marker.subtitle = place.snippet;
|
|
1098
|
-
marker.pinColor = place.style.fillColor;
|
|
1099
|
-
marker.imageSrc = [AIRGoogleMap GetIconUrl:place parser:parser];
|
|
1100
|
-
marker.layer.backgroundColor = [UIColor clearColor].CGColor;
|
|
1101
|
-
marker.layer.position = CGPointZero;
|
|
1102
|
-
|
|
1103
|
-
[self insertReactSubview:(UIView *) marker atIndex:index];
|
|
1104
|
-
|
|
1105
|
-
[markers addObject:@{@"id": marker.identifier,
|
|
1106
|
-
@"title": marker.title,
|
|
1107
|
-
@"description": marker.subtitle,
|
|
1108
|
-
@"coordinate": @{
|
|
1109
|
-
@"latitude": @(location.latitude),
|
|
1110
|
-
@"longitude": @(location.longitude)
|
|
1111
|
-
}
|
|
1112
|
-
}];
|
|
1113
|
-
|
|
1114
|
-
index++;
|
|
1115
|
-
}
|
|
1116
|
-
|
|
1117
|
-
id event = @{@"markers": markers};
|
|
1118
|
-
if (self.onKmlReady) self.onKmlReady(event);
|
|
1119
|
-
#else
|
|
1120
|
-
REQUIRES_GOOGLE_MAPS_UTILS();
|
|
1121
|
-
#endif
|
|
1122
1166
|
}
|
|
1123
1167
|
|
|
1124
1168
|
|
|
@@ -1128,11 +1172,9 @@ id regionAsJSON(MKCoordinateRegion region) {
|
|
|
1128
1172
|
return;
|
|
1129
1173
|
}
|
|
1130
1174
|
self.onIndoorBuildingFocused(@{
|
|
1131
|
-
@"
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
@"levels": [[NSMutableArray alloc]init]
|
|
1135
|
-
}
|
|
1175
|
+
@"activeLevelIndex": @0,
|
|
1176
|
+
@"underground": @false,
|
|
1177
|
+
@"levels": [[NSMutableArray alloc]init]
|
|
1136
1178
|
});
|
|
1137
1179
|
}
|
|
1138
1180
|
NSInteger i = 0;
|
|
@@ -1149,11 +1191,9 @@ id regionAsJSON(MKCoordinateRegion region) {
|
|
|
1149
1191
|
return;
|
|
1150
1192
|
}
|
|
1151
1193
|
self.onIndoorBuildingFocused(@{
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
@"levels": arrayLevels
|
|
1156
|
-
}
|
|
1194
|
+
@"activeLevelIndex": @(building.defaultLevelIndex),
|
|
1195
|
+
@"underground": @(building.underground),
|
|
1196
|
+
@"levels": arrayLevels
|
|
1157
1197
|
});
|
|
1158
1198
|
}
|
|
1159
1199
|
|
|
@@ -1169,11 +1209,9 @@ id regionAsJSON(MKCoordinateRegion region) {
|
|
|
1169
1209
|
i++;
|
|
1170
1210
|
}
|
|
1171
1211
|
self.onIndoorLevelActivated(@{
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
@"shortName": level.shortName
|
|
1176
|
-
}
|
|
1212
|
+
@"activeLevelIndex": @(i),
|
|
1213
|
+
@"name": level.name,
|
|
1214
|
+
@"shortName": level.shortName
|
|
1177
1215
|
});
|
|
1178
1216
|
}
|
|
1179
1217
|
// do nothing, passed as options on initialization
|
|
@@ -25,20 +25,32 @@
|
|
|
25
25
|
}
|
|
26
26
|
return self;
|
|
27
27
|
}
|
|
28
|
+
- (void) prepare
|
|
29
|
+
{
|
|
30
|
+
if(_didMoveToWindow) return;
|
|
31
|
+
_didMoveToWindow = true;
|
|
32
|
+
if(_fillColor) {
|
|
33
|
+
_circle.fillColor = _fillColor;
|
|
34
|
+
}
|
|
35
|
+
if(_strokeColor) {
|
|
36
|
+
_circle.strokeColor = _strokeColor;
|
|
37
|
+
}
|
|
38
|
+
if(_strokeWidth) {
|
|
39
|
+
_circle.strokeWidth = _strokeWidth;
|
|
40
|
+
}
|
|
41
|
+
if (_zIndex) {
|
|
42
|
+
_circle.zIndex = _zIndex;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
- (void) didMoveToSuperview
|
|
46
|
+
{
|
|
47
|
+
[super didMoveToSuperview];
|
|
48
|
+
[self prepare];
|
|
49
|
+
}
|
|
28
50
|
|
|
29
51
|
- (void)didMoveToWindow {
|
|
30
52
|
[super didMoveToWindow];
|
|
31
|
-
|
|
32
|
-
_didMoveToWindow = true;
|
|
33
|
-
if(_fillColor) {
|
|
34
|
-
_circle.fillColor = _fillColor;
|
|
35
|
-
}
|
|
36
|
-
if(_strokeColor) {
|
|
37
|
-
_circle.strokeColor = _strokeColor;
|
|
38
|
-
}
|
|
39
|
-
if(_strokeWidth) {
|
|
40
|
-
_circle.strokeWidth = _strokeWidth;
|
|
41
|
-
}
|
|
53
|
+
[self prepare];
|
|
42
54
|
}
|
|
43
55
|
|
|
44
56
|
- (void)setRadius:(double)radius
|
|
@@ -97,14 +97,13 @@ RCT_EXPORT_VIEW_PROPERTY(showsIndoorLevelPicker, BOOL)
|
|
|
97
97
|
RCT_EXPORT_VIEW_PROPERTY(customMapStyleString, NSString)
|
|
98
98
|
RCT_EXPORT_VIEW_PROPERTY(mapPadding, UIEdgeInsets)
|
|
99
99
|
RCT_REMAP_VIEW_PROPERTY(paddingAdjustmentBehavior, paddingAdjustmentBehaviorString, NSString)
|
|
100
|
-
RCT_EXPORT_VIEW_PROPERTY(onMapReady,
|
|
101
|
-
RCT_EXPORT_VIEW_PROPERTY(onMapLoaded,
|
|
102
|
-
RCT_EXPORT_VIEW_PROPERTY(onKmlReady,
|
|
100
|
+
RCT_EXPORT_VIEW_PROPERTY(onMapReady, RCTDirectEventBlock)
|
|
101
|
+
RCT_EXPORT_VIEW_PROPERTY(onMapLoaded, RCTDirectEventBlock)
|
|
102
|
+
RCT_EXPORT_VIEW_PROPERTY(onKmlReady, RCTDirectEventBlock)
|
|
103
103
|
RCT_EXPORT_VIEW_PROPERTY(onPress, RCTBubblingEventBlock)
|
|
104
104
|
RCT_EXPORT_VIEW_PROPERTY(onLongPress, RCTBubblingEventBlock)
|
|
105
|
-
RCT_EXPORT_VIEW_PROPERTY(onPanDrag,
|
|
106
|
-
RCT_EXPORT_VIEW_PROPERTY(onUserLocationChange,
|
|
107
|
-
RCT_EXPORT_VIEW_PROPERTY(onChange, RCTBubblingEventBlock)
|
|
105
|
+
RCT_EXPORT_VIEW_PROPERTY(onPanDrag, RCTDirectEventBlock)
|
|
106
|
+
RCT_EXPORT_VIEW_PROPERTY(onUserLocationChange, RCTDirectEventBlock)
|
|
108
107
|
RCT_EXPORT_VIEW_PROPERTY(onMarkerPress, RCTDirectEventBlock)
|
|
109
108
|
RCT_EXPORT_VIEW_PROPERTY(onMarkerSelect, RCTDirectEventBlock)
|
|
110
109
|
RCT_EXPORT_VIEW_PROPERTY(onMarkerDeselect, RCTDirectEventBlock)
|
|
@@ -266,9 +265,11 @@ RCT_EXPORT_METHOD(takeSnapshot:(nonnull NSNumber *)reactTag
|
|
|
266
265
|
} else {
|
|
267
266
|
AIRGoogleMap *mapView = (AIRGoogleMap *)view;
|
|
268
267
|
NSMutableDictionary* config = [NSMutableDictionary new];
|
|
269
|
-
|
|
270
|
-
[mapView takeSnapshotWithConfig:config
|
|
271
|
-
|
|
268
|
+
|
|
269
|
+
[mapView takeSnapshotWithConfig:config success:callback error:^(NSString *code, NSString *message, NSError *error) {
|
|
270
|
+
callback(@[error]);
|
|
271
|
+
}];
|
|
272
|
+
|
|
272
273
|
[config setObject:width forKey:@"width"];
|
|
273
274
|
[config setObject:height forKey:@"height"];
|
|
274
275
|
[config setObject:format forKey:@"format"];
|
|
@@ -29,8 +29,8 @@ CGRect unionRect(CGRect a, CGRect b) {
|
|
|
29
29
|
@implementation AIRGoogleMapMarker {
|
|
30
30
|
RCTImageLoaderCancellationBlock _reloadImageCancellationBlock;
|
|
31
31
|
RCTBubblingEventBlock _onPress;
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
RCTDirectEventBlock _onSelect;
|
|
33
|
+
RCTDirectEventBlock _onDeselect;
|
|
34
34
|
__weak UIImageView *_iconImageView;
|
|
35
35
|
UIView *_iconView;
|
|
36
36
|
UIColor *_pinColor;
|
|
@@ -140,6 +140,9 @@ CGRect unionRect(CGRect a, CGRect b) {
|
|
|
140
140
|
if (_onPress){
|
|
141
141
|
[_realMarker setOnPress:_onPress];
|
|
142
142
|
}
|
|
143
|
+
if (_zIndex){
|
|
144
|
+
[_realMarker setZIndex:_zIndex];
|
|
145
|
+
}
|
|
143
146
|
[_realMarker setMap:map];
|
|
144
147
|
}
|
|
145
148
|
|
|
@@ -359,6 +362,7 @@ CGRect unionRect(CGRect a, CGRect b) {
|
|
|
359
362
|
_iconImageView = empyImageView;
|
|
360
363
|
[self iconViewInsertSubview:_iconImageView atIndex:0];
|
|
361
364
|
}
|
|
365
|
+
__weak AIRGoogleMapMarker* weakSelf = self;
|
|
362
366
|
|
|
363
367
|
_reloadImageCancellationBlock = [[_bridge moduleForName:@"ImageLoader"] loadImageWithURLRequest:[RCTConvert NSURLRequest:_imageSrc]
|
|
364
368
|
size:self.bounds.size
|
|
@@ -372,10 +376,12 @@ CGRect unionRect(CGRect a, CGRect b) {
|
|
|
372
376
|
// TODO(lmr): do something with the error?
|
|
373
377
|
NSLog(@"%@", error);
|
|
374
378
|
}
|
|
379
|
+
|
|
375
380
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
381
|
+
__strong AIRGoogleMapMarker* strongSelf = weakSelf;
|
|
376
382
|
|
|
377
383
|
// TODO(gil): This way allows different image sizes
|
|
378
|
-
if (
|
|
384
|
+
if (strongSelf->_iconImageView) [strongSelf->_iconImageView removeFromSuperview];
|
|
379
385
|
|
|
380
386
|
// ... but this way is more efficient?
|
|
381
387
|
// if (_iconImageView) {
|
|
@@ -399,10 +405,12 @@ CGRect unionRect(CGRect a, CGRect b) {
|
|
|
399
405
|
// when the image loads IF the image is larger than the UIView.
|
|
400
406
|
// Shouldn't required images have size info automatically via RN?
|
|
401
407
|
CGRect selfBounds = unionRect(bounds, self.bounds);
|
|
402
|
-
[
|
|
408
|
+
[strongSelf setFrame:selfBounds];
|
|
403
409
|
|
|
404
|
-
|
|
405
|
-
[
|
|
410
|
+
strongSelf->_iconImageView = imageView;
|
|
411
|
+
[strongSelf iconViewInsertSubview:imageView atIndex:0];
|
|
412
|
+
[strongSelf layoutSubviews];
|
|
413
|
+
[strongSelf.realMarker setIconView:strongSelf.iconView];
|
|
406
414
|
});
|
|
407
415
|
}];
|
|
408
416
|
}
|
|
@@ -86,7 +86,7 @@ RCT_EXPORT_METHOD(redrawCallout:(nonnull NSNumber *)reactTag)
|
|
|
86
86
|
RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
|
|
87
87
|
} else {
|
|
88
88
|
AIRGoogleMapMarker* marker = (AIRGoogleMapMarker *) view;
|
|
89
|
-
|
|
89
|
+
|
|
90
90
|
[NSTimer scheduledTimerWithTimeInterval:0.0
|
|
91
91
|
target:[NSBlockOperation blockOperationWithBlock:^{
|
|
92
92
|
[marker hideCalloutView];
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
#import <React/RCTBridge.h>
|
|
11
11
|
#import "AIRGMSPolygon.h"
|
|
12
12
|
#import "AIRGoogleMapCoordinate.h"
|
|
13
|
+
#import "AIRGoogleMap.h"
|
|
13
14
|
|
|
14
15
|
@interface AIRGoogleMapPolygon : UIView
|
|
15
16
|
|
|
@@ -26,7 +27,7 @@
|
|
|
26
27
|
@property (nonatomic, assign) BOOL geodesic;
|
|
27
28
|
@property (nonatomic, assign) int zIndex;
|
|
28
29
|
@property (nonatomic, assign) BOOL tappable;
|
|
29
|
-
|
|
30
|
+
- (void) didInsertInMap:(AIRGoogleMap *) map;
|
|
30
31
|
@end
|
|
31
32
|
|
|
32
33
|
#endif
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
#import "AIRGoogleMapPolygon.h"
|
|
10
10
|
#import "AIRGMSPolygon.h"
|
|
11
11
|
#import <GoogleMaps/GoogleMaps.h>
|
|
12
|
+
#import "AIRGoogleMap.h"
|
|
12
13
|
|
|
13
14
|
@implementation AIRGoogleMapPolygon
|
|
14
15
|
{
|
|
@@ -41,6 +42,35 @@
|
|
|
41
42
|
_polygon.strokeWidth = _strokeWidth;
|
|
42
43
|
}
|
|
43
44
|
}
|
|
45
|
+
- (void) didInsertInMap:(AIRGoogleMap *) map
|
|
46
|
+
{
|
|
47
|
+
_polygon = [AIRGMSPolygon new];
|
|
48
|
+
|
|
49
|
+
if (_identifier){
|
|
50
|
+
[_polygon setIdentifier:_identifier];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
[_polygon setTappable:_tappable];
|
|
54
|
+
if (_strokeColor){
|
|
55
|
+
_polygon.strokeColor = _strokeColor;
|
|
56
|
+
}
|
|
57
|
+
if (_fillColor){
|
|
58
|
+
_polygon.fillColor = _fillColor;
|
|
59
|
+
}
|
|
60
|
+
if (_strokeWidth){
|
|
61
|
+
_polygon.strokeWidth = _strokeWidth;
|
|
62
|
+
}
|
|
63
|
+
if (_coordinates){
|
|
64
|
+
[self setCoordinates:_coordinates];
|
|
65
|
+
}
|
|
66
|
+
if (_holes){
|
|
67
|
+
[self setHoles:_holes];
|
|
68
|
+
}
|
|
69
|
+
if (_zIndex){
|
|
70
|
+
_polygon.zIndex = _zIndex;
|
|
71
|
+
}
|
|
72
|
+
[_polygon setMap:map];
|
|
73
|
+
}
|
|
44
74
|
|
|
45
75
|
- (void)setCoordinates:(NSArray<AIRGoogleMapCoordinate *> *)coordinates
|
|
46
76
|
{
|
|
@@ -25,7 +25,6 @@
|
|
|
25
25
|
@property (nonatomic, strong) UIColor *strokeColor;
|
|
26
26
|
@property (nonatomic, strong) NSArray<UIColor *> *strokeColors;
|
|
27
27
|
@property (nonatomic, assign) double strokeWidth;
|
|
28
|
-
@property (nonatomic, assign) UIColor *fillColor;
|
|
29
28
|
@property (nonatomic, strong) NSArray<NSNumber *> *lineDashPattern;
|
|
30
29
|
@property (nonatomic, assign) BOOL geodesic;
|
|
31
30
|
@property (nonatomic, assign) NSString *title;
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
{
|
|
20
20
|
if (self = [super init]) {
|
|
21
21
|
_polyline = [[AIRGMSPolyline alloc] init];
|
|
22
|
-
_polyline.spans = @[[GMSStyleSpan spanWithColor:_strokeColor]];
|
|
23
22
|
_polyline.strokeColor = _strokeColor;
|
|
24
23
|
}
|
|
25
24
|
return self;
|
|
@@ -79,12 +78,6 @@
|
|
|
79
78
|
_polyline.strokeWidth = strokeWidth;
|
|
80
79
|
}
|
|
81
80
|
|
|
82
|
-
-(void)setFillColor:(UIColor *)fillColor
|
|
83
|
-
{
|
|
84
|
-
_fillColor = fillColor;
|
|
85
|
-
_polyline.spans = @[[GMSStyleSpan spanWithColor:fillColor]];
|
|
86
|
-
}
|
|
87
|
-
|
|
88
81
|
- (void)setLineDashPattern:(NSArray<NSNumber *> *)lineDashPattern {
|
|
89
82
|
_lineDashPattern = lineDashPattern;
|
|
90
83
|
[self configureStyleSpansIfNeeded];
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
NSInteger *maximumZ = self.maximumZ;
|
|
29
29
|
NSInteger *minimumZ = self.minimumZ;
|
|
30
30
|
GMSTileURLConstructor urls = ^NSURL* _Nullable (NSUInteger x, NSUInteger y, NSUInteger zoom) {
|
|
31
|
-
|
|
31
|
+
|
|
32
32
|
if (self.flipY == YES) {
|
|
33
33
|
y = (1 << zoom) - y - 1;
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
|
|
36
36
|
NSString *url = urlTemplate;
|
|
37
37
|
url = [url stringByReplacingOccurrencesOfString:@"{x}" withString:[NSString stringWithFormat: @"%ld", (long)x]];
|
|
38
38
|
url = [url stringByReplacingOccurrencesOfString:@"{y}" withString:[NSString stringWithFormat: @"%ld", (long)y]];
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
@interface WMSTileOverlay : GMSSyncTileLayer
|
|
15
15
|
@property (nonatomic) double MapX,MapY,FULL;
|
|
16
|
-
@property (nonatomic,
|
|
16
|
+
@property (nonatomic, assign) NSString *urlTemplate;
|
|
17
17
|
@property (nonatomic, assign) NSInteger maximumZ;
|
|
18
18
|
@property (nonatomic, assign) NSInteger minimumZ;
|
|
19
19
|
@end
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
{
|
|
63
63
|
_urlTemplate = urlTemplate;
|
|
64
64
|
WMSTileOverlay *tile = [[WMSTileOverlay alloc] init];
|
|
65
|
-
[tile
|
|
65
|
+
[tile setUrlTemplate:urlTemplate];
|
|
66
66
|
[tile setMaximumZ: _maximumZ];
|
|
67
67
|
[tile setMinimumZ: _minimumZ];
|
|
68
68
|
[tile setOpacity: _opacity];
|
|
@@ -91,9 +91,9 @@
|
|
|
91
91
|
[NSNumber numberWithDouble:_MapX + (double)(x+1) * tile ],
|
|
92
92
|
[NSNumber numberWithDouble:_MapY - (double)y * tile ],
|
|
93
93
|
nil];
|
|
94
|
-
|
|
94
|
+
|
|
95
95
|
return result;
|
|
96
|
-
|
|
96
|
+
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
- (UIImage *)tileForX:(NSUInteger)x y:(NSUInteger)y zoom:(NSUInteger)zoom
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
return nil;
|
|
108
108
|
}
|
|
109
109
|
NSArray *bb = [self getBoundBox:x yAxis:y zoom:zoom];
|
|
110
|
-
NSMutableString *url = [self.
|
|
110
|
+
NSMutableString *url = [self.urlTemplate mutableCopy];
|
|
111
111
|
[url replaceOccurrencesOfString: @"{minX}" withString:[NSString stringWithFormat:@"%@", bb[0]] options:0 range:NSMakeRange(0, url.length)];
|
|
112
112
|
[url replaceOccurrencesOfString: @"{minY}" withString:[NSString stringWithFormat:@"%@", bb[1]] options:0 range:NSMakeRange(0, url.length)];
|
|
113
113
|
[url replaceOccurrencesOfString: @"{maxX}" withString:[NSString stringWithFormat:@"%@", bb[2]] options:0 range:NSMakeRange(0, url.length)];
|
|
@@ -33,6 +33,8 @@
|
|
|
33
33
|
|
|
34
34
|
+ (AIRGoogleMapCoordinate *)AIRGoogleMapCoordinate:(id)json
|
|
35
35
|
{
|
|
36
|
+
// empty coordinates
|
|
37
|
+
if ([json isKindOfClass:[NSArray class]] && [json count] == 0) return nil;
|
|
36
38
|
AIRGoogleMapCoordinate *coord = [AIRGoogleMapCoordinate new];
|
|
37
39
|
coord.coordinate = [self CLLocationCoordinate2D:json];
|
|
38
40
|
return coord;
|