function initialize() {
var map = new google.maps.Map(
document.getElementById("map_canvas"), {
center: new google.maps.LatLng(37.4419, -122.1419),
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow();
var NeimanMarcus = new google.maps.LatLng(32.768863635112375, -117.16740846633911);
var Nordstrom = new google.maps.LatLng(32.76856592648975, -117.1685242652893);
service = new google.maps.places.PlacesService(map);
findNearestPlace(Nordstrom, service, map, infowindow);
findNearestPlace(NeimanMarcus, service, map, infowindow);
}
google.maps.event.addDomListener(window, "load", initialize);
function findNearestPlace(searchLoc, service, map, infowindow) {
var request = {
location: searchLoc,
radius: '50'
};
service.nearbySearch(request, function callback(results, status) {
if (status === google.maps.places.PlacesServiceStatus.OK) {
var bounds = new google.maps.LatLngBounds();
var minDistance = Number.MAX_VALUE;
var closestMarker = null;
for (var i = 0; i < results.length; i++) {
var marker = createMarker(results[i], map, infowindow);
var distance = google.maps.geometry.spherical.computeDistanceBetween(searchLoc, marker.getPosition());
if (distance < minDistance) {
minDistance = distance;
closestMarker = marker;
}
}
closestMarker.setMap(map);
map.setCenter(closestMarker.getPosition());
}
});
}
function createMarker(place, map, infowindow) {
var placeLoc = place.geometry.location;
var marker = new google.maps.Marker({
position: place.geometry.location
});
google.maps.event.addListener(marker, 'click', function() {
map.setCenter(marker.getPosition());
map.setZoom(19);
infowindow.setContent(place.name);
infowindow.open(map, this);
});
return marker;
}
html,
body,
#map_canvas {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js?libraries=geometry,places"></script>
<div id="map_canvas"></div>