react-native-maps 1.21.0-alpha.12 → 1.21.0-alpha.120

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.
Files changed (240) hide show
  1. package/android/build.gradle +77 -57
  2. package/android/gradlew +1 -2
  3. package/android/src/generated/RCTAppDependencyProvider.h +25 -0
  4. package/android/src/generated/RCTAppDependencyProvider.mm +55 -0
  5. package/android/src/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  6. package/android/src/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  7. package/android/src/generated/RCTThirdPartyComponentsProvider.h +16 -0
  8. package/android/src/generated/RCTThirdPartyComponentsProvider.mm +26 -0
  9. package/android/src/generated/ReactAppDependencyProvider.podspec +34 -0
  10. package/android/src/generated/java/com/facebook/fbreact/specs/NativeAirMapsModuleSpec.java +63 -0
  11. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerDelegate.java +35 -0
  12. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerInterface.java +17 -0
  13. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsCircleManagerDelegate.java +49 -0
  14. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsCircleManagerInterface.java +23 -0
  15. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerDelegate.java +49 -0
  16. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerInterface.java +23 -0
  17. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +206 -0
  18. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +73 -0
  19. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerDelegate.java +104 -0
  20. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerInterface.java +39 -0
  21. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerDelegate.java +46 -0
  22. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerInterface.java +23 -0
  23. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerDelegate.java +58 -0
  24. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerInterface.java +26 -0
  25. package/android/src/generated/jni/CMakeLists.txt +36 -0
  26. package/android/src/generated/jni/RNMapsSpecs-generated.cpp +68 -0
  27. package/android/src/generated/jni/RNMapsSpecs.h +31 -0
  28. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  29. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +31 -0
  30. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +977 -0
  31. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +846 -0
  32. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/Props.cpp +193 -0
  33. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/Props.h +1223 -0
  34. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI-generated.cpp +74 -0
  35. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI.h +268 -0
  36. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +24 -0
  37. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +109 -0
  38. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/States.cpp +16 -0
  39. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/States.h +113 -0
  40. package/android/src/main/java/com/rnmaps/fabric/CalloutManager.java +77 -0
  41. package/android/src/main/java/com/rnmaps/fabric/CircleManager.java +94 -0
  42. package/android/src/main/java/com/rnmaps/fabric/JSONUtil.java +86 -0
  43. package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +619 -0
  44. package/android/src/main/java/com/rnmaps/fabric/MarkerManager.java +258 -0
  45. package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +235 -2
  46. package/android/src/main/java/com/rnmaps/fabric/OverlayManager.java +95 -0
  47. package/android/src/main/java/com/rnmaps/fabric/PolygonManager.java +89 -0
  48. package/android/src/main/java/com/rnmaps/fabric/PolylineManager.java +121 -0
  49. package/android/src/main/java/com/rnmaps/fabric/event/OnCalloutPressEvent.java +25 -0
  50. package/android/src/main/java/com/rnmaps/fabric/event/OnDeselectEvent.java +28 -0
  51. package/android/src/main/java/com/rnmaps/fabric/event/OnDoublePressEvent.java +27 -0
  52. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEndEvent.java +28 -0
  53. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEvent.java +28 -0
  54. package/android/src/main/java/com/rnmaps/fabric/event/OnDragStartEvent.java +28 -0
  55. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorBuildingFocusedEvent.java +28 -0
  56. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorLevelActivatedEvent.java +28 -0
  57. package/android/src/main/java/com/rnmaps/fabric/event/OnKmlReadyEvent.java +28 -0
  58. package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +28 -0
  59. package/android/src/main/java/com/rnmaps/fabric/event/OnMapLoadedEvent.java +29 -0
  60. package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +29 -0
  61. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +28 -0
  62. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +28 -0
  63. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +28 -0
  64. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +28 -0
  65. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +28 -0
  66. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +28 -0
  67. package/android/src/main/java/com/rnmaps/fabric/event/OnPanDragEvent.java +28 -0
  68. package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +27 -0
  69. package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +27 -0
  70. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeCompleteEvent.java +30 -0
  71. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +48 -0
  72. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeStartEvent.java +33 -0
  73. package/android/src/main/java/com/rnmaps/fabric/event/OnSelectEvent.java +28 -0
  74. package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +28 -0
  75. package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +39 -3
  76. package/android/src/main/java/com/rnmaps/maps/MapCallout.java +18 -0
  77. package/android/src/main/java/com/rnmaps/maps/MapCircle.java +24 -0
  78. package/android/src/main/java/com/rnmaps/maps/MapManager.java +14 -14
  79. package/android/src/main/java/com/rnmaps/maps/MapMarker.java +637 -556
  80. package/android/src/main/java/com/rnmaps/maps/MapMarkerManager.java +3 -3
  81. package/android/src/main/java/com/rnmaps/maps/MapModule.java +206 -206
  82. package/android/src/main/java/com/rnmaps/maps/MapOverlay.java +267 -151
  83. package/android/src/main/java/com/rnmaps/maps/MapPolygon.java +31 -1
  84. package/android/src/main/java/com/rnmaps/maps/MapPolyline.java +207 -141
  85. package/android/src/main/java/com/rnmaps/maps/MapPolylineManager.java +1 -16
  86. package/android/src/main/java/com/rnmaps/maps/MapView.java +1650 -1337
  87. package/ios/AirGoogleMaps/AIRGoogleMap.h +9 -10
  88. package/ios/AirGoogleMaps/AIRGoogleMap.m +109 -71
  89. package/ios/AirGoogleMaps/AIRGoogleMapCircle.m +23 -11
  90. package/ios/AirGoogleMaps/AIRGoogleMapManager.m +10 -9
  91. package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +14 -6
  92. package/ios/AirGoogleMaps/AIRGoogleMapMarkerManager.m +1 -1
  93. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.h +2 -1
  94. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.m +30 -0
  95. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.h +0 -1
  96. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.m +0 -7
  97. package/ios/AirGoogleMaps/AIRGoogleMapUrlTile.m +2 -2
  98. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.h +1 -1
  99. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +4 -4
  100. package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.m +2 -0
  101. package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +126 -61
  102. package/ios/AirGoogleMaps/RNMapsGoogleMapViewManager.mm +16 -1
  103. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.h +26 -0
  104. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +217 -0
  105. package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +26 -0
  106. package/ios/AirMaps/AIRMap.h +7 -7
  107. package/ios/AirMaps/AIRMap.m +227 -236
  108. package/ios/AirMaps/AIRMapManager.m +13 -7
  109. package/ios/AirMaps/AIRMapMarker.h +1 -0
  110. package/ios/AirMaps/AIRMapMarker.m +165 -103
  111. package/ios/AirMaps/Callout/SMCalloutView.m +1 -1
  112. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.h +28 -0
  113. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.mm +68 -0
  114. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.h +25 -0
  115. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.mm +43 -0
  116. package/ios/AirMaps/RNMapsAirModule.h +1 -1
  117. package/ios/AirMaps/RNMapsAirModule.mm +4 -3
  118. package/ios/AirMaps/RNMapsAirModuleDelegate.h +2 -2
  119. package/ios/AirMaps/RNMapsMapView.mm +336 -299
  120. package/ios/AirMaps/RNMapsMapViewManager.mm +19 -1
  121. package/ios/AirMaps/RNMapsMarkerView.h +24 -0
  122. package/ios/AirMaps/RNMapsMarkerView.mm +430 -0
  123. package/ios/AirMaps/RNMapsMarkerViewManager.mm +28 -0
  124. package/ios/AirMaps.xcodeproj/project.pbxproj +20 -0
  125. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  126. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  127. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  128. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  129. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  130. package/ios/generated/RCTThirdPartyComponentsProvider.mm +26 -0
  131. package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  132. package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +31 -0
  133. package/ios/generated/RNMapsSpecs/EventEmitters.cpp +977 -0
  134. package/ios/generated/RNMapsSpecs/EventEmitters.h +846 -0
  135. package/ios/generated/RNMapsSpecs/Props.cpp +193 -0
  136. package/ios/generated/RNMapsSpecs/Props.h +1223 -0
  137. package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +591 -0
  138. package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
  139. package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +137 -0
  140. package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +24 -0
  141. package/ios/generated/RNMapsSpecs/ShadowNodes.h +109 -0
  142. package/ios/generated/RNMapsSpecs/States.cpp +16 -0
  143. package/ios/generated/RNMapsSpecs/States.h +113 -0
  144. package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
  145. package/ios/generated/RNMapsSpecsJSI.h +268 -0
  146. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  147. package/package.json +24 -18
  148. package/react-native-google-maps.podspec +26 -0
  149. package/react-native-maps-generated.podspec +31 -0
  150. package/react-native-maps.podspec +44 -15
  151. package/src/AnimatedRegion.ts +169 -0
  152. package/src/Geojson.tsx +541 -0
  153. package/src/MapCallout.tsx +77 -0
  154. package/src/MapCalloutSubview.tsx +64 -0
  155. package/src/MapCircle.tsx +162 -0
  156. package/src/MapHeatmap.tsx +125 -0
  157. package/src/MapLocalTile.tsx +60 -0
  158. package/src/MapMarker.tsx +531 -0
  159. package/src/MapMarkerNativeComponent.ts +51 -0
  160. package/src/MapOverlay.tsx +156 -0
  161. package/src/MapPolygon.tsx +188 -0
  162. package/src/MapPolygon.types.ts +25 -0
  163. package/src/MapPolyline.tsx +215 -0
  164. package/src/MapUrlTile.tsx +169 -0
  165. package/src/MapView.tsx +1223 -0
  166. package/src/MapView.types.ts +212 -0
  167. package/src/MapView.web.ts +2 -0
  168. package/src/MapViewNativeComponent.ts +86 -0
  169. package/src/MapWMSTile.tsx +148 -0
  170. package/src/ProviderConstants.ts +2 -0
  171. package/src/createFabricMap.tsx +253 -0
  172. package/src/decorateMapComponent.ts +219 -0
  173. package/src/fixImageProp.ts +17 -0
  174. package/src/index.ts +52 -0
  175. package/src/sharedTypes.ts +101 -0
  176. package/src/specs/NativeAirMapsModule.ts +36 -0
  177. package/src/specs/NativeComponentCallout.ts +63 -0
  178. package/src/specs/NativeComponentCircle.ts +93 -0
  179. package/src/specs/NativeComponentGoogleMapView.ts +913 -0
  180. package/src/specs/NativeComponentGooglePolygon.ts +94 -0
  181. package/src/specs/NativeComponentMapView.ts +1091 -0
  182. package/src/specs/NativeComponentMarker.ts +326 -0
  183. package/src/specs/NativeComponentOverlay.ts +89 -0
  184. package/src/specs/NativeComponentPolyline.ts +124 -0
  185. package/lib/AnimatedRegion.d.ts +0 -19
  186. package/lib/AnimatedRegion.js +0 -134
  187. package/lib/Geojson.d.ts +0 -204
  188. package/lib/Geojson.js +0 -166
  189. package/lib/MapCallout.d.ts +0 -40
  190. package/lib/MapCallout.js +0 -51
  191. package/lib/MapCalloutSubview.d.ts +0 -34
  192. package/lib/MapCalloutSubview.js +0 -48
  193. package/lib/MapCircle.d.ts +0 -117
  194. package/lib/MapCircle.js +0 -53
  195. package/lib/MapHeatmap.d.ts +0 -78
  196. package/lib/MapHeatmap.js +0 -59
  197. package/lib/MapLocalTile.d.ts +0 -35
  198. package/lib/MapLocalTile.js +0 -44
  199. package/lib/MapMarker.d.ts +0 -309
  200. package/lib/MapMarker.js +0 -116
  201. package/lib/MapMarkerNativeComponent.d.ts +0 -15
  202. package/lib/MapMarkerNativeComponent.js +0 -17
  203. package/lib/MapOverlay.d.ts +0 -87
  204. package/lib/MapOverlay.js +0 -63
  205. package/lib/MapPolygon.d.ts +0 -140
  206. package/lib/MapPolygon.js +0 -53
  207. package/lib/MapPolygon.types.d.ts +0 -18
  208. package/lib/MapPolygon.types.js +0 -2
  209. package/lib/MapPolyline.d.ts +0 -156
  210. package/lib/MapPolyline.js +0 -53
  211. package/lib/MapUrlTile.d.ts +0 -134
  212. package/lib/MapUrlTile.js +0 -44
  213. package/lib/MapView.d.ts +0 -715
  214. package/lib/MapView.js +0 -447
  215. package/lib/MapView.types.d.ts +0 -161
  216. package/lib/MapView.types.js +0 -2
  217. package/lib/MapView.web.d.ts +0 -1
  218. package/lib/MapView.web.js +0 -9
  219. package/lib/MapViewNativeComponent.d.ts +0 -18
  220. package/lib/MapViewNativeComponent.js +0 -19
  221. package/lib/MapWMSTile.d.ts +0 -116
  222. package/lib/MapWMSTile.js +0 -44
  223. package/lib/ProviderConstants.d.ts +0 -2
  224. package/lib/ProviderConstants.js +0 -5
  225. package/lib/createFabricMap.d.ts +0 -23
  226. package/lib/createFabricMap.js +0 -175
  227. package/lib/decorateMapComponent.d.ts +0 -36
  228. package/lib/decorateMapComponent.js +0 -80
  229. package/lib/index.d.ts +0 -38
  230. package/lib/index.js +0 -81
  231. package/lib/sharedTypes.d.ts +0 -81
  232. package/lib/sharedTypes.js +0 -2
  233. package/lib/sharedTypesInternal.js +0 -2
  234. package/lib/specs/NativeAirMapsModule.d.ts +0 -31
  235. package/lib/specs/NativeAirMapsModule.js +0 -4
  236. package/lib/specs/NativeComponentGoogleMapView.d.ts +0 -713
  237. package/lib/specs/NativeComponentGoogleMapView.js +0 -21
  238. package/lib/specs/NativeComponentMapView.d.ts +0 -855
  239. package/lib/specs/NativeComponentMapView.js +0 -21
  240. /package/{lib/sharedTypesInternal.d.ts → src/sharedTypesInternal.ts} +0 -0
