Building an Interactive Map with Auto-Location using Google Maps JavaScript API
In the of web development, integrating maps into your applications can offer valuable location-based features. we can create a web page that features an interactive map with automatic user location detection and a search bar using the Google Maps JavaScript API.
Here is an example//Initializing the Google Maps JavaScript API
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script> <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAA2ukvrb1kWQZ2dttsNIMynLJqVCYYrhw&libraries=places&callback=initMap" async defer></script> <script> var map; var markers = []; $(document).ready(function () { initMap(); setupAutocomplete(); }); function initMap() { map = new google.maps.Map(document.getElementById('google-map'), { zoom: 9, center: { lat: 17.441902, lng: 78.394285 } }); } function searchLocation() { var locationInput = document.getElementById('searched_bar').value; var geocoder = new google.maps.Geocoder(); geocoder.geocode({ 'address': locationInput }, function (results, status) { if (status == 'OK' && results[0]) { var location = results[0].geometry.location; // Clear and add markers (assuming you have these functions defined) clearMarkers(); addMarker(location, locationInput); map.setCenter(location); map.setZoom(15); } else { console.error('Error geocoding address:', status); // Provide user-friendly error feedback on the webpage alert('Error finding location. Please try again.'); } }); } function setupAutocomplete() { var input = document.getElementById('searched_bar'); var searchBox = new google.maps.places.SearchBox(input); map.addListener('bounds_changed', function () { searchBox.setBounds(map.getBounds()); }); searchBox.addListener('places_changed', function () { var places = searchBox.getPlaces(); if (places.length === 0) { return; } places.forEach(function (place) { if (!place.geometry) { console.log('Returned place contains no geometry'); return; } }); }); } function addMarker(location, name) { var latLng = location.split(","); var lat = parseFloat(latLng[0]); var lng = parseFloat(latLng[1]); var marker = new google.maps.Marker({ position: { lat: lat, lng: lng }, map: map, title: name }); markers.push(marker); } function clearMarkers() { for (var i = 0; i < markers.length; i++) { markers[i].setMap(null); } markers = []; }