Warren Buckley
03/27/2024, 1:37 PMJacob Overgaard
03/27/2024, 1:41 PMJacob Overgaard
03/27/2024, 1:41 PMJacob Overgaard
03/27/2024, 1:42 PMWarren Buckley
03/27/2024, 5:15 PMJacob Overgaard
03/27/2024, 5:17 PMts
import {html, css, LitElement} from 'lit';
import {customElement, property, query} from 'lit/decorators.js';
@customElement('simple-greeting')
export class SimpleGreeting extends LitElement {
static styles = css`p { color: blue }`;
@property()
value = '';
marker?: any;
async firstUpdated() {
await import('https://maps.googleapis.com/maps/api/js?key=API-KEY&v=beta')
const { Map } = await google.maps.importLibrary("maps") as google.maps.MapsLibrary;
const { AdvancedMarkerElement } = await google.maps.importLibrary("marker") as google.maps.MarkerLibrary;
const map = new Map(this.shadowRoot.getElementById('map') as HTMLElement, {
center: { lat: 37.4239163, lng: -122.0947209 },
zoom: 14,
mapId: '4504f8b37365c3d0',
});
this.marker = new AdvancedMarkerElement({
map,
position: { lat: 37.4239163, lng: -122.0947209 },
gmpDraggable: true
});
this.marker.addListener('dragend', this.dragend.bind(this));
}
dragend() {
console.log('marker', this.marker.position);
this.value = `${this.marker.position.lat},${this.marker.position.lng}`;
}
render() {
return html`
<p>${this.value}</p>
<div style="height:300px; width:100%;" id="map"></div>
`;
}
}
(you have to provide your own api key in the import statement)