Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions samples/place-class/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@

<link rel="stylesheet" type="text/css" href="./style.css" />
<script type="module" src="./index.js"></script>
</head>
<body>
<div id="map"></div>

<!-- prettier-ignore -->
<script>(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})
({key: "AIzaSyA6myHzS10YXdcazAFalmXvDkrYCp5cLc8", v: "weekly"});</script>
</head>
<body>
<gmp-map center="32.7360353,-117.1509849" zoom="14" map-id="DEMO_MAP_ID"><!-- Map id is required for Advanced Markers. -->
</gmp-map>
</body>
</html>
<!-- [END maps_place_class] -->
53 changes: 33 additions & 20 deletions samples/place-class/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,15 @@
*/

// [START maps_place_class]
let map: google.maps.Map;
let centerCoordinates = { lat: 37.4161493, lng: -122.0812166 };
const mapElement = document.querySelector('gmp-map') as google.maps.MapElement;
let innerMap;
let infoWindow;

async function initMap() {
const { Map } = await google.maps.importLibrary("maps") as google.maps.MapsLibrary;

map = new Map(document.getElementById('map') as HTMLElement, {
center: centerCoordinates,
zoom: 14,
// [START_EXCLUDE]
mapId: '4504f8b37365c3d0',
// [END_EXCLUDE]
});
const { Map, InfoWindow } = await google.maps.importLibrary("maps") as google.maps.MapsLibrary;

innerMap = mapElement.innerMap;
infoWindow = new InfoWindow();
getPlaceDetails();
}

Expand All @@ -28,25 +23,43 @@ async function getPlaceDetails() {
const { AdvancedMarkerElement } = await google.maps.importLibrary("marker") as google.maps.MarkerLibrary;
// Use place ID to create a new Place instance.
const place = new Place({
id: 'ChIJN5Nz71W3j4ARhx5bwpTQEGg',
requestedLanguage: 'en', // optional
id: 'ChIJyYB_SZVU2YARR-I1Jjf08F0', // San Diego Zoo
});

// Call fetchFields, passing the desired data fields.
await place.fetchFields({ fields: ['displayName', 'formattedAddress', 'location'] });

// Log the result
console.log(place.displayName);
console.log(place.formattedAddress);
await place.fetchFields({ fields: ['displayName', 'formattedAddress', 'location', 'googleMapsURI'] });

// Add an Advanced Marker
const marker = new AdvancedMarkerElement({
map,
map: innerMap,
position: place.location,
title: place.displayName,
});

// Assemble the info window content.
const content = document.createElement('div');
const address = document.createElement('div');
const placeId = document.createElement('div');
address.textContent = place.formattedAddress || '';
placeId.textContent = place.id;
content.append(placeId, address);

if (place.googleMapsURI) {
const link = document.createElement('a');
link.href = place.googleMapsURI;
link.target = '_blank';
link.textContent = 'View Details on Google Maps';
content.appendChild(link);
}

// Display an info window.
infoWindow.setHeaderContent(place.displayName);
infoWindow.setContent(content);
infoWindow.open({
anchor: marker,
});
}
// [END maps_place_class_fetchfields]

initMap();
// [END maps_place_class]
// [END maps_place_class]