@@ -4,161 +4,227 @@ import android.content.Context;
4
4
 
5
5
  import com.facebook.react.bridge.ReadableArray;
6
6
  import com.facebook.react.bridge.ReadableMap;
7
+ import com.facebook.react.common.MapBuilder;
8
+ import com.google.android.gms.maps.model.ButtCap;
7
9
  import com.google.android.gms.maps.model.Cap;
8
10
  import com.google.android.gms.maps.model.Dash;
9
11
  import com.google.android.gms.maps.model.Dot;
10
12
  import com.google.android.gms.maps.model.Gap;
13
+ import com.google.android.gms.maps.model.JointType;
11
14
  import com.google.android.gms.maps.model.LatLng;
12
15
  import com.google.android.gms.maps.model.PatternItem;
13
16
  import com.google.android.gms.maps.model.Polyline;
14
17
  import com.google.android.gms.maps.model.PolylineOptions;
15
18
  import com.google.android.gms.maps.model.RoundCap;
19
+ import com.google.android.gms.maps.model.SquareCap;
20
+ import com.google.android.gms.maps.model.StrokeStyle;
21
+ import com.google.android.gms.maps.model.StyleSpan;
16
22
  import com.google.maps.android.collections.PolylineManager;
23
+ import com.rnmaps.fabric.event.OnPressEvent;
17
24
 
