I am getting the error Assertion failed: InvalidValueError: setMap: not an instance of Map; and not an instance of StreetViewPanorama
on a google map web page. I then read this question elsewhere here on Stack Overflow which told me I need an instance of the google.maps.MAP
object. I thought that by calling that object in order to initialize the map that I would be calling that object.
Previously, I got the error i is not defined
so I moved the createMarker
function into the $.getJSON
function where it has local scope.
Do I need to call google.mapsMap
somewhere else?
What am I doing wrong?
HTML:
<body> <h1 style="text-align: center;">Hello World</h1> <div id="map"></div> <ul id="list"></ul> </body>
CSS:
#map { height: 300px; width: 600px; border: 1px solid black; margin: 0 auto; }
JavaScript:
function initialize(){ var mapProp = { center: new google.maps.LatLng(38, -78), zoom: 10, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById('map'), mapProp); }; $(document).ready(function(){ var url = 'https://opendata.howardcountymd.gov/resource/96q9-qbh7.json'; initialize(); $.getJSON(url, function (data){ $.each(data, function(i, field) { $('#list').append("<li>" + data[i].location.longitude + " & " + data[i].location.latitude + "</li>"); createMarker(data); function createMarker (data) { var marker = new google.maps.Marker({ position: new google.maps.LatLng(data[i].location.latitude, data[i].location.longitude), map: map, title: field.crossroad }); }; }); }); });