|
1 | 1 | # MarkerClusterer example |
2 | 2 |
|
3 | 3 | ```jsx |
4 | | -const { GoogleMap, LoadScript, MarkerClusterer, Marker } = require("../../"); |
5 | | -const ScriptLoaded = require("../../docs/ScriptLoaded").default; |
| 4 | +const { GoogleMap, LoadScript, MarkerClusterer, Marker } = require('../../') |
| 5 | +const ScriptLoaded = require('../../docs/ScriptLoaded').default |
6 | 6 |
|
7 | 7 | const mapContainerStyle = { |
8 | | - height: "400px", |
9 | | - width: "800px" |
10 | | -}; |
| 8 | + height: '400px', |
| 9 | + width: '800px', |
| 10 | +} |
11 | 11 |
|
12 | | -const center = { lat: -28.024, lng: 140.887 }; |
| 12 | +const center = { lat: -28.024, lng: 140.887 } |
13 | 13 |
|
14 | 14 | const locations = [ |
15 | | - {lat: -31.563910, lng: 147.154312}, |
16 | | - {lat: -33.718234, lng: 150.363181}, |
17 | | - {lat: -33.727111, lng: 150.371124}, |
18 | | - {lat: -33.848588, lng: 151.209834}, |
19 | | - {lat: -33.851702, lng: 151.216968}, |
20 | | - {lat: -34.671264, lng: 150.863657}, |
21 | | - {lat: -35.304724, lng: 148.662905}, |
22 | | - {lat: -36.817685, lng: 175.699196}, |
23 | | - {lat: -36.828611, lng: 175.790222}, |
24 | | - {lat: -37.750000, lng: 145.116667}, |
25 | | - {lat: -37.759859, lng: 145.128708}, |
26 | | - {lat: -37.765015, lng: 145.133858}, |
27 | | - {lat: -37.770104, lng: 145.143299}, |
28 | | - {lat: -37.773700, lng: 145.145187}, |
29 | | - {lat: -37.774785, lng: 145.137978}, |
30 | | - {lat: -37.819616, lng: 144.968119}, |
31 | | - {lat: -38.330766, lng: 144.695692}, |
32 | | - {lat: -39.927193, lng: 175.053218}, |
33 | | - {lat: -41.330162, lng: 174.865694}, |
34 | | - {lat: -42.734358, lng: 147.439506}, |
35 | | - {lat: -42.734358, lng: 147.501315}, |
36 | | - {lat: -42.735258, lng: 147.438000}, |
37 | | - {lat: -43.999792, lng: 170.463352} |
38 | | -]; |
| 15 | + { lat: -31.56391, lng: 147.154312 }, |
| 16 | + { lat: -33.718234, lng: 150.363181 }, |
| 17 | + { lat: -33.727111, lng: 150.371124 }, |
| 18 | + { lat: -33.848588, lng: 151.209834 }, |
| 19 | + { lat: -33.851702, lng: 151.216968 }, |
| 20 | + { lat: -34.671264, lng: 150.863657 }, |
| 21 | + { lat: -35.304724, lng: 148.662905 }, |
| 22 | + { lat: -36.817685, lng: 175.699196 }, |
| 23 | + { lat: -36.828611, lng: 175.790222 }, |
| 24 | + { lat: -37.75, lng: 145.116667 }, |
| 25 | + { lat: -37.759859, lng: 145.128708 }, |
| 26 | + { lat: -37.765015, lng: 145.133858 }, |
| 27 | + { lat: -37.770104, lng: 145.143299 }, |
| 28 | + { lat: -37.7737, lng: 145.145187 }, |
| 29 | + { lat: -37.774785, lng: 145.137978 }, |
| 30 | + { lat: -37.819616, lng: 144.968119 }, |
| 31 | + { lat: -38.330766, lng: 144.695692 }, |
| 32 | + { lat: -39.927193, lng: 175.053218 }, |
| 33 | + { lat: -41.330162, lng: 174.865694 }, |
| 34 | + { lat: -42.734358, lng: 147.439506 }, |
| 35 | + { lat: -42.734358, lng: 147.501315 }, |
| 36 | + { lat: -42.735258, lng: 147.438 }, |
| 37 | + { lat: -43.999792, lng: 170.463352 }, |
| 38 | +] |
39 | 39 |
|
40 | | -const options = { |
41 | | - imagePath:"https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m" |
42 | | -}; |
| 40 | +const options = { |
| 41 | + imagePath: |
| 42 | + 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m', |
| 43 | +} |
43 | 44 |
|
44 | | -<ScriptLoaded> |
45 | | - <GoogleMap |
46 | | - id="marker-example" |
47 | | - mapContainerStyle={mapContainerStyle} |
48 | | - zoom={3} |
49 | | - center={center} |
50 | | - > |
51 | | - <MarkerClusterer |
52 | | - options={options} |
53 | | - > |
54 | | - { |
55 | | - (clusterer) => locations.map((location, i) => ( |
56 | | - <Marker |
57 | | - key={i} |
58 | | - position={location} |
59 | | - clusterer={clusterer} |
60 | | - /> |
| 45 | +function createKey(location: { lat: number, lng: number }): React.ReactText { |
| 46 | + return location.lat + location.lng |
| 47 | +} |
| 48 | + |
| 49 | +;<ScriptLoaded> |
| 50 | + <GoogleMap id='marker-example' mapContainerStyle={mapContainerStyle} zoom={3} center={center}> |
| 51 | + <MarkerClusterer options={options}> |
| 52 | + {clusterer => |
| 53 | + locations.map(location => ( |
| 54 | + <Marker key={createKey(location)} position={location} clusterer={clusterer} /> |
61 | 55 | )) |
62 | 56 | } |
63 | 57 | </MarkerClusterer> |
|
0 commit comments