I looked up google.maps.Map() and the Google reference says that the first parameter should be a mapDiv:Node which is the container for the map and is typically a div element.
You are passing $(this) which is likely a jQuery object which is not what Google maps is expecting. I don't know the rest of your code, but perhaps you should just be passing this instead of $(this).
If you're using jQuery, you need to pass the vanilla HTMLElement (e.g. Node) instead of the jQuery selection (e.g. Array/NodeList) which the $() query returns.
if you add a console command:
console.log(self);
it will return something like:
[ ▶ <div id="map_canvas"></div> ]
to get the value from the jQuery array, replace:
map = new google.maps.Map(self, mapOptions)
with:
map = new google.maps.Map(self[0], mapOptions)
I encountered this error when trying to initiate the map with something like this:
map = new google.maps.Map($('#map-canvas'), mapOptions);
I was able to solve it by selecting the first (and only) item that the selector returns by adding [0] after the selector:
map = new google.maps.Map($('#map-canvas')[0], mapOptions);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With