-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPlannerMap.tsx
More file actions
80 lines (72 loc) · 2.28 KB
/
Copy pathPlannerMap.tsx
File metadata and controls
80 lines (72 loc) · 2.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import React, { useState } from 'react';
import { GoogleMap, Marker, InfoWindow } from '@react-google-maps/api';
import { useAppContext } from '@/context/appContext';
interface Props {
routesData?: any;
lat?: string;
lng?: string;
bookingData?: any;
dataSourceSelectedPlan?: any
dataSourceRiders?: any
}
function GoogleMapPlanner({ lat, lng }: Props) {
const { tenantCoord } = useAppContext();
const [selectedMarker, setSelectedMarker] = useState<any>(null);
const center = {
lat: tenantCoord && !isNaN(tenantCoord[1]) ? tenantCoord[1] : 0,
lng: tenantCoord && !isNaN(tenantCoord[0]) ? tenantCoord[0] : 0
};
const containerStyle = {
width: '100%',
height: '100%',
opacity: tenantCoord.length > 0 ? '100' : '0'
};
const defaultIcon = typeof google !== 'undefined' ? {
path: google.maps.SymbolPath.CIRCLE,
fillColor: '#000000',
fillOpacity: 1,
strokeColor: '#000000',
strokeWeight: 1,
scale: 10
} : undefined;
const zIndexMap = {
bookingData: 1,
dataSourceSelectedPlan: 2,
routesData: 3
};
return (
<GoogleMap
mapContainerStyle={containerStyle}
center={center}
zoom={11}
options={{
mapTypeId: 'roadmap',
streetViewControl: false,
mapTypeControl: false,
}}
>
{lat && lng && (
<Marker
key='marker'
position={{ lat: parseFloat(lat), lng: parseFloat(lng) }
}
title='Default Marker'
icon={defaultIcon}
options={{ zIndex: zIndexMap.bookingData }}
/>
)}
{selectedMarker && (
<InfoWindow
position={{ lat: selectedMarker.lat, lng: selectedMarker.lng }}
onCloseClick={() => setSelectedMarker(null)
}
>
<div style={{ fontSize: '1.2em' }}>
<p>{selectedMarker.info} </p>
</div>
</InfoWindow>
)}
</GoogleMap>
);
}
export default React.memo(GoogleMapPlanner);