@lugg/maps 1.0.0-beta.1 → 1.0.0-beta.11
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/README.md +3 -0
- package/android/src/main/java/com/luggmaps/LuggCalloutView.kt +9 -2
- package/android/src/main/java/com/luggmaps/LuggCalloutViewManager.kt +4 -3
- package/android/src/main/java/com/luggmaps/LuggCircleView.kt +85 -0
- package/android/src/main/java/com/luggmaps/LuggCircleViewManager.kt +79 -0
- package/android/src/main/java/com/luggmaps/LuggGroundOverlayView.kt +81 -0
- package/android/src/main/java/com/luggmaps/LuggGroundOverlayViewManager.kt +82 -0
- package/android/src/main/java/com/luggmaps/LuggMapView.kt +49 -0
- package/android/src/main/java/com/luggmaps/LuggMapViewManager.kt +31 -0
- package/android/src/main/java/com/luggmaps/LuggMarkerView.kt +28 -0
- package/android/src/main/java/com/luggmaps/LuggMarkerViewManager.kt +13 -0
- package/android/src/main/java/com/luggmaps/LuggPackage.kt +4 -1
- package/android/src/main/java/com/luggmaps/LuggPolylineView.kt +1 -22
- package/android/src/main/java/com/luggmaps/LuggTileOverlayView.kt +92 -0
- package/android/src/main/java/com/luggmaps/LuggTileOverlayViewManager.kt +80 -0
- package/android/src/main/java/com/luggmaps/core/GoogleMapProvider.kt +451 -17
- package/android/src/main/java/com/luggmaps/core/MapProviderDelegate.kt +14 -0
- package/android/src/main/java/com/luggmaps/core/PolylineAnimator.kt +27 -9
- package/android/src/main/java/com/luggmaps/events/CirclePressEvent.kt +12 -0
- package/android/src/main/java/com/luggmaps/events/GroundOverlayPressEvent.kt +12 -0
- package/android/src/main/java/com/luggmaps/events/TileOverlayPressEvent.kt +12 -0
- package/android/src/main/java/com/luggmaps/extensions/ViewExtensions.kt +11 -0
- package/ios/LuggCalloutView.h +1 -1
- package/ios/LuggCalloutView.mm +21 -11
- package/ios/LuggCircleView.h +31 -0
- package/ios/LuggCircleView.mm +133 -0
- package/ios/LuggGroundOverlayView.h +30 -0
- package/ios/LuggGroundOverlayView.mm +125 -0
- package/ios/LuggMapView.mm +84 -2
- package/ios/LuggMarkerView.h +3 -0
- package/ios/LuggMarkerView.mm +23 -0
- package/ios/LuggTileOverlayView.h +31 -0
- package/ios/LuggTileOverlayView.mm +130 -0
- package/ios/core/AppleMapProvider.mm +697 -37
- package/ios/core/GMSPolylineAnimator.m +6 -3
- package/ios/core/GoogleMapProvider.mm +400 -22
- package/ios/core/MapProviderDelegate.h +20 -1
- package/ios/events/CirclePressEvent.h +20 -0
- package/ios/events/GroundOverlayPressEvent.h +20 -0
- package/ios/events/TileOverlayPressEvent.h +20 -0
- package/lib/module/MapProvider.web.js +4 -1
- package/lib/module/MapProvider.web.js.map +1 -1
- package/lib/module/MapView.js +12 -1
- package/lib/module/MapView.js.map +1 -1
- package/lib/module/MapView.web.js +21 -18
- package/lib/module/MapView.web.js.map +1 -1
- package/lib/module/components/Circle.js +46 -0
- package/lib/module/components/Circle.js.map +1 -0
- package/lib/module/components/Circle.types.js +4 -0
- package/lib/module/components/Circle.types.js.map +1 -0
- package/lib/module/components/Circle.web.js +79 -0
- package/lib/module/components/Circle.web.js.map +1 -0
- package/lib/module/components/GeoJson.js +3 -3
- package/lib/module/components/GeoJson.js.map +1 -1
- package/lib/module/components/GroundOverlay.js +45 -0
- package/lib/module/components/GroundOverlay.js.map +1 -0
- package/lib/module/components/GroundOverlay.types.js +4 -0
- package/lib/module/components/GroundOverlay.types.js.map +1 -0
- package/lib/module/components/GroundOverlay.web.js +77 -0
- package/lib/module/components/GroundOverlay.web.js.map +1 -0
- package/lib/module/components/Marker.js +22 -4
- package/lib/module/components/Marker.js.map +1 -1
- package/lib/module/components/Marker.web.js +23 -10
- package/lib/module/components/Marker.web.js.map +1 -1
- package/lib/module/components/Polygon.web.js +3 -3
- package/lib/module/components/Polygon.web.js.map +1 -1
- package/lib/module/components/Polyline.web.js +6 -12
- package/lib/module/components/Polyline.web.js.map +1 -1
- package/lib/module/components/TileOverlay.js +44 -0
- package/lib/module/components/TileOverlay.js.map +1 -0
- package/lib/module/components/TileOverlay.types.js +4 -0
- package/lib/module/components/TileOverlay.types.js.map +1 -0
- package/lib/module/components/TileOverlay.web.js +69 -0
- package/lib/module/components/TileOverlay.web.js.map +1 -0
- package/lib/module/components/index.js +3 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/components/index.web.js +3 -0
- package/lib/module/components/index.web.js.map +1 -1
- package/lib/module/fabric/LuggCalloutViewNativeComponent.ts +1 -1
- package/lib/module/fabric/LuggCircleViewNativeComponent.ts +25 -0
- package/lib/module/fabric/LuggGroundOverlayViewNativeComponent.ts +29 -0
- package/lib/module/fabric/LuggMapViewNativeComponent.ts +13 -5
- package/lib/module/fabric/LuggMarkerViewNativeComponent.ts +14 -2
- package/lib/module/fabric/LuggTileOverlayViewNativeComponent.ts +30 -0
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +3 -0
- package/lib/module/index.web.js.map +1 -1
- package/lib/typescript/src/MapProvider.web.d.ts +3 -2
- package/lib/typescript/src/MapProvider.web.d.ts.map +1 -1
- package/lib/typescript/src/MapView.d.ts +1 -1
- package/lib/typescript/src/MapView.d.ts.map +1 -1
- package/lib/typescript/src/MapView.types.d.ts +36 -1
- package/lib/typescript/src/MapView.types.d.ts.map +1 -1
- package/lib/typescript/src/MapView.web.d.ts +1 -1
- package/lib/typescript/src/MapView.web.d.ts.map +1 -1
- package/lib/typescript/src/components/Circle.d.ts +10 -0
- package/lib/typescript/src/components/Circle.d.ts.map +1 -0
- package/lib/typescript/src/components/Circle.types.d.ts +33 -0
- package/lib/typescript/src/components/Circle.types.d.ts.map +1 -0
- package/lib/typescript/src/components/Circle.web.d.ts +3 -0
- package/lib/typescript/src/components/Circle.web.d.ts.map +1 -0
- package/lib/typescript/src/components/GeoJson.d.ts +2 -1
- package/lib/typescript/src/components/GeoJson.d.ts.map +1 -1
- package/lib/typescript/src/components/GroundOverlay.d.ts +10 -0
- package/lib/typescript/src/components/GroundOverlay.d.ts.map +1 -0
- package/lib/typescript/src/components/GroundOverlay.types.d.ts +35 -0
- package/lib/typescript/src/components/GroundOverlay.types.d.ts.map +1 -0
- package/lib/typescript/src/components/GroundOverlay.web.d.ts +3 -0
- package/lib/typescript/src/components/GroundOverlay.web.d.ts.map +1 -0
- package/lib/typescript/src/components/Marker.d.ts +6 -3
- package/lib/typescript/src/components/Marker.d.ts.map +1 -1
- package/lib/typescript/src/components/Marker.types.d.ts +18 -6
- package/lib/typescript/src/components/Marker.types.d.ts.map +1 -1
- package/lib/typescript/src/components/Marker.web.d.ts +3 -2
- package/lib/typescript/src/components/Marker.web.d.ts.map +1 -1
- package/lib/typescript/src/components/Polygon.web.d.ts +1 -1
- package/lib/typescript/src/components/Polygon.web.d.ts.map +1 -1
- package/lib/typescript/src/components/Polyline.web.d.ts +1 -1
- package/lib/typescript/src/components/Polyline.web.d.ts.map +1 -1
- package/lib/typescript/src/components/TileOverlay.d.ts +10 -0
- package/lib/typescript/src/components/TileOverlay.d.ts.map +1 -0
- package/lib/typescript/src/components/TileOverlay.types.d.ts +36 -0
- package/lib/typescript/src/components/TileOverlay.types.d.ts.map +1 -0
- package/lib/typescript/src/components/TileOverlay.web.d.ts +3 -0
- package/lib/typescript/src/components/TileOverlay.web.d.ts.map +1 -0
- package/lib/typescript/src/components/index.d.ts +7 -1
- package/lib/typescript/src/components/index.d.ts.map +1 -1
- package/lib/typescript/src/components/index.web.d.ts +6 -0
- package/lib/typescript/src/components/index.web.d.ts.map +1 -1
- package/lib/typescript/src/fabric/LuggCalloutViewNativeComponent.d.ts +1 -1
- package/lib/typescript/src/fabric/LuggCircleViewNativeComponent.d.ts +18 -0
- package/lib/typescript/src/fabric/LuggCircleViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/fabric/LuggGroundOverlayViewNativeComponent.d.ts +21 -0
- package/lib/typescript/src/fabric/LuggGroundOverlayViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/fabric/LuggMapViewNativeComponent.d.ts +10 -5
- package/lib/typescript/src/fabric/LuggMapViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/fabric/LuggMarkerViewNativeComponent.d.ts +8 -1
- package/lib/typescript/src/fabric/LuggMarkerViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/fabric/LuggTileOverlayViewNativeComponent.d.ts +21 -0
- package/lib/typescript/src/fabric/LuggTileOverlayViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +9 -3
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/index.web.d.ts +7 -1
- package/lib/typescript/src/index.web.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +0 -4
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/package.json +5 -2
- package/src/MapProvider.web.tsx +5 -3
- package/src/MapView.tsx +12 -1
- package/src/MapView.types.ts +118 -1
- package/src/MapView.web.tsx +378 -345
- package/src/components/Circle.tsx +52 -0
- package/src/components/Circle.types.ts +33 -0
- package/src/components/Circle.web.tsx +95 -0
- package/src/components/GeoJson.tsx +3 -3
- package/src/components/GroundOverlay.tsx +47 -0
- package/src/components/GroundOverlay.types.ts +36 -0
- package/src/components/GroundOverlay.web.tsx +81 -0
- package/src/components/Marker.tsx +32 -6
- package/src/components/Marker.types.ts +19 -6
- package/src/components/Marker.web.tsx +196 -150
- package/src/components/Polygon.web.tsx +93 -89
- package/src/components/Polyline.web.tsx +235 -235
- package/src/components/TileOverlay.tsx +44 -0
- package/src/components/TileOverlay.types.ts +37 -0
- package/src/components/TileOverlay.web.tsx +97 -0
- package/src/components/index.ts +10 -0
- package/src/components/index.web.ts +9 -0
- package/src/fabric/LuggCalloutViewNativeComponent.ts +1 -1
- package/src/fabric/LuggCircleViewNativeComponent.ts +25 -0
- package/src/fabric/LuggGroundOverlayViewNativeComponent.ts +29 -0
- package/src/fabric/LuggMapViewNativeComponent.ts +13 -5
- package/src/fabric/LuggMarkerViewNativeComponent.ts +14 -2
- package/src/fabric/LuggTileOverlayViewNativeComponent.ts +30 -0
- package/src/index.ts +12 -1
- package/src/index.web.ts +15 -0
- package/src/types.ts +0 -5
|
@@ -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
|
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
package com.luggmaps
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import com.facebook.react.views.view.ReactViewGroup
|
|
5
|
+
import com.google.android.gms.maps.model.TileOverlay
|
|
6
|
+
import com.luggmaps.events.TileOverlayPressEvent
|
|
7
|
+
import com.luggmaps.extensions.dispatchEvent
|
|
8
|
+
|
|
9
|
+
interface LuggTileOverlayViewDelegate {
|
|
10
|
+
fun tileOverlayViewDidUpdate(tileOverlayView: LuggTileOverlayView)
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
class LuggTileOverlayView(context: Context) : ReactViewGroup(context) {
|
|
14
|
+
var urlTemplate: String = ""
|
|
15
|
+
private set
|
|
16
|
+
|
|
17
|
+
var tileSize: Int = 256
|
|
18
|
+
private set
|
|
19
|
+
|
|
20
|
+
var overlayOpacity: Float = 1f
|
|
21
|
+
private set
|
|
22
|
+
|
|
23
|
+
var hasBounds: Boolean = false
|
|
24
|
+
private set
|
|
25
|
+
var boundsSwLat: Double = 0.0
|
|
26
|
+
private set
|
|
27
|
+
var boundsSwLng: Double = 0.0
|
|
28
|
+
private set
|
|
29
|
+
var boundsNeLat: Double = 0.0
|
|
30
|
+
private set
|
|
31
|
+
var boundsNeLng: Double = 0.0
|
|
32
|
+
private set
|
|
33
|
+
|
|
34
|
+
var zIndex: Float = 0f
|
|
35
|
+
private set
|
|
36
|
+
|
|
37
|
+
var tappable: Boolean = false
|
|
38
|
+
private set
|
|
39
|
+
|
|
40
|
+
var delegate: LuggTileOverlayViewDelegate? = null
|
|
41
|
+
var tileOverlay: TileOverlay? = null
|
|
42
|
+
|
|
43
|
+
init {
|
|
44
|
+
visibility = GONE
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
fun setUrlTemplate(value: String) {
|
|
48
|
+
urlTemplate = value
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
fun setTileSize(value: Int) {
|
|
52
|
+
tileSize = value
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
fun setOverlayOpacity(value: Float) {
|
|
56
|
+
overlayOpacity = value
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
fun setZIndex(value: Float) {
|
|
60
|
+
zIndex = value
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
fun setBounds(swLat: Double, swLng: Double, neLat: Double, neLng: Double) {
|
|
64
|
+
hasBounds = true
|
|
65
|
+
boundsSwLat = swLat
|
|
66
|
+
boundsSwLng = swLng
|
|
67
|
+
boundsNeLat = neLat
|
|
68
|
+
boundsNeLng = neLng
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
fun clearBounds() {
|
|
72
|
+
hasBounds = false
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
fun setTappable(value: Boolean) {
|
|
76
|
+
tappable = value
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
fun emitPressEvent() {
|
|
80
|
+
dispatchEvent(TileOverlayPressEvent(this))
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
fun onAfterUpdateTransaction() {
|
|
84
|
+
delegate?.tileOverlayViewDidUpdate(this)
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
fun onDropViewInstance() {
|
|
88
|
+
delegate = null
|
|
89
|
+
tileOverlay?.remove()
|
|
90
|
+
tileOverlay = null
|
|
91
|
+
}
|
|
92
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
package com.luggmaps
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReadableMap
|
|
4
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
5
|
+
import com.facebook.react.uimanager.ThemedReactContext
|
|
6
|
+
import com.facebook.react.uimanager.ViewGroupManager
|
|
7
|
+
import com.facebook.react.uimanager.ViewManagerDelegate
|
|
8
|
+
import com.facebook.react.uimanager.annotations.ReactProp
|
|
9
|
+
import com.facebook.react.viewmanagers.LuggTileOverlayViewManagerDelegate
|
|
10
|
+
import com.facebook.react.viewmanagers.LuggTileOverlayViewManagerInterface
|
|
11
|
+
|
|
12
|
+
@ReactModule(name = LuggTileOverlayViewManager.NAME)
|
|
13
|
+
class LuggTileOverlayViewManager :
|
|
14
|
+
ViewGroupManager<LuggTileOverlayView>(),
|
|
15
|
+
LuggTileOverlayViewManagerInterface<LuggTileOverlayView> {
|
|
16
|
+
private val delegate: ViewManagerDelegate<LuggTileOverlayView> = LuggTileOverlayViewManagerDelegate(this)
|
|
17
|
+
|
|
18
|
+
override fun getDelegate(): ViewManagerDelegate<LuggTileOverlayView> = delegate
|
|
19
|
+
override fun getName(): String = NAME
|
|
20
|
+
override fun createViewInstance(context: ThemedReactContext): LuggTileOverlayView = LuggTileOverlayView(context)
|
|
21
|
+
|
|
22
|
+
override fun getExportedCustomDirectEventTypeConstants(): Map<String, Any> =
|
|
23
|
+
mapOf("topTileOverlayPress" to mapOf("registrationName" to "onTileOverlayPress"))
|
|
24
|
+
|
|
25
|
+
override fun onDropViewInstance(view: LuggTileOverlayView) {
|
|
26
|
+
super.onDropViewInstance(view)
|
|
27
|
+
view.onDropViewInstance()
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
override fun onAfterUpdateTransaction(view: LuggTileOverlayView) {
|
|
31
|
+
super.onAfterUpdateTransaction(view)
|
|
32
|
+
view.onAfterUpdateTransaction()
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@ReactProp(name = "urlTemplate")
|
|
36
|
+
override fun setUrlTemplate(view: LuggTileOverlayView, value: String?) {
|
|
37
|
+
view.setUrlTemplate(value ?: "")
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@ReactProp(name = "tileSize", defaultInt = 256)
|
|
41
|
+
override fun setTileSize(view: LuggTileOverlayView, value: Int) {
|
|
42
|
+
view.setTileSize(value)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@ReactProp(name = "opacity", defaultDouble = 1.0)
|
|
46
|
+
override fun setOpacity(view: LuggTileOverlayView, value: Double) {
|
|
47
|
+
view.setOverlayOpacity(value.toFloat())
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@ReactProp(name = "bounds")
|
|
51
|
+
override fun setBounds(view: LuggTileOverlayView, value: ReadableMap?) {
|
|
52
|
+
if (value == null) {
|
|
53
|
+
view.clearBounds()
|
|
54
|
+
return
|
|
55
|
+
}
|
|
56
|
+
val ne = value.getMap("northeast")
|
|
57
|
+
val sw = value.getMap("southwest")
|
|
58
|
+
view.setBounds(
|
|
59
|
+
sw?.getDouble("latitude") ?: 0.0,
|
|
60
|
+
sw?.getDouble("longitude") ?: 0.0,
|
|
61
|
+
ne?.getDouble("latitude") ?: 0.0,
|
|
62
|
+
ne?.getDouble("longitude") ?: 0.0
|
|
63
|
+
)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
@ReactProp(name = "tappable")
|
|
67
|
+
override fun setTappable(view: LuggTileOverlayView, value: Boolean) {
|
|
68
|
+
view.setTappable(value)
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@ReactProp(name = "zIndex", defaultFloat = 0f)
|
|
72
|
+
override fun setZIndex(view: LuggTileOverlayView, value: Float) {
|
|
73
|
+
super.setZIndex(view, value)
|
|
74
|
+
view.setZIndex(value)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
companion object {
|
|
78
|
+
const val NAME = "LuggTileOverlayView"
|
|
79
|
+
}
|
|
80
|
+
}
|