@lugg/maps 1.0.0-beta.7 → 1.0.0-beta.9
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/src/main/java/com/luggmaps/LuggPolylineView.kt +1 -22
- package/android/src/main/java/com/luggmaps/core/PolylineAnimator.kt +6 -3
- package/ios/core/GMSPolylineAnimator.m +6 -3
- package/lib/module/fabric/LuggMapViewNativeComponent.ts +4 -4
- package/lib/typescript/src/fabric/LuggMapViewNativeComponent.d.ts +4 -4
- package/lib/typescript/src/fabric/LuggMapViewNativeComponent.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/fabric/LuggMapViewNativeComponent.ts +4 -4
|
@@ -5,8 +5,6 @@ import android.graphics.Color
|
|
|
5
5
|
import com.facebook.react.views.view.ReactViewGroup
|
|
6
6
|
import com.google.android.gms.maps.model.LatLng
|
|
7
7
|
import com.google.android.gms.maps.model.Polyline
|
|
8
|
-
import com.google.android.gms.maps.model.StrokeStyle
|
|
9
|
-
import com.google.android.gms.maps.model.StyleSpan
|
|
10
8
|
|
|
11
9
|
interface LuggPolylineViewDelegate {
|
|
12
10
|
fun polylineViewDidUpdate(polylineView: LuggPolylineView)
|
|
@@ -33,9 +31,6 @@ class LuggPolylineView(context: Context) : ReactViewGroup(context) {
|
|
|
33
31
|
var zIndex: Float = 0f
|
|
34
32
|
private set
|
|
35
33
|
|
|
36
|
-
var cachedSpans: List<StyleSpan>? = null
|
|
37
|
-
private set
|
|
38
|
-
|
|
39
34
|
var delegate: LuggPolylineViewDelegate? = null
|
|
40
35
|
var polyline: Polyline? = null
|
|
41
36
|
|
|
@@ -48,11 +43,7 @@ class LuggPolylineView(context: Context) : ReactViewGroup(context) {
|
|
|
48
43
|
}
|
|
49
44
|
|
|
50
45
|
fun setStrokeColors(colors: List<Int>) {
|
|
51
|
-
|
|
52
|
-
if (newColors != strokeColors) {
|
|
53
|
-
strokeColors = newColors
|
|
54
|
-
cachedSpans = null
|
|
55
|
-
}
|
|
46
|
+
strokeColors = colors.ifEmpty { listOf(Color.BLACK) }
|
|
56
47
|
}
|
|
57
48
|
|
|
58
49
|
fun setStrokeWidth(width: Float) {
|
|
@@ -71,18 +62,6 @@ class LuggPolylineView(context: Context) : ReactViewGroup(context) {
|
|
|
71
62
|
zIndex = value
|
|
72
63
|
}
|
|
73
64
|
|
|
74
|
-
fun getOrCreateSpans(): List<StyleSpan> {
|
|
75
|
-
cachedSpans?.let { return it }
|
|
76
|
-
|
|
77
|
-
val segmentCount = coordinates.size - 1
|
|
78
|
-
val spans = (0 until segmentCount).map { i ->
|
|
79
|
-
val color = strokeColors[i % strokeColors.size]
|
|
80
|
-
StyleSpan(StrokeStyle.colorBuilder(color).build())
|
|
81
|
-
}
|
|
82
|
-
cachedSpans = spans
|
|
83
|
-
return spans
|
|
84
|
-
}
|
|
85
|
-
|
|
86
65
|
fun onAfterUpdateTransaction() {
|
|
87
66
|
delegate?.polylineViewDidUpdate(this)
|
|
88
67
|
}
|
|
@@ -15,6 +15,7 @@ import kotlin.math.min
|
|
|
15
15
|
class PolylineAnimator {
|
|
16
16
|
companion object {
|
|
17
17
|
private const val MAX_ANIMATION_SPANS = 16
|
|
18
|
+
private const val MAX_GRADIENT_SPANS = 512
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
var polyline: Polyline? = null
|
|
@@ -255,10 +256,12 @@ class PolylineAnimator {
|
|
|
255
256
|
|
|
256
257
|
private fun createGradientSpans(): List<StyleSpan> {
|
|
257
258
|
val segmentCount = coordinates.size - 1
|
|
258
|
-
|
|
259
|
-
|
|
259
|
+
val spanCount = min(segmentCount, MAX_GRADIENT_SPANS)
|
|
260
|
+
val segmentsPerSpan = segmentCount.toDouble() / spanCount
|
|
261
|
+
return (0 until spanCount).map { i ->
|
|
262
|
+
val position = (i + 0.5f) / spanCount
|
|
260
263
|
val color = colorAtGradientPosition(position)
|
|
261
|
-
StyleSpan(StrokeStyle.colorBuilder(color).build())
|
|
264
|
+
StyleSpan(StrokeStyle.colorBuilder(color).build(), segmentsPerSpan)
|
|
262
265
|
}
|
|
263
266
|
}
|
|
264
267
|
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
#import <QuartzCore/QuartzCore.h>
|
|
3
3
|
|
|
4
4
|
static const NSUInteger kMaxAnimationSpans = 16;
|
|
5
|
+
static const NSUInteger kMaxGradientSpans = 512;
|
|
5
6
|
|
|
6
7
|
@interface GMSDisplayLinkProxy : NSObject
|
|
7
8
|
@property(nonatomic, weak) id target;
|
|
@@ -272,12 +273,14 @@ static const NSUInteger kMaxAnimationSpans = 16;
|
|
|
272
273
|
- (NSArray<GMSStyleSpan *> *)createGradientSpans {
|
|
273
274
|
NSMutableArray<GMSStyleSpan *> *spans = [NSMutableArray array];
|
|
274
275
|
NSUInteger segmentCount = self.coordinates.count - 1;
|
|
276
|
+
NSUInteger spanCount = MIN(segmentCount, kMaxGradientSpans);
|
|
277
|
+
double segmentsPerSpan = (double)segmentCount / spanCount;
|
|
275
278
|
|
|
276
|
-
for (NSUInteger i = 0; i <
|
|
277
|
-
CGFloat position = (CGFloat)i /
|
|
279
|
+
for (NSUInteger i = 0; i < spanCount; i++) {
|
|
280
|
+
CGFloat position = ((CGFloat)i + 0.5) / spanCount;
|
|
278
281
|
UIColor *color = [self colorAtGradientPosition:position];
|
|
279
282
|
GMSStrokeStyle *style = [GMSStrokeStyle solidColor:color];
|
|
280
|
-
[spans addObject:[GMSStyleSpan spanWithStyle:style]];
|
|
283
|
+
[spans addObject:[GMSStyleSpan spanWithStyle:style segments:segmentsPerSpan]];
|
|
281
284
|
}
|
|
282
285
|
|
|
283
286
|
return spans;
|
|
@@ -71,10 +71,10 @@ export interface NativeProps extends ViewProps {
|
|
|
71
71
|
initialZoom?: Double;
|
|
72
72
|
minZoom?: Double;
|
|
73
73
|
maxZoom?: Double;
|
|
74
|
-
zoomEnabled?: boolean
|
|
75
|
-
scrollEnabled?: boolean
|
|
76
|
-
rotateEnabled?: boolean
|
|
77
|
-
pitchEnabled?: boolean
|
|
74
|
+
zoomEnabled?: WithDefault<boolean, true>;
|
|
75
|
+
scrollEnabled?: WithDefault<boolean, true>;
|
|
76
|
+
rotateEnabled?: WithDefault<boolean, true>;
|
|
77
|
+
pitchEnabled?: WithDefault<boolean, true>;
|
|
78
78
|
edgeInsets?: EdgeInsets;
|
|
79
79
|
userLocationEnabled?: boolean;
|
|
80
80
|
userLocationButtonEnabled?: boolean;
|
|
@@ -56,10 +56,10 @@ export interface NativeProps extends ViewProps {
|
|
|
56
56
|
initialZoom?: Double;
|
|
57
57
|
minZoom?: Double;
|
|
58
58
|
maxZoom?: Double;
|
|
59
|
-
zoomEnabled?: boolean
|
|
60
|
-
scrollEnabled?: boolean
|
|
61
|
-
rotateEnabled?: boolean
|
|
62
|
-
pitchEnabled?: boolean
|
|
59
|
+
zoomEnabled?: WithDefault<boolean, true>;
|
|
60
|
+
scrollEnabled?: WithDefault<boolean, true>;
|
|
61
|
+
rotateEnabled?: WithDefault<boolean, true>;
|
|
62
|
+
pitchEnabled?: WithDefault<boolean, true>;
|
|
63
63
|
edgeInsets?: EdgeInsets;
|
|
64
64
|
userLocationEnabled?: boolean;
|
|
65
65
|
userLocationButtonEnabled?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LuggMapViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/fabric/LuggMapViewNativeComponent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EACV,MAAM,EACN,WAAW,EACX,kBAAkB,EACnB,MAAM,2CAA2C,CAAC;AAEnD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,KAAK,EAAE;QACL,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,KAAK,EAAE;QACL,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;CACH;AAED,MAAM,WAAW,UAAU;CAAG;AAE9B,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,WAAW,CACnB,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,gBAAgB,EAClE,UAAU,CACX,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"LuggMapViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/fabric/LuggMapViewNativeComponent.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -71,10 +71,10 @@ export interface NativeProps extends ViewProps {
|
|
|
71
71
|
initialZoom?: Double;
|
|
72
72
|
minZoom?: Double;
|
|
73
73
|
maxZoom?: Double;
|
|
74
|
-
zoomEnabled?: boolean
|
|
75
|
-
scrollEnabled?: boolean
|
|
76
|
-
rotateEnabled?: boolean
|
|
77
|
-
pitchEnabled?: boolean
|
|
74
|
+
zoomEnabled?: WithDefault<boolean, true>;
|
|
75
|
+
scrollEnabled?: WithDefault<boolean, true>;
|
|
76
|
+
rotateEnabled?: WithDefault<boolean, true>;
|
|
77
|
+
pitchEnabled?: WithDefault<boolean, true>;
|
|
78
78
|
edgeInsets?: EdgeInsets;
|
|
79
79
|
userLocationEnabled?: boolean;
|
|
80
80
|
userLocationButtonEnabled?: boolean;
|