Skip to content

Commit 0c34e97

Browse files
committed
feat: adjust existing map3d example to use new component
1 parent edd2417 commit 0c34e97

File tree

11 files changed

+34
-330
lines changed

11 files changed

+34
-330
lines changed

examples/map-3d/src/app.tsx

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,28 @@
11
import React, {useCallback, useState} from 'react';
22
import {createRoot} from 'react-dom/client';
33

4-
import {APIProvider, MapMouseEvent} from '@vis.gl/react-google-maps';
4+
import {
5+
APIProvider,
6+
Map3D,
7+
Map3DCameraChangedEvent,
8+
MapMouseEvent
9+
} from '@vis.gl/react-google-maps';
510
import ControlPanel from './control-panel';
611
import {MiniMap} from './minimap';
712

8-
import {Map3D, Map3DCameraProps} from './map-3d';
9-
1013
import './style.css';
1114

12-
const API_KEY =
13-
globalThis.GOOGLE_MAPS_API_KEY ?? (process.env.GOOGLE_MAPS_API_KEY as string);
15+
const API_KEY = 'AIzaSyDawI6PNc2EjUnzHhADtph4YWTj2PL-X6A';
16+
17+
export type Map3DCameraProps = {
18+
center: google.maps.LatLngAltitudeLiteral;
19+
range: number;
20+
heading: number;
21+
tilt: number;
22+
roll: number;
23+
};
1424

15-
const INITIAL_VIEW_PROPS = {
25+
const INITIAL_VIEW_PROPS: Map3DCameraProps = {
1626
center: {lat: 37.72809, lng: -119.64473, altitude: 1300},
1727
range: 5000,
1828
heading: 61,
@@ -23,8 +33,8 @@ const INITIAL_VIEW_PROPS = {
2333
const Map3DExample = () => {
2434
const [viewProps, setViewProps] = useState(INITIAL_VIEW_PROPS);
2535

26-
const handleCameraChange = useCallback((props: Map3DCameraProps) => {
27-
setViewProps(oldProps => ({...oldProps, ...props}));
36+
const handleCameraChange = useCallback((ev: Map3DCameraChangedEvent) => {
37+
setViewProps(oldProps => ({...oldProps, ...ev.detail}));
2838
}, []);
2939

3040
const handleMapClick = useCallback((ev: MapMouseEvent) => {
@@ -38,18 +48,20 @@ const Map3DExample = () => {
3848
<>
3949
<Map3D
4050
{...viewProps}
41-
onCameraChange={handleCameraChange}
51+
onCameraChanged={handleCameraChange}
4252
defaultLabelsDisabled
53+
mode="SATELLITE"
54+
style={{width: '100vw', height: '100vh'}}
4355
/>
4456

45-
<MiniMap camera3dProps={viewProps} onMapClick={handleMapClick}></MiniMap>
57+
<MiniMap camera3dProps={viewProps} onMapClick={handleMapClick} />
4658
</>
4759
);
4860
};
4961

5062
const App = () => {
5163
return (
52-
<APIProvider apiKey={API_KEY} version={'alpha'}>
64+
<APIProvider apiKey={API_KEY}>
5365
<Map3DExample />
5466
<ControlPanel />
5567
</APIProvider>

examples/map-3d/src/control-panel.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ function ControlPanel() {
88
<div className="control-panel">
99
<h3>3D Maps</h3>
1010
<p>
11-
This example implements a new <code>Map3D</code> component that renders
12-
a 3D Globe based on the new{' '}
11+
This example showcases the <code>Map3D</code> component that renders a
12+
3D globe based on the{' '}
1313
<a href={GMP_3D_MAPS_OVERVIEW_URL} target={'_blank'} rel="noreferrer">
1414
<code>Map3DElement</code>
1515
</a>{' '}

examples/map-3d/src/map-3d/index.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

examples/map-3d/src/map-3d/map-3d.tsx

Lines changed: 0 additions & 76 deletions
This file was deleted.

examples/map-3d/src/map-3d/use-map-3d-camera-events.ts

Lines changed: 0 additions & 80 deletions
This file was deleted.

examples/map-3d/src/minimap/minimap.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {estimateCameraPosition} from './estimate-camera-position';
66
import {CameraPositionMarker} from './camera-position-marker';
77
import {ViewCenterMarker} from './view-center-marker';
88

9-
import type {Map3DCameraProps} from '../map-3d';
9+
import type {Map3DCameraProps} from '../app';
1010

1111
type MiniMapProps = {
1212
camera3dProps: Map3DCameraProps;

src/components/__tests__/map-3d.test.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ describe('Map3D', () => {
5252
render(
5353
<APIProviderContext.Provider value={createMockContextValue()}>
5454
<Map3D
55+
mode="SATELLITE"
5556
center={{lat: 37.7749, lng: -122.4194, altitude: 0}}
5657
range={1000}
5758
/>
@@ -66,6 +67,7 @@ describe('Map3D', () => {
6667
<APIProviderContext.Provider value={createMockContextValue()}>
6768
<Map3D
6869
id="my-map"
70+
mode="SATELLITE"
6971
center={{lat: 37.7749, lng: -122.4194, altitude: 0}}
7072
range={1000}
7173
/>
@@ -80,6 +82,7 @@ describe('Map3D', () => {
8082
<APIProviderContext.Provider value={createMockContextValue()}>
8183
<Map3D
8284
className="custom-class"
85+
mode="SATELLITE"
8386
center={{lat: 37.7749, lng: -122.4194, altitude: 0}}
8487
range={1000}
8588
/>
@@ -94,6 +97,7 @@ describe('Map3D', () => {
9497
<APIProviderContext.Provider value={createMockContextValue()}>
9598
<Map3D
9699
style={{border: '1px solid red'}}
100+
mode="SATELLITE"
97101
center={{lat: 37.7749, lng: -122.4194, altitude: 0}}
98102
range={1000}
99103
/>
@@ -109,6 +113,7 @@ describe('Map3D', () => {
109113
render(
110114
<APIProviderContext.Provider value={createMockContextValue()}>
111115
<Map3D
116+
mode="SATELLITE"
112117
center={{lat: 37.7749, lng: -122.4194, altitude: 0}}
113118
range={1000}>
114119
<div data-testid="child-element">Child content</div>

src/components/map-3d/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ export type Map3DProps = PropsWithChildren<
132132
* Specifies a mode the map should be rendered in.
133133
* Import MapMode from '@vis.gl/react-google-maps' to use this.
134134
*/
135-
mode?: MapMode;
135+
mode: MapMode;
136136

137137
/**
138138
* Specifies how gesture events should be handled on the map.

src/components/map-3d/use-map-3d-options.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export function useMap3DOptions(
4343
)
4444
)
4545
continue;
46-
const value = (props as Record<string, unknown>)[key];
46+
const value = (props as unknown as Record<string, unknown>)[key];
4747

4848
if (value === undefined) continue;
4949

tsconfig.test.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"extends": "./tsconfig.json",
3-
"include": ["./src/**/*"],
3+
"include": ["./src/**/*", "./types/**/*"],
44
"exclude": ["./examples/**/*"],
55
"compilerOptions": {
66
"noEmit": false

0 commit comments

Comments
 (0)