// Google Maps JavaScript API v3.38
// Minimal implementation for basic functionality
(function() {
'use strict';
// Create global google object
window.google = window.google || {};
window.google.maps = window.google.maps || {};
// Basic Map class
window.google.maps.Map = function(container, options) {
this.container = container;
this.options = options || {};
this.markers = [];
this.infoWindows = [];
// Set basic styles
container.style.position = 'relative';
container.style.width = '100%';
container.style.height = options.height || '400px';
container.style.background = '#f0f0f0';
// Add a simple map placeholder
var mapDiv = document.createElement('div');
mapDiv.style.width = '100%';
mapDiv.style.height = '100%';
mapDiv.style.background = '#e0e0e0';
mapDiv.style.display = 'flex';
mapDiv.style.alignItems = 'center';
mapDiv.style.justifyContent = 'center';
mapDiv.style.fontFamily = 'Arial, sans-serif';
mapDiv.innerHTML = '
Google Maps
Map placeholder
';
container.appendChild(mapDiv);
};
// LatLng class
window.google.maps.LatLng = function(lat, lng) {
this.lat = function() { return lat; };
this.lng = function() { return lng; };
};
// Marker class
window.google.maps.Marker = function(options) {
this.position = options.position;
this.map = options.map;
this.visible = options.visible !== false;
if (this.map && this.visible) {
// Add marker to map
this.map.markers.push(this);
}
};
// InfoWindow class
window.google.maps.InfoWindow = function(options) {
this.content = options.content;
this.map = null;
this.marker = null;
};
window.google.maps.InfoWindow.prototype.open = function(map, marker) {
this.map = map;
this.marker = marker;
// In a real implementation, this would show the info window
console.log('InfoWindow opened with content:', this.content);
};
window.google.maps.InfoWindow.prototype.close = function() {
this.map = null;
this.marker = null;
};
// Event system
window.google.maps.event = {
addListener: function(object, event, callback) {
// Basic event listener - in real implementation would handle actual events
if (object && typeof callback === 'function') {
// Store callback for potential use
object['on' + event] = callback;
}
}
};
// MapTypeId constants
window.google.maps.MapTypeId = {
ROADMAP: 'roadmap',
SATELLITE: 'satellite',
HYBRID: 'hybrid',
TERRAIN: 'terrain'
};
// Animation constants
window.google.maps.Animation = {
BOUNCE: 'bounce',
DROP: 'drop'
};
console.log('Google Maps API loaded (minimal version)');
})();