I think I figured it out, it was just a little dumb mistake. I added console.log statements to the code to see what was running and all the functions were being called as if the map was being created, and I realized I'd forgotten to paste in the CSS with the dimensions of the map div, so I guess the map was there, just with a size of 0 x 0. I've got it working now.