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.
Files changed (241) 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/RNMapsDefines.h +0 -0
  120. package/ios/AirMaps/RNMapsMapView.mm +336 -299
  121. package/ios/AirMaps/RNMapsMapViewManager.mm +19 -1
  122. package/ios/AirMaps/RNMapsMarkerView.h +24 -0
  123. package/ios/AirMaps/RNMapsMarkerView.mm +430 -0
  124. package/ios/AirMaps/RNMapsMarkerViewManager.mm +28 -0
  125. package/ios/AirMaps.xcodeproj/project.pbxproj +20 -0
  126. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  127. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  128. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  129. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  130. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  131. package/ios/generated/RCTThirdPartyComponentsProvider.mm +26 -0
  132. package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  133. package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +31 -0
  134. package/ios/generated/RNMapsSpecs/EventEmitters.cpp +977 -0
  135. package/ios/generated/RNMapsSpecs/EventEmitters.h +846 -0
  136. package/ios/generated/RNMapsSpecs/Props.cpp +193 -0
  137. package/ios/generated/RNMapsSpecs/Props.h +1223 -0
  138. package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +591 -0
  139. package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
  140. package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +137 -0
  141. package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +24 -0
  142. package/ios/generated/RNMapsSpecs/ShadowNodes.h +109 -0
  143. package/ios/generated/RNMapsSpecs/States.cpp +16 -0
  144. package/ios/generated/RNMapsSpecs/States.h +113 -0
  145. package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
  146. package/ios/generated/RNMapsSpecsJSI.h +268 -0
  147. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  148. package/package.json +24 -18
  149. package/react-native-google-maps.podspec +26 -0
  150. package/react-native-maps-generated.podspec +31 -0
  151. package/react-native-maps.podspec +44 -15
  152. package/src/AnimatedRegion.ts +169 -0
  153. package/src/Geojson.tsx +541 -0
  154. package/src/MapCallout.tsx +77 -0
  155. package/src/MapCalloutSubview.tsx +64 -0
  156. package/src/MapCircle.tsx +162 -0
  157. package/src/MapHeatmap.tsx +125 -0
  158. package/src/MapLocalTile.tsx +60 -0
  159. package/src/MapMarker.tsx +531 -0
  160. package/src/MapMarkerNativeComponent.ts +51 -0
  161. package/src/MapOverlay.tsx +156 -0
  162. package/src/MapPolygon.tsx +188 -0
  163. package/src/MapPolygon.types.ts +25 -0
  164. package/src/MapPolyline.tsx +215 -0
  165. package/src/MapUrlTile.tsx +169 -0
  166. package/src/MapView.tsx +1223 -0
  167. package/src/MapView.types.ts +212 -0
  168. package/src/MapView.web.ts +2 -0
  169. package/src/MapViewNativeComponent.ts +86 -0
  170. package/src/MapWMSTile.tsx +148 -0
  171. package/src/ProviderConstants.ts +2 -0
  172. package/src/createFabricMap.tsx +253 -0
  173. package/src/decorateMapComponent.ts +219 -0
  174. package/src/fixImageProp.ts +17 -0
  175. package/src/index.ts +52 -0
  176. package/src/sharedTypes.ts +101 -0
  177. package/src/specs/NativeAirMapsModule.ts +36 -0
  178. package/src/specs/NativeComponentCallout.ts +63 -0
  179. package/src/specs/NativeComponentCircle.ts +93 -0
  180. package/src/specs/NativeComponentGoogleMapView.ts +913 -0
  181. package/src/specs/NativeComponentGooglePolygon.ts +94 -0
  182. package/src/specs/NativeComponentMapView.ts +1091 -0
  183. package/src/specs/NativeComponentMarker.ts +326 -0
  184. package/src/specs/NativeComponentOverlay.ts +89 -0
  185. package/src/specs/NativeComponentPolyline.ts +124 -0
  186. package/lib/AnimatedRegion.d.ts +0 -19
  187. package/lib/AnimatedRegion.js +0 -134
  188. package/lib/Geojson.d.ts +0 -204
  189. package/lib/Geojson.js +0 -166
  190. package/lib/MapCallout.d.ts +0 -40
  191. package/lib/MapCallout.js +0 -51
  192. package/lib/MapCalloutSubview.d.ts +0 -34
  193. package/lib/MapCalloutSubview.js +0 -48
  194. package/lib/MapCircle.d.ts +0 -117
  195. package/lib/MapCircle.js +0 -53
  196. package/lib/MapHeatmap.d.ts +0 -78
  197. package/lib/MapHeatmap.js +0 -59
  198. package/lib/MapLocalTile.d.ts +0 -35
  199. package/lib/MapLocalTile.js +0 -44
  200. package/lib/MapMarker.d.ts +0 -309
  201. package/lib/MapMarker.js +0 -116
  202. package/lib/MapMarkerNativeComponent.d.ts +0 -15
  203. package/lib/MapMarkerNativeComponent.js +0 -17
  204. package/lib/MapOverlay.d.ts +0 -87
  205. package/lib/MapOverlay.js +0 -63
  206. package/lib/MapPolygon.d.ts +0 -140
  207. package/lib/MapPolygon.js +0 -53
  208. package/lib/MapPolygon.types.d.ts +0 -18
  209. package/lib/MapPolygon.types.js +0 -2
  210. package/lib/MapPolyline.d.ts +0 -156
  211. package/lib/MapPolyline.js +0 -53
  212. package/lib/MapUrlTile.d.ts +0 -134
  213. package/lib/MapUrlTile.js +0 -44
  214. package/lib/MapView.d.ts +0 -715
  215. package/lib/MapView.js +0 -447
  216. package/lib/MapView.types.d.ts +0 -161
  217. package/lib/MapView.types.js +0 -2
  218. package/lib/MapView.web.d.ts +0 -1
  219. package/lib/MapView.web.js +0 -9
  220. package/lib/MapViewNativeComponent.d.ts +0 -18
  221. package/lib/MapViewNativeComponent.js +0 -19
  222. package/lib/MapWMSTile.d.ts +0 -116
  223. package/lib/MapWMSTile.js +0 -44
  224. package/lib/ProviderConstants.d.ts +0 -2
  225. package/lib/ProviderConstants.js +0 -5
  226. package/lib/createFabricMap.d.ts +0 -23
  227. package/lib/createFabricMap.js +0 -175
  228. package/lib/decorateMapComponent.d.ts +0 -36
  229. package/lib/decorateMapComponent.js +0 -80
  230. package/lib/index.d.ts +0 -38
  231. package/lib/index.js +0 -81
  232. package/lib/sharedTypes.d.ts +0 -81
  233. package/lib/sharedTypes.js +0 -2
  234. package/lib/sharedTypesInternal.js +0 -2
  235. package/lib/specs/NativeAirMapsModule.d.ts +0 -31
  236. package/lib/specs/NativeAirMapsModule.js +0 -4
  237. package/lib/specs/NativeComponentGoogleMapView.d.ts +0 -713
  238. package/lib/specs/NativeComponentGoogleMapView.js +0 -21
  239. package/lib/specs/NativeComponentMapView.d.ts +0 -855
  240. package/lib/specs/NativeComponentMapView.js +0 -21
  241. /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")