18
25
  import java.util.ArrayList;
19
26
  import java.util.List;
27
+ import java.util.Map;
20
28
 
21
29
  public class MapPolyline extends MapFeature {
22
30
 
23
- private PolylineOptions polylineOptions;
24
- private Polyline polyline;
25
-
26
- private List<LatLng> coordinates;
27
- private int color;
28
- private float width;
29
- private boolean tappable;
30
- private boolean geodesic;
31
- private float zIndex;
32
- private Cap lineCap = new RoundCap();
33
- private ReadableArray patternValues;
34
- private List<PatternItem> pattern;
35
-
36
- public MapPolyline(Context context) {
37
- super(context);
38
- }
39
-
40
- public void setCoordinates(ReadableArray coordinates) {
41
- this.coordinates = new ArrayList<>(coordinates.size());
42
- for (int i = 0; i < coordinates.size(); i++) {
43
- ReadableMap coordinate = coordinates.getMap(i);
44
- this.coordinates.add(i,
45
- new LatLng(coordinate.getDouble("latitude"), coordinate.getDouble("longitude")));
46
- }
47
- if (polyline != null) {
48
- polyline.setPoints(this.coordinates);
49
- }
50
- }
51
-
52
- public void setColor(int color) {
53
- this.color = color;
54
- if (polyline != null) {
55
- polyline.setColor(color);
56
- }
57
- }
58
-
59
- public void setWidth(float width) {
60
- this.width = width;
61
- if (polyline != null) {
62
- polyline.setWidth(width);
63
- }
64
- }
65
-
66
- public void setZIndex(float zIndex) {
67
- this.zIndex = zIndex;
68
- if (polyline != null) {
69
- polyline.setZIndex(zIndex);
70
- }
71
- }
72
-
73
- public void setTappable(boolean tapabble) {
74
- this.tappable = tapabble;
75
- if (polyline != null) {
76
- polyline.setClickable(tappable);
77
- }
78
- }
79
-
80
- public void setGeodesic(boolean geodesic) {
81
- this.geodesic = geodesic;
82
- if (polyline != null) {
83
- polyline.setGeodesic(geodesic);
84
- }
85
- }
86
-
87
- public void setLineCap(Cap cap) {
88
- this.lineCap = cap;
89
- if (polyline != null) {
90
- polyline.setStartCap(cap);
91
- polyline.setEndCap(cap);
92
- }
93
- this.applyPattern();
94
- }
95
-
96
- public void setLineDashPattern(ReadableArray patternValues) {
97
- this.patternValues = patternValues;
98
- this.applyPattern();
99
- }
100
-
101
- private void applyPattern() {
102
- if(patternValues == null) {
103
- return;
104
- }
105
- this.pattern = new ArrayList<>(patternValues.size());
106
- for (int i = 0; i < patternValues.size(); i++) {
107
- float patternValue = (float) patternValues.getDouble(i);
108
- boolean isGap = i % 2 != 0;
109
- if(isGap) {
110
- this.pattern.add(new Gap(patternValue));
111
- }else {
112
- PatternItem patternItem;
113
- boolean isLineCapRound = this.lineCap instanceof RoundCap;
114
- if(isLineCapRound) {
115
- patternItem = new Dot();
116
- }else {
117
- patternItem = new Dash(patternValue);
118
- }
119
- this.pattern.add(patternItem);
120
- }
121
- }
122
- if(polyline != null) {
123
- polyline.setPattern(this.pattern);
124
- }
125
- }
126
-
127
- public PolylineOptions getPolylineOptions() {
128
- if (polylineOptions == null) {
129
- polylineOptions = createPolylineOptions();
130
- }
131
- return polylineOptions;
132
- }
133
-
134
- private PolylineOptions createPolylineOptions() {
135
- PolylineOptions options = new PolylineOptions();
136
- options.addAll(coordinates);
137
- options.color(color);
138
- options.width(width);
139
- options.geodesic(geodesic);
140
- options.zIndex(zIndex);
141
- options.startCap(lineCap);
142
- options.endCap(lineCap);
143
- options.pattern(this.pattern);
144
- return options;
145
- }
146
-
147
- @Override
148
- public Object getFeature() {
149
- return polyline;
150
- }
151
-
152
- @Override
153
- public void addToMap(Object collection) {
154
- PolylineManager.Collection polylineCollection = (PolylineManager.Collection) collection;
155
- polyline = polylineCollection.addPolyline(getPolylineOptions());
156
- polyline.setClickable(this.tappable);
157
- }
158
-
159
- @Override
160
- public void removeFromMap(Object collection) {
161
- PolylineManager.Collection polylineCollection = (PolylineManager.Collection) collection;
162
- polylineCollection.remove(polyline);
163
- }
31
+ private PolylineOptions polylineOptions;
32
+ private Polyline polyline;
33
+
34
+ private List<LatLng> coordinates;
35
+ private int color;
36
+ private float width;
37
+ private boolean tappable;
38
+ private boolean geodesic;
39
+ private float zIndex;
40
+ private Cap lineCap = new RoundCap();
41
+ private ReadableArray patternValues;
42
+ private List<PatternItem> pattern;
43
+
44
+ public MapPolyline(Context context) {
45
+ super(context);
46
+ }
47
+
48
+ public void setCoordinates(ReadableArray coordinates) {
49
+ this.coordinates = new ArrayList<>(coordinates.size());
50
+ for (int i = 0; i < coordinates.size(); i++) {
51
+ ReadableMap coordinate = coordinates.getMap(i);
52
+ this.coordinates.add(i,
53
+ new LatLng(coordinate.getDouble("latitude"), coordinate.getDouble("longitude")));
54
+ }
55
+ if (polyline != null) {
56
+ polyline.setPoints(this.coordinates);
57
+ }
58
+ }
59
+
60
+ public void setColor(int color) {
61
+ this.color = color;
62
+ if (polyline != null) {
63
+ polyline.setColor(color);
64
+ }
65
+ }
66
+
67
+ public void setStrokeColors(ReadableArray strokeColors) {
68
+ List<StyleSpan> spans = new ArrayList<>();
69
+ for (int i = 0; i < strokeColors.size(); i++) {
70
+ StrokeStyle stroke;
71
+
72
+ if (i == 0) {
73
+ stroke = StrokeStyle.colorBuilder(strokeColors.getInt(i)).build();
74
+ } else {
75
+ stroke = StrokeStyle.gradientBuilder(strokeColors.getInt(i - 1), strokeColors.getInt(i)).build();
76
+ }
77
+ spans.add(new StyleSpan(stroke));
78
+ }
79
+
80
+ polyline.setSpans(spans);
81
+ }
82
+
83
+ public void setWidth(float width) {
84
+ this.width = width;
85
+ if (polyline != null) {
86
+ polyline.setWidth(width);
87
+ }
88
+ }
89
+
90
+ public void setZIndex(float zIndex) {
91
+ this.zIndex = zIndex;
92
+ if (polyline != null) {
93
+ polyline.setZIndex(zIndex);
94
+ }
95
+ }
96
+
97
+ public void setTappable(boolean tapabble) {
98
+ this.tappable = tapabble;
99
+ if (polyline != null) {
100
+ polyline.setClickable(tappable);
101
+ }
102
+ }
103
+
104
+ public void setGeodesic(boolean geodesic) {
105
+ this.geodesic = geodesic;
106
+ if (polyline != null) {
107
+ polyline.setGeodesic(geodesic);
108
+ }
109
+ }
110
+
111
+ public void setLineCap(Cap cap) {
112
+ this.lineCap = cap;
113
+ if (polyline != null) {
114
+ polyline.setStartCap(cap);
115
+ polyline.setEndCap(cap);
116
+ }
117
+ this.applyPattern();
118
+ }
119
+
120
+ public void setLineDashPattern(ReadableArray patternValues) {
121
+ this.patternValues = patternValues;
122
+ this.applyPattern();
123
+ }
124
+
125
+ private void applyPattern() {
126
+ if (patternValues == null) {
127
+ return;
128
+ }
129
+ this.pattern = new ArrayList<>(patternValues.size());
130
+ for (int i = 0; i < patternValues.size(); i++) {
131
+ float patternValue = (float) patternValues.getDouble(i);
132
+ boolean isGap = i % 2 != 0;
133
+ if (isGap) {
134
+ this.pattern.add(new Gap(patternValue));
135
+ } else {
136
+ PatternItem patternItem;
137
+ boolean isLineCapRound = this.lineCap instanceof RoundCap;
138
+ if (isLineCapRound) {
139
+ patternItem = new Dot();
140
+ } else {
141
+ patternItem = new Dash(patternValue);
142
+ }
143
+ this.pattern.add(patternItem);
144
+ }
145
+ }
146
+ if (polyline != null) {
147
+ polyline.setPattern(this.pattern);
148
+ }
149
+ }
150
+
151
+ public PolylineOptions getPolylineOptions() {
152
+ if (polylineOptions == null) {
153
+ polylineOptions = createPolylineOptions();
154
+ }
155
+ return polylineOptions;
156
+ }
157
+
158
+ private PolylineOptions createPolylineOptions() {
159
+ PolylineOptions options = new PolylineOptions();
160
+ options.addAll(coordinates);
161
+ options.color(color);
162
+ options.width(width);
163
+ options.geodesic(geodesic);
164
+ options.zIndex(zIndex);
165
+ options.startCap(lineCap);
166
+ options.endCap(lineCap);
167
+ options.pattern(this.pattern);
168
+ return options;
169
+ }
170
+
171
+ @Override
172
+ public Object getFeature() {
173
+ return polyline;
174
+ }
175
+
176
+ @Override
177
+ public void addToMap(Object collection) {
178
+ PolylineManager.Collection polylineCollection = (PolylineManager.Collection) collection;
179
+ polyline = polylineCollection.addPolyline(getPolylineOptions());
180
+ polyline.setClickable(this.tappable);
181
+ }
182
+
183
+ @Override
184
+ public void removeFromMap(Object collection) {
185
+ PolylineManager.Collection polylineCollection = (PolylineManager.Collection) collection;
186
+ polylineCollection.remove(polyline);
187
+ }
188
+
189
+ public void setLineCap(String lineCap) {
190
+ Cap cap;
191
+ switch (lineCap) {
192
+ case "round":
193
+ cap = new RoundCap();
194
+ break;
195
+ case "square":
196
+ cap = new SquareCap();
197
+ break;
198
+ case "butt":
199
+ default:
200
+ cap = new ButtCap();
201
+ break;
202
+ }
203
+ setLineCap(cap);
204
+ }
205
+
206
+ public static Map<String, Object> getExportedCustomBubblingEventTypeConstants() {
207
+ MapBuilder.Builder<String, Object> builder = MapBuilder.builder();
208
+ builder.put(OnPressEvent.EVENT_NAME, MapBuilder.of("registrationName", OnPressEvent.EVENT_NAME));
209
+ return builder.build();
210
+ }
211
+
212
+ public void setLineJoin(String lineJoin) {
213
+ int type;
214
+ switch (lineJoin) {
215
+ case "round":
216
+ type = JointType.ROUND;
217
+ break;
218
+ case "bevel":
219
+ type = JointType.BEVEL;
220
+ break;
221
+ case "miter":
222
+ default:
223
+ type = JointType.DEFAULT;
224
+ break;
225
+ }
226
+ if (polyline != null) {
227
+ polyline.setJointType(type);
228
+ }
229
+ }
164
230
  }
@@ -74,22 +74,7 @@ public class MapPolylineManager extends ViewGroupManager<MapPolyline> {
74
74
 
75
75
  @ReactProp(name = "lineCap")
76
76
  public void setlineCap(MapPolyline view, String lineCap) {
77
- Cap cap = null;
78
- switch (lineCap) {
79
- case "butt":
80
- cap = new ButtCap();
81
- break;
82
- case "round":
83
- cap = new RoundCap();
84
- break;
85
- case "square":
86
- cap = new SquareCap();
87
- break;
88
- default:
89
- cap = new RoundCap();
90
- break;
91
- }
92
- view.setLineCap(cap);
77
+ view.setLineCap(lineCap);
93
78
  }
94
79
 
95
80
  @ReactProp(name = "lineDashPattern")