Can someone tell me what I'm doing wrong? I want to make lat and lng values dynamic (make them into variables), but can't figure it out. I'm thinking it might be because I don't know how to make global variables. Variables that can be used outside functions. Not sure though.
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Street View side-by-side</title>
        <style>
          html, body {
            height: 100%;
            margin: 0;
            padding: 0;
          }
          #map, #pano {
            float: left;
            height: 400px;
            width: 400px;
          }
        </style>
      </head>
      <body>
        <div id="map"></div>
        <div id="pano"></div>
        <script>
        function initialize() {
        //Function to covert address to Latitude and Longitude
        var getLocation =  function(address) {
          var geocoder = new google.maps.Geocoder();
          geocoder.geocode( { 'address': address}, function(results, status) {
          if (status == google.maps.GeocoderStatus.OK) {
              var latitude = results[0].geometry.location.lat();
              var longitude = results[0].geometry.location.lng();
              console.log("lat: " + latitude + ", lng: " + longitude);
              return "lat: " + latitude + ", lng: " + longitude;
              } 
          }); 
        }
        //Call the function with address as parameter
        var myvar = getLocation('New York');
        //getLocation('New York'); //same as above but without making a variable out of it
        //var myvar = getLocation('Miami'); //test different location and get different lat & lng
        //getLocation('Miami');
        //alert(getLocation); //spits out entire function and not just the "returned" data
        //alert(getLocation('New York')); //undefined
        //alert(myvar); //undefined
            //this line right here is what i need help with:
            var fenway = {lat: 42.345573, lng: -71.098326}; //supposed to look like this, but i need it to be variable style not hard-coded values
            //var fenway = {lat: latitude, lng: longitude}; //doesn't work
            //var fenway = {latitude, longitude}; //doesn't work
            //var fenway = {getLocation}; //doesn't work
            //var fenway = {myvar}; //doesn't work
            var map = new google.maps.Map(document.getElementById('map'), {
              center: fenway,
              zoom: 14
            });
            var panorama = new google.maps.StreetViewPanorama(
                document.getElementById('pano'), {
                  position: fenway,
                  pov: {
                    heading: 34,
                    pitch: 10
                  }
                });
            map.setStreetView(panorama);
          }
        </script>
        <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initialize"></script>
      </body>
    </html>
If you don't have or want to get api key, this works too. It will just give you a warning that you didn't use a key.
<script src="https://maps.googleapis.com/maps/api/js?callback=initialize"></script>
UPDATE:
It's different than other Q&A's because i'm trying to do it with a double map, and one of the maps is street view. both the maps interact with each other. so it doesn't do me any good to get it working with a non street view map by itself or a street view map by itself.
SOLUTION 1 (little street view guy doesn't face correct direction):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Street View side-by-side</title>
<style>
html, body {
    height: 100%;
    margin: 0;
    padding: 0;
}
#map, #pano {
    float: left;
    height: 400px;
    width: 400px;
}
</style>
</head>
<body>
<div id="map"></div>
<div id="pano"></div>
<script src="https://maps.googleapis.com/maps/api/js?libraries=geometry&ext=.js"></script>
<script>
var geocoder;
var map;
function initMap() {
    var geocoder1 = new google.maps.Geocoder();
    setCenter(geocoder1, '666 5th avenue, New York, NY 10019');
}
function setCenter(geocoder, address) {
    geocoder.geocode({
        'address': address
    }, function(results, status) {
        if (status === google.maps.GeocoderStatus.OK) {
            var map = new google.maps.Map(document.getElementById('map'), {
                zoom: 12,
                center: results[0].geometry.location
            });
            var panorama = new google.maps.StreetViewPanorama(
                document.getElementById('pano'), {
                    position: results[0].geometry.location,
                    pov: {
                        heading: 34,
                        pitch: 10
                    }
            });
            map.setStreetView(panorama);
        } else {
            alert('Geocode was not successful for the following reason: ' + status);
            // return null;
        }
    });
}
google.maps.event.addDomListener(window, "load", initMap);
</script>
</body>
</html>
SOLUTION 2 (little street view guy faces correct direction):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Street View side-by-side</title>
<style>
html, body {
    height: 100%;
    margin: 0;
    padding: 0;
}
#map, #pano {
    float: left;
    height: 400px;
    width: 400px;
  }
</style>
</head>
<body>
<div id="map"></div>
<div id="pano"></div>
<script src="https://maps.googleapis.com/maps/api/js?libraries=geometry"></script>
<script>
var sv = new google.maps.StreetViewService();
var geocoder = new google.maps.Geocoder();
var directionsService = new google.maps.DirectionsService();
var panorama;
var address = "666 5th avenue, New York, NY 10019";
var myLatLng;
function initialize() {
    panorama = new google.maps.StreetViewPanorama(document.getElementById("pano"));
    geocoder.geocode({
        'address': address
    }, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            myLatLng = results[0].geometry.location;
            var map = new google.maps.Map(document.getElementById('map'), {
                zoom: 12,
                center: results[0].geometry.location
            });
            // find a Streetview location on the road
            var request = {
                origin: address,
                destination: address,
                travelMode: google.maps.DirectionsTravelMode.DRIVING
            };
            directionsService.route(request, directionsCallback);
            map.setStreetView(panorama);
        } else {
            alert("Geocode was not successful for the following reason: " + status);
        }
    });
}
google.maps.event.addDomListener(window, 'load', initialize);
function processSVData(data, status) {
    if (status == google.maps.StreetViewStatus.OK) {
        panorama.setPano(data.location.pano);
        var heading = google.maps.geometry.spherical.computeHeading(data.location.latLng, myLatLng);
        panorama.setPov({
          heading: heading,
          pitch: 0,
          zoom: 1
        });
        panorama.setVisible(true);
    } else {
        alert("Street View data not found for this location.");
    }
}
function directionsCallback(response, status) {
    if (status == google.maps.DirectionsStatus.OK) {
        var latlng = response.routes[0].legs[0].start_location;
        sv.getPanoramaByLocation(latlng, 50, processSVData);
    } else {
        alert("Directions service not successfull for the following reason:" + status);
    }
}
</script>
</body>
</html>
