recorder/docroot/utils/map_google.js
2022-04-17 19:22:33 +02:00

58 lines
1.3 KiB
JavaScript

/**
* @file
* Contains common functions used specifically with Google Maps.
*/
import { debug } from "./debug.js";
/*
* The default style for a marker.
*/
export const markerStyle = {
path: 0, /* google.maps.SymbolPath.CIRCLE */
fillColor: 'red',
fillOpacity: 0.9,
scale: 5.5,
strokeColor: 'white',
strokeWeight: 2,
};
/*
* The default style for a track.
*/
export const strokeStyle = {
strokeColor: 'red',
strokeWeight: 4,
};
/*
* Closes all the infowindows in the 'markers' object, and then opens the
* infowindow in the specified marker.
*/
export function openSingularMarker(map, markers, markerToOpen) {
for (const marker of Object.values(markers)) {
marker.infowindow.close();
}
markerToOpen.infowindow.open(map, markerToOpen);
}
/*
* Fits the viewport bounds to show all map markers.
*/
export function fitBounds(map, markers) {
const bounds = new google.maps.LatLngBounds();
for (const marker of Object.values(markers)) {
bounds.extend(marker.getPosition());
}
map.setCenter(bounds.getCenter()); /* Center to geometric center of all markers */
map.fitBounds(bounds);
}
/*
* Logs a map update.
*/
export function clog(upd, id, s) {
debug(`${ upd } ${ Math.round(new Date().getTime() / 1000) }: ${ id || 'unknown' }`, s);
}