/
home
/
obinna
/
html
/
cravings
/
public
/
js
/
Upload File
HOME
function initMap(places, element, localAddress) { if(places.length){ var latitude = places[Math.floor(places.length / 2)]['coords'][1]; var longitude = places[Math.floor(places.length / 2)]['coords'][0]; }else { var [longitude, latitude] = [6.524379,3.379206]; } var options = { zoom: 15, center: { lat: parseFloat(latitude), lng: parseFloat(longitude) } } try { var map = new google.maps.Map(element, options) var infoWindow = new google.maps.InfoWindow() } catch (error) { console.log(error) } var markers = []; function createMarker(latlng, name, address, slug, green) { if (address) { var adds = address.split(" ").join("+"); var html = `<a style="font-size: 16px;" href='https://www.google.com/maps/search/${adds}'><span style="color: #34A853;">Open on Google Maps</span></a> <br/>${address}`; try { let markerObj = { map: map, position: latlng } if(green) markerObj['icon'] = '/images/Markers/green_MarkerA.png'; var marker = new google.maps.Marker(markerObj); google.maps.event.addListener(marker, 'click', function() { infoWindow.setContent(html); infoWindow.open(map, marker); }); // markers.push(marker); } catch (error) { console.log(error) } } } for (var i = 0; i < places.length; i++) { var {name, address, distance, slug, coords} = places[i] if(location){ var obg = { lat: parseFloat(coords[1]), lng: parseFloat(coords[0]) } createMarker(obg, name, address, slug) } } if(localAddress){ var obg = { lat: parseFloat(localAddress[1]), lng: parseFloat(localAddress[0]) } createMarker(obg, name, localAddress[2], slug, 'green') } } async function startMap() { const loader = document.getElementById('loading'); // loader.style.display = 'flex'; var prom = new Promise(function(resolve, reject){ navigator.geolocation.getCurrentPosition(async function(position){ if(position){ var {longitude, latitude} = position.coords; var add_link = `https://maps.googleapis.com/maps/api/geocode/json?latlng=${latitude},${longitude}&key=${api_key}` var address = await fetch(add_link).then(response => response.json()); const locate = {longitude, latitude, address: address.results[0].formatted_address} localStorage.setItem('location', JSON.stringify(locate)) // loader.style.display = 'none'; resolve(locate); }else { // loader.style.display = 'none'; reject("Error occured") } }) }) return prom; } try { var ne = new google.maps.LatLng(parseFloat(6.944694), parseFloat(5.158188)); var sw = new google.maps.LatLng(parseFloat(6.371805), parseFloat(2.712062)); var bounds = new google.maps.LatLngBounds(sw, ne); } catch (err) { console.log(err.message) } /** * Address autocomplete powered by google maps * @param {HTMLElement} input input element to apply autocomplete on */ function autocomplete(input) { return new Promise((resolve, reject) => { if (!input) reject("No Input"); try { const dropdown = new google.maps.places.Autocomplete(input, { bounds: bounds, 'strictBounds': true }) // console.log({dropdown}) dropdown.addListener('place_changed', () => { const place = dropdown.getPlace(); // console.log(place); if (place.geometry) { var longitude = place.geometry.location.lng() var latitude = place.geometry.location.lat() const locate = {longitude, latitude, address: place.formatted_address} localStorage.setItem('location', JSON.stringify(locate)) resolve(locate) }else{ reject("Error Occured") } }) } catch (err) { console.log(err.message) } }) }