@lugg/maps 0.2.0-alpha.15 → 0.2.0-alpha.16
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { forwardRef, useEffect, useId, useImperativeHandle, useRef, useState } from 'react';
|
|
4
|
-
import { View
|
|
3
|
+
import { forwardRef, useCallback, useEffect, useId, useImperativeHandle, useRef, useState } from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
5
|
import { Map, useMap } from '@vis.gl/react-google-maps';
|
|
6
6
|
import { Marker } from "./components/Marker.web.js";
|
|
7
7
|
import { MapIdContext } from "./MapProvider.web.js";
|
|
@@ -87,9 +87,34 @@ export const MapView = /*#__PURE__*/forwardRef(function MapView(props, ref) {
|
|
|
87
87
|
} = props;
|
|
88
88
|
const id = useId();
|
|
89
89
|
const map = useMap(id);
|
|
90
|
+
const containerRef = useRef(null);
|
|
90
91
|
const readyFired = useRef(false);
|
|
91
92
|
const isDragging = useRef(false);
|
|
92
93
|
const wasGesture = useRef(false);
|
|
94
|
+
const prevPadding = useRef(padding);
|
|
95
|
+
const offsetCenter = useCallback((coord, zoom, paddingOverride, reverse = false) => {
|
|
96
|
+
const p = paddingOverride ?? padding;
|
|
97
|
+
const div = map?.getDiv();
|
|
98
|
+
if (!p || !div) {
|
|
99
|
+
return {
|
|
100
|
+
lat: coord.latitude,
|
|
101
|
+
lng: coord.longitude
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
const dir = reverse ? -1 : 1;
|
|
105
|
+
const scale = 256 * Math.pow(2, zoom);
|
|
106
|
+
const offsetX = dir * ((p.right ?? 0) - (p.left ?? 0)) / 2;
|
|
107
|
+
const offsetY = dir * ((p.bottom ?? 0) - (p.top ?? 0)) / 2;
|
|
108
|
+
const latRad = coord.latitude * Math.PI / 180;
|
|
109
|
+
const x = (coord.longitude + 180) / 360 * scale + offsetX;
|
|
110
|
+
const y = (1 - Math.log(Math.tan(latRad) + 1 / Math.cos(latRad)) / Math.PI) / 2 * scale + offsetY;
|
|
111
|
+
const lng = x / scale * 360 - 180;
|
|
112
|
+
const lat = Math.atan(Math.sinh(Math.PI * (1 - 2 * y / scale))) * 180 / Math.PI;
|
|
113
|
+
return {
|
|
114
|
+
lat,
|
|
115
|
+
lng
|
|
116
|
+
};
|
|
117
|
+
}, [map, padding]);
|
|
93
118
|
useImperativeHandle(ref, () => ({
|
|
94
119
|
moveCamera(coordinate, options) {
|
|
95
120
|
if (!map) return;
|
|
@@ -97,14 +122,12 @@ export const MapView = /*#__PURE__*/forwardRef(function MapView(props, ref) {
|
|
|
97
122
|
zoom,
|
|
98
123
|
duration = -1
|
|
99
124
|
} = options;
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
lng: coordinate.longitude
|
|
103
|
-
};
|
|
125
|
+
const targetZoom = zoom ?? map.getZoom() ?? initialZoom;
|
|
126
|
+
const center = offsetCenter(coordinate, targetZoom, undefined, false);
|
|
104
127
|
if (duration === 0) {
|
|
105
128
|
map.moveCamera({
|
|
106
129
|
center,
|
|
107
|
-
zoom
|
|
130
|
+
zoom: targetZoom
|
|
108
131
|
});
|
|
109
132
|
} else {
|
|
110
133
|
const currentZoom = map.getZoom();
|
|
@@ -137,19 +160,40 @@ export const MapView = /*#__PURE__*/forwardRef(function MapView(props, ref) {
|
|
|
137
160
|
});
|
|
138
161
|
});
|
|
139
162
|
map.fitBounds(bounds, {
|
|
140
|
-
top: fitPadding?.top ?? 0,
|
|
141
|
-
left: fitPadding?.left ?? 0,
|
|
142
|
-
bottom: fitPadding?.bottom ?? 0,
|
|
143
|
-
right: fitPadding?.right ?? 0
|
|
163
|
+
top: (padding?.top ?? 0) + (fitPadding?.top ?? 0),
|
|
164
|
+
left: (padding?.left ?? 0) + (fitPadding?.left ?? 0),
|
|
165
|
+
bottom: (padding?.bottom ?? 0) + (fitPadding?.bottom ?? 0),
|
|
166
|
+
right: (padding?.right ?? 0) + (fitPadding?.right ?? 0)
|
|
144
167
|
});
|
|
145
168
|
}
|
|
146
|
-
}), [map, initialZoom]);
|
|
169
|
+
}), [map, initialZoom, padding, offsetCenter]);
|
|
147
170
|
useEffect(() => {
|
|
148
171
|
if (map && !readyFired.current) {
|
|
149
172
|
readyFired.current = true;
|
|
150
173
|
onReady?.();
|
|
151
174
|
}
|
|
152
175
|
}, [map, onReady]);
|
|
176
|
+
useEffect(() => {
|
|
177
|
+
if (!map || !padding) return;
|
|
178
|
+
const prev = prevPadding.current;
|
|
179
|
+
const paddingChanged = prev?.top !== padding.top || prev?.left !== padding.left || prev?.bottom !== padding.bottom || prev?.right !== padding.right;
|
|
180
|
+
if (paddingChanged) {
|
|
181
|
+
const center = map.getCenter();
|
|
182
|
+
const zoom = map.getZoom() ?? initialZoom;
|
|
183
|
+
if (center) {
|
|
184
|
+
const logicalCenter = offsetCenter({
|
|
185
|
+
latitude: center.lat(),
|
|
186
|
+
longitude: center.lng()
|
|
187
|
+
}, zoom, prev, true);
|
|
188
|
+
const newCenter = offsetCenter({
|
|
189
|
+
latitude: logicalCenter.lat,
|
|
190
|
+
longitude: logicalCenter.lng
|
|
191
|
+
}, zoom, padding, false);
|
|
192
|
+
map.panTo(newCenter);
|
|
193
|
+
}
|
|
194
|
+
prevPadding.current = padding;
|
|
195
|
+
}
|
|
196
|
+
}, [map, padding, initialZoom, offsetCenter]);
|
|
153
197
|
const handleDragStart = () => {
|
|
154
198
|
isDragging.current = true;
|
|
155
199
|
wasGesture.current = true;
|
|
@@ -158,10 +202,14 @@ export const MapView = /*#__PURE__*/forwardRef(function MapView(props, ref) {
|
|
|
158
202
|
isDragging.current = false;
|
|
159
203
|
};
|
|
160
204
|
const handleCameraChanged = event => {
|
|
205
|
+
const logicalCenter = offsetCenter({
|
|
206
|
+
latitude: event.detail.center.lat,
|
|
207
|
+
longitude: event.detail.center.lng
|
|
208
|
+
}, event.detail.zoom, undefined, true);
|
|
161
209
|
const payload = {
|
|
162
210
|
coordinate: {
|
|
163
|
-
latitude:
|
|
164
|
-
longitude:
|
|
211
|
+
latitude: logicalCenter.lat,
|
|
212
|
+
longitude: logicalCenter.lng
|
|
165
213
|
},
|
|
166
214
|
zoom: event.detail.zoom,
|
|
167
215
|
gesture: isDragging.current
|
|
@@ -170,12 +218,17 @@ export const MapView = /*#__PURE__*/forwardRef(function MapView(props, ref) {
|
|
|
170
218
|
};
|
|
171
219
|
const handleIdle = event => {
|
|
172
220
|
const center = event.map.getCenter();
|
|
221
|
+
const zoom = event.map.getZoom() ?? 0;
|
|
222
|
+
const logicalCenter = offsetCenter({
|
|
223
|
+
latitude: center?.lat() ?? 0,
|
|
224
|
+
longitude: center?.lng() ?? 0
|
|
225
|
+
}, zoom, undefined, true);
|
|
173
226
|
const payload = {
|
|
174
227
|
coordinate: {
|
|
175
|
-
latitude:
|
|
176
|
-
longitude:
|
|
228
|
+
latitude: logicalCenter.lat,
|
|
229
|
+
longitude: logicalCenter.lng
|
|
177
230
|
},
|
|
178
|
-
zoom
|
|
231
|
+
zoom,
|
|
179
232
|
gesture: wasGesture.current
|
|
180
233
|
};
|
|
181
234
|
onCameraIdle?.(createSyntheticEvent(payload));
|
|
@@ -186,37 +239,29 @@ export const MapView = /*#__PURE__*/forwardRef(function MapView(props, ref) {
|
|
|
186
239
|
lat: initialCoordinate.latitude,
|
|
187
240
|
lng: initialCoordinate.longitude
|
|
188
241
|
} : undefined;
|
|
189
|
-
const paddingStyle = {
|
|
190
|
-
paddingTop: padding?.top ?? 0,
|
|
191
|
-
paddingLeft: padding?.left ?? 0,
|
|
192
|
-
paddingRight: padding?.right ?? 0,
|
|
193
|
-
paddingBottom: padding?.bottom ?? 0
|
|
194
|
-
};
|
|
195
242
|
return /*#__PURE__*/_jsx(MapIdContext.Provider, {
|
|
196
243
|
value: id,
|
|
197
244
|
children: /*#__PURE__*/_jsx(View, {
|
|
245
|
+
ref: containerRef,
|
|
198
246
|
style: style,
|
|
199
|
-
children: /*#__PURE__*/
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
enabled: userLocationEnabled
|
|
218
|
-
}), children]
|
|
219
|
-
})
|
|
247
|
+
children: /*#__PURE__*/_jsxs(Map, {
|
|
248
|
+
id: id,
|
|
249
|
+
mapId: mapId,
|
|
250
|
+
defaultCenter: defaultCenter,
|
|
251
|
+
defaultZoom: initialZoom,
|
|
252
|
+
minZoom: minZoom,
|
|
253
|
+
maxZoom: maxZoom,
|
|
254
|
+
gestureHandling: gestureHandling,
|
|
255
|
+
disableDefaultUI: true,
|
|
256
|
+
isFractionalZoomEnabled: true,
|
|
257
|
+
tilt: pitchEnabled === false ? 0 : undefined,
|
|
258
|
+
onDragstart: handleDragStart,
|
|
259
|
+
onDragend: handleDragEnd,
|
|
260
|
+
onCameraChanged: handleCameraChanged,
|
|
261
|
+
onIdle: handleIdle,
|
|
262
|
+
children: [/*#__PURE__*/_jsx(UserLocationMarker, {
|
|
263
|
+
enabled: userLocationEnabled
|
|
264
|
+
}), children]
|
|
220
265
|
})
|
|
221
266
|
})
|
|
222
267
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useEffect","useId","useImperativeHandle","useRef","useState","View","StyleSheet","Map","useMap","Marker","MapIdContext","jsx","_jsx","jsxs","_jsxs","createSyntheticEvent","nativeEvent","currentTarget","target","bubbles","cancelable","defaultPrevented","eventPhase","isTrusted","preventDefault","stopPropagation","isDefaultPrevented","isPropagationStopped","persist","timeStamp","Date","now","type","userLocationDotStyle","width","height","backgroundColor","border","borderRadius","boxShadow","UserLocationMarker","enabled","coordinate","setCoordinate","watchId","updateLocation","position","latitude","coords","longitude","navigator","geolocation","getCurrentPosition","watchPosition","clearWatch","anchor","x","y","children","style","MapView","props","ref","mapId","google","maps","DEMO_MAP_ID","initialCoordinate","initialZoom","minZoom","maxZoom","zoomEnabled","scrollEnabled","pitchEnabled","padding","userLocationEnabled","onCameraMove","onCameraIdle","onReady","id","map","readyFired","isDragging","wasGesture","moveCamera","options","zoom","duration","center","lat","lng","currentZoom","getZoom","zoomChanged","undefined","setZoom","panTo","fitCoordinates","coordinates","first","fitPadding","length","bounds","LatLngBounds","forEach","coord","extend","fitBounds","top","left","bottom","right","current","handleDragStart","handleDragEnd","handleCameraChanged","event","payload","detail","gesture","handleIdle","getCenter","gestureHandling","defaultCenter","paddingStyle","paddingTop","paddingLeft","paddingRight","paddingBottom","Provider","value","absoluteFill","defaultZoom","disableDefaultUI","isFractionalZoomEnabled","tilt","onDragstart","onDragend","onCameraChanged","onIdle"],"sourceRoot":"../../src","sources":["MapView.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["forwardRef","useCallback","useEffect","useId","useImperativeHandle","useRef","useState","View","Map","useMap","Marker","MapIdContext","jsx","_jsx","jsxs","_jsxs","createSyntheticEvent","nativeEvent","currentTarget","target","bubbles","cancelable","defaultPrevented","eventPhase","isTrusted","preventDefault","stopPropagation","isDefaultPrevented","isPropagationStopped","persist","timeStamp","Date","now","type","userLocationDotStyle","width","height","backgroundColor","border","borderRadius","boxShadow","UserLocationMarker","enabled","coordinate","setCoordinate","watchId","updateLocation","position","latitude","coords","longitude","navigator","geolocation","getCurrentPosition","watchPosition","clearWatch","anchor","x","y","children","style","MapView","props","ref","mapId","google","maps","DEMO_MAP_ID","initialCoordinate","initialZoom","minZoom","maxZoom","zoomEnabled","scrollEnabled","pitchEnabled","padding","userLocationEnabled","onCameraMove","onCameraIdle","onReady","id","map","containerRef","readyFired","isDragging","wasGesture","prevPadding","offsetCenter","coord","zoom","paddingOverride","reverse","p","div","getDiv","lat","lng","dir","scale","Math","pow","offsetX","right","left","offsetY","bottom","top","latRad","PI","log","tan","cos","atan","sinh","moveCamera","options","duration","targetZoom","getZoom","center","undefined","currentZoom","zoomChanged","setZoom","panTo","fitCoordinates","coordinates","first","fitPadding","length","bounds","LatLngBounds","forEach","extend","fitBounds","current","prev","paddingChanged","getCenter","logicalCenter","newCenter","handleDragStart","handleDragEnd","handleCameraChanged","event","detail","payload","gesture","handleIdle","gestureHandling","defaultCenter","Provider","value","defaultZoom","disableDefaultUI","isFractionalZoomEnabled","tilt","onDragstart","onDragend","onCameraChanged","onIdle"],"sourceRoot":"../../src","sources":["MapView.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapView.web.d.ts","sourceRoot":"","sources":["../../../src/MapView.web.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MapView.web.d.ts","sourceRoot":"","sources":["../../../src/MapView.web.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EAIX,MAAM,iBAAiB,CAAC;AAoEzB,eAAO,MAAM,OAAO,qGAiPlB,CAAC"}
|
package/package.json
CHANGED
package/src/MapView.web.tsx
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
forwardRef,
|
|
3
|
+
useCallback,
|
|
3
4
|
useEffect,
|
|
4
5
|
useId,
|
|
5
6
|
useImperativeHandle,
|
|
@@ -7,8 +8,8 @@ import {
|
|
|
7
8
|
useState,
|
|
8
9
|
type CSSProperties,
|
|
9
10
|
} from 'react';
|
|
10
|
-
import type { NativeSyntheticEvent
|
|
11
|
-
import { View
|
|
11
|
+
import type { NativeSyntheticEvent } from 'react-native';
|
|
12
|
+
import { View } from 'react-native';
|
|
12
13
|
import {
|
|
13
14
|
Map,
|
|
14
15
|
useMap,
|
|
@@ -116,9 +117,46 @@ export const MapView = forwardRef<MapViewRef, MapViewProps>(function MapView(
|
|
|
116
117
|
|
|
117
118
|
const id = useId();
|
|
118
119
|
const map = useMap(id);
|
|
120
|
+
const containerRef = useRef<View>(null);
|
|
119
121
|
const readyFired = useRef(false);
|
|
120
122
|
const isDragging = useRef(false);
|
|
121
123
|
const wasGesture = useRef(false);
|
|
124
|
+
const prevPadding = useRef(padding);
|
|
125
|
+
|
|
126
|
+
const offsetCenter = useCallback(
|
|
127
|
+
(
|
|
128
|
+
coord: Coordinate,
|
|
129
|
+
zoom: number,
|
|
130
|
+
paddingOverride?: typeof padding,
|
|
131
|
+
reverse = false
|
|
132
|
+
) => {
|
|
133
|
+
const p = paddingOverride ?? padding;
|
|
134
|
+
const div = map?.getDiv();
|
|
135
|
+
if (!p || !div) {
|
|
136
|
+
return { lat: coord.latitude, lng: coord.longitude };
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
const dir = reverse ? -1 : 1;
|
|
140
|
+
const scale = 256 * Math.pow(2, zoom);
|
|
141
|
+
const offsetX = (dir * ((p.right ?? 0) - (p.left ?? 0))) / 2;
|
|
142
|
+
const offsetY = (dir * ((p.bottom ?? 0) - (p.top ?? 0))) / 2;
|
|
143
|
+
|
|
144
|
+
const latRad = (coord.latitude * Math.PI) / 180;
|
|
145
|
+
const x = ((coord.longitude + 180) / 360) * scale + offsetX;
|
|
146
|
+
const y =
|
|
147
|
+
((1 - Math.log(Math.tan(latRad) + 1 / Math.cos(latRad)) / Math.PI) /
|
|
148
|
+
2) *
|
|
149
|
+
scale +
|
|
150
|
+
offsetY;
|
|
151
|
+
|
|
152
|
+
const lng = (x / scale) * 360 - 180;
|
|
153
|
+
const lat =
|
|
154
|
+
(Math.atan(Math.sinh(Math.PI * (1 - (2 * y) / scale))) * 180) / Math.PI;
|
|
155
|
+
|
|
156
|
+
return { lat, lng };
|
|
157
|
+
},
|
|
158
|
+
[map, padding]
|
|
159
|
+
);
|
|
122
160
|
|
|
123
161
|
useImperativeHandle(
|
|
124
162
|
ref,
|
|
@@ -127,10 +165,11 @@ export const MapView = forwardRef<MapViewRef, MapViewProps>(function MapView(
|
|
|
127
165
|
if (!map) return;
|
|
128
166
|
|
|
129
167
|
const { zoom, duration = -1 } = options;
|
|
130
|
-
const
|
|
168
|
+
const targetZoom = zoom ?? map.getZoom() ?? initialZoom;
|
|
169
|
+
const center = offsetCenter(coordinate, targetZoom, undefined, false);
|
|
131
170
|
|
|
132
171
|
if (duration === 0) {
|
|
133
|
-
map.moveCamera({ center, zoom });
|
|
172
|
+
map.moveCamera({ center, zoom: targetZoom });
|
|
134
173
|
} else {
|
|
135
174
|
const currentZoom = map.getZoom();
|
|
136
175
|
const zoomChanged = zoom !== undefined && zoom !== currentZoom;
|
|
@@ -162,14 +201,14 @@ export const MapView = forwardRef<MapViewRef, MapViewProps>(function MapView(
|
|
|
162
201
|
});
|
|
163
202
|
|
|
164
203
|
map.fitBounds(bounds, {
|
|
165
|
-
top: fitPadding?.top ?? 0,
|
|
166
|
-
left: fitPadding?.left ?? 0,
|
|
167
|
-
bottom: fitPadding?.bottom ?? 0,
|
|
168
|
-
right: fitPadding?.right ?? 0,
|
|
204
|
+
top: (padding?.top ?? 0) + (fitPadding?.top ?? 0),
|
|
205
|
+
left: (padding?.left ?? 0) + (fitPadding?.left ?? 0),
|
|
206
|
+
bottom: (padding?.bottom ?? 0) + (fitPadding?.bottom ?? 0),
|
|
207
|
+
right: (padding?.right ?? 0) + (fitPadding?.right ?? 0),
|
|
169
208
|
});
|
|
170
209
|
},
|
|
171
210
|
}),
|
|
172
|
-
[map, initialZoom]
|
|
211
|
+
[map, initialZoom, padding, offsetCenter]
|
|
173
212
|
);
|
|
174
213
|
|
|
175
214
|
useEffect(() => {
|
|
@@ -179,6 +218,38 @@ export const MapView = forwardRef<MapViewRef, MapViewProps>(function MapView(
|
|
|
179
218
|
}
|
|
180
219
|
}, [map, onReady]);
|
|
181
220
|
|
|
221
|
+
useEffect(() => {
|
|
222
|
+
if (!map || !padding) return;
|
|
223
|
+
|
|
224
|
+
const prev = prevPadding.current;
|
|
225
|
+
const paddingChanged =
|
|
226
|
+
prev?.top !== padding.top ||
|
|
227
|
+
prev?.left !== padding.left ||
|
|
228
|
+
prev?.bottom !== padding.bottom ||
|
|
229
|
+
prev?.right !== padding.right;
|
|
230
|
+
|
|
231
|
+
if (paddingChanged) {
|
|
232
|
+
const center = map.getCenter();
|
|
233
|
+
const zoom = map.getZoom() ?? initialZoom;
|
|
234
|
+
if (center) {
|
|
235
|
+
const logicalCenter = offsetCenter(
|
|
236
|
+
{ latitude: center.lat(), longitude: center.lng() },
|
|
237
|
+
zoom,
|
|
238
|
+
prev,
|
|
239
|
+
true
|
|
240
|
+
);
|
|
241
|
+
const newCenter = offsetCenter(
|
|
242
|
+
{ latitude: logicalCenter.lat, longitude: logicalCenter.lng },
|
|
243
|
+
zoom,
|
|
244
|
+
padding,
|
|
245
|
+
false
|
|
246
|
+
);
|
|
247
|
+
map.panTo(newCenter);
|
|
248
|
+
}
|
|
249
|
+
prevPadding.current = padding;
|
|
250
|
+
}
|
|
251
|
+
}, [map, padding, initialZoom, offsetCenter]);
|
|
252
|
+
|
|
182
253
|
const handleDragStart = () => {
|
|
183
254
|
isDragging.current = true;
|
|
184
255
|
wasGesture.current = true;
|
|
@@ -189,10 +260,16 @@ export const MapView = forwardRef<MapViewRef, MapViewProps>(function MapView(
|
|
|
189
260
|
};
|
|
190
261
|
|
|
191
262
|
const handleCameraChanged = (event: MapCameraChangedEvent) => {
|
|
263
|
+
const logicalCenter = offsetCenter(
|
|
264
|
+
{ latitude: event.detail.center.lat, longitude: event.detail.center.lng },
|
|
265
|
+
event.detail.zoom,
|
|
266
|
+
undefined,
|
|
267
|
+
true
|
|
268
|
+
);
|
|
192
269
|
const payload: CameraEventPayload = {
|
|
193
270
|
coordinate: {
|
|
194
|
-
latitude:
|
|
195
|
-
longitude:
|
|
271
|
+
latitude: logicalCenter.lat,
|
|
272
|
+
longitude: logicalCenter.lng,
|
|
196
273
|
},
|
|
197
274
|
zoom: event.detail.zoom,
|
|
198
275
|
gesture: isDragging.current,
|
|
@@ -202,12 +279,19 @@ export const MapView = forwardRef<MapViewRef, MapViewProps>(function MapView(
|
|
|
202
279
|
|
|
203
280
|
const handleIdle = (event: MapEvent) => {
|
|
204
281
|
const center = event.map.getCenter();
|
|
282
|
+
const zoom = event.map.getZoom() ?? 0;
|
|
283
|
+
const logicalCenter = offsetCenter(
|
|
284
|
+
{ latitude: center?.lat() ?? 0, longitude: center?.lng() ?? 0 },
|
|
285
|
+
zoom,
|
|
286
|
+
undefined,
|
|
287
|
+
true
|
|
288
|
+
);
|
|
205
289
|
const payload: CameraEventPayload = {
|
|
206
290
|
coordinate: {
|
|
207
|
-
latitude:
|
|
208
|
-
longitude:
|
|
291
|
+
latitude: logicalCenter.lat,
|
|
292
|
+
longitude: logicalCenter.lng,
|
|
209
293
|
},
|
|
210
|
-
zoom
|
|
294
|
+
zoom,
|
|
211
295
|
gesture: wasGesture.current,
|
|
212
296
|
};
|
|
213
297
|
onCameraIdle?.(createSyntheticEvent(payload));
|
|
@@ -225,37 +309,28 @@ export const MapView = forwardRef<MapViewRef, MapViewProps>(function MapView(
|
|
|
225
309
|
? { lat: initialCoordinate.latitude, lng: initialCoordinate.longitude }
|
|
226
310
|
: undefined;
|
|
227
311
|
|
|
228
|
-
const paddingStyle: ViewStyle = {
|
|
229
|
-
paddingTop: padding?.top ?? 0,
|
|
230
|
-
paddingLeft: padding?.left ?? 0,
|
|
231
|
-
paddingRight: padding?.right ?? 0,
|
|
232
|
-
paddingBottom: padding?.bottom ?? 0,
|
|
233
|
-
};
|
|
234
|
-
|
|
235
312
|
return (
|
|
236
313
|
<MapIdContext.Provider value={id}>
|
|
237
|
-
<View style={style}>
|
|
238
|
-
<
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
</Map>
|
|
258
|
-
</View>
|
|
314
|
+
<View ref={containerRef} style={style}>
|
|
315
|
+
<Map
|
|
316
|
+
id={id}
|
|
317
|
+
mapId={mapId}
|
|
318
|
+
defaultCenter={defaultCenter}
|
|
319
|
+
defaultZoom={initialZoom}
|
|
320
|
+
minZoom={minZoom}
|
|
321
|
+
maxZoom={maxZoom}
|
|
322
|
+
gestureHandling={gestureHandling}
|
|
323
|
+
disableDefaultUI
|
|
324
|
+
isFractionalZoomEnabled
|
|
325
|
+
tilt={pitchEnabled === false ? 0 : undefined}
|
|
326
|
+
onDragstart={handleDragStart}
|
|
327
|
+
onDragend={handleDragEnd}
|
|
328
|
+
onCameraChanged={handleCameraChanged}
|
|
329
|
+
onIdle={handleIdle}
|
|
330
|
+
>
|
|
331
|
+
<UserLocationMarker enabled={userLocationEnabled} />
|
|
332
|
+
{children}
|
|
333
|
+
</Map>
|
|
259
334
|
</View>
|
|
260
335
|
</MapIdContext.Provider>
|
|
261
336
|
);
|