EPISODE 1745 [INTRO] [0:00:00] ANNOUNCER: Google's Maps JavaScript API is a fundamental web technology that's used to build dynamic and interactive map features and web apps. Matt Toon is a solutions engineering manager for the Google Maps platform. He joins the podcast with Josh Goldberg to talk about his background working with geospatial data, the development of Google Maps, bringing 3D maps to the JavaScript API and much more. This episode is hosted by Josh Goldberg, an independent, full-time open-source developer. Josh works on projects in the TypeScript ecosystem, most notably TypeScript ESLint, the tooling that enables ESLint and Prettier to run on TypeScript code. Josh is also the author of the O'Reilly Learning TypeScript book, a Microsoft MVP for developer technologies and a live code streamer on Twitch. Find Josh on Bluesky, Mastodon, Twitter, Twitch, YouTube and dot com as Joshua K. Goldberg. [EPISODE] [0:01:08] JG: With me today is Matt Toon. Matt, welcome to Software Engineering Daily. How's it going? [0:01:12] MT: Very well. Thank you very much. Thank you for having me. [0:01:15] JG: Oh, it's our pleasure. Matt, you have had quite the career. Could you please tell us how it got started? [0:01:21] MT: Oh, I think it was a long time ago. I've been working in maps and location for quite a few years now. I think I've always had a love of maps and a love of where things are and how things relate together. So, at some time in the past, I managed to convert that, not only into a degree in what I was doing, but a way of taking that into business and finding useful ways of integrating that into code. As time has gone on, it seems to become more and more popular, which has been very good for me. [0:01:58] JG: How did you first get into coding? [0:02:00] MT: At university. Again, if we look back where I came from, I started working with maps and location, and satellite images very early on with technology. Some of the earliest stuff I ever did was like in C to process imagery from big tapes that you might have had and reading data of that so you could display them on computers, PCs, Unix machines. In order to do that, you had to learn how to code. So, I'm sort of like, it's a functional thing of how I've learned. You've learned it on the job, mainly, rather than formal training to certain extent. [0:02:41] JG: How did you come to be a developer or leader at Google? [0:02:45] MT: I think that's came from having a past in geospatial data and geospatial analysis. When Google, many years ago, came out with mapping platforms, about 19 years ago now, it was a revolution in both the industry I was working with and in the wider industry, and I really wanted to be at the forefront of, sort of like engaging with the wider developer community and the wider set of users, and more smaller users or bigger users of the services than just sort of like big corporations that were doing it in price. So, at some point, I went to look for a role at Google and grew my career from there. Mainly working in either customer or developer-focused roles. [0:03:38] JG: What was it that Google was first doing with maps that was so revolutionary for the industry? [0:03:43] MT: Making it available to everybody. That was it. And making it available at scale to everybody. I think that's the key thing that Google was able to do back in the mid-noughties of this, is basically take the wide and large amounts of data sets and give access to everybody through a few lines of code. That sort of magic has continued all the way along up until now, and as more and more data sets and more and more data has become able to be put into the browser in an easy way or on mobile devices in an easy way. We've seen an explosion of different types of applications that have been enabled through that. [0:04:25] JG: Yes. A lot of folks these days might not have context that back in the day, it was shocking and new and exciting that you might be able to in your phone or browser, be able to see interactive maps, pinch and scroll and zoom and all that. Back in the day, that was not done on the web. [0:04:40] MT: It was done in small areas with very complicated technology that was often quite expensive or quite complicated to implement. The magic behind Google at the time was just making it available in a browser, in a very compelling format, in a very easy to use way for a wide area. It started in sort of like the US and the UK, and often when I do presentations, there's a great map that you can show of the first areas that Google supported. But it rapidly increased to, up until now, where we cover with imagery and data like almost 99% of the territories and countries of the world. So, if you want to create a map, you want to develop something that hits all of your users. It's easy to do that now. Back in the day, either you had to find load, process the data yourself, run the technology, scale it out, yourself, everything like that. And there are always times when that is useful to do, but for most people, it was beyond their means. [0:05:51] JG: You might be one of the best-equipped people on the planet to answer the question of, what is that large step, or that large process, from the data exists to, you can use in your browser that folks have to do. [0:06:02] MT: Yes. So, it's taking the data and processing it in a usable way that can be accessed at scale. I think that's amazing. Then getting the right information that is useful and merging the different data sets together so that they relate to what the user needs to do. When I was doing this in previous organizations, there would be very complicated software packages, complicated methods of processing the data, tiling the data, you know, because you wouldn't want to serve at scale data out of a database at that time because it was quite a complicated lookup procedure, a complicated way of indexing databases, indexing geospatial data. It all took a long time. Google at the time, and the subsequent release of APIs like Google Maps platform took that sort of area away and made it easy for you. Now, you still might want to show where your users are, or show the locations or regions in different colors, because that's useful to your application itself. So, there is always a certain amount of processing you might want to do, you can now do that in things like BigQuery GIS in Google Cloud, which allows you to upload and manage geospatial data. But for most people, and if you just want to tinker around the edges of these sort of things, or you want to get access to rich data sets, such as street view, that's still very complicated and very hard to do. To do that with the modern tooling that we have and modern application development, it requires an army to bring that together. But it's easier now that in all sorts of areas than it was when I was first doing this and that's a great thing, because the variety of applications and a variety of solutions, varieties from games to tracking applications to all sorts of things like booking a holiday, or looking at an area to see if you want to buy a house, are all enabled by the fact that these data sets are now available, overlaid with an organization or your own data. It could be as simple as arranging meetups or anything like that and getting people together and this sort of technology. It's still, when I think about it, when you see the amazements of seeing what you might see as the blue dot on the map, which is effectively your location, and then relating that location to the underlying data, be that just where I am or who I'm going to meet, or looking around with a consumer application. One of the things that something like Google Maps platform, which is the area where I work, does, is it brings the best of Google consumer technology so anybody can use it. So, back in the day, you may have seen something in its first instance on a Google Maps product or on a Google mobile product, and then that comes into the SDKs or APIs. So, any application can be built around that. [0:09:25] JG: You bring up a lot of good points. Before we get into the Google Maps platform and 3D maps that are photorealistic with it, I want to touch on a few of them. You mentioned tiling. Can you dive in a little bit more? What is tiling in this context? [0:09:39] MT: Oh, so when you have different scales of maps, from the whole globe all the way down to a street-level view. When you were first building maps before things the ability to serve out things like vectors into a browser, you would have to create tiles of the maps. So, if you imagine back when you first used Google Maps, or when you first used a map on the Internet, you might have loaded in, waited for the map, whole map, to load itself. That may have taken a while, but then they added the ability to have these, what we, back in the day, used to call slippy maps, and those slippy maps were powered by smaller, smaller tiles. You would take the data that you have of the world, you would then render that at different resolutions. At each resolution, you would create a series of tiles, and then you would have a tiling scheme which you can find on the Internet and is available everywhere. Now, assert that the browser would know what scale you're at, you know. Then at that scale, it returned the right JPEGs or PNGs, depending upon what they are for that map at that time. It would then load those images in real-time, and it would give you the user, the feeling that the maps are coming down quicker. Otherwise, you'd be waiting for the server to get all the data, process the data in some sort of graphics area, create the image, and serve it out to the web. As we've gone on from that, there are vectors in the browsers so that you don't need images all the time. You sometimes have need for them, if they're heavy images like satellite imagery or Street View imagery. But we've moved on and the technology has moved on. But back in the past, you would need tiles, like any sort of image tiles, to render maps quickly. [0:11:33] JG: The a beauty in that, as the technology has gotten fancier and more built up and understandable, the amount of data we're sending down to browsers is actually much lessened now that we're able to be a little more performance and streamlined here. [0:11:44] MT: I think, as a balancing act between, as with any sort of resource-constrained application, and as you transitioned from web applications that generally worked in the home on a fast network, potentially broadband at the time to mobile applications. As there was a whole revolution around mobile applications at the beginning of the 2010s and a bit earlier, the actual data you could send between them was limited. So, as you people got more clever about what you wanted to do, and as browsers got more performant, you try to work out what is the best ways of serving out the data in the quickest format to get these things into users' hands. Because, as we remember, when you're building an application, you don't want to have the browser waiting and your user waiting for a long time, because they will tend to go off and do something else. Whatever happens, you do want to keep them engaged in the application. [0:12:44] JG: We've talked to some of your coworkers on the Chrome performance or web platform teams who have strongly said and tried to help folks do what you just described, of getting things to be snappy and responsive as soon as possible. So, thank you for agreeing with that general direction. [0:12:57] MT: Well, I used to spend a lot of time working on performance. This was identifying the different bottlenecks in the browser, specifically around maps, and working out where the performance was taking. Is it a browser issue? Is it a network issue? Is it a server issue? How do you scale the applications? That was one of the things you had to think about, and obviously lots of people still think about that. But for many users, the benefit of things like cloud services, the benefit of things like Google Maps platform, or Google Maps is, and when I say we, I mean the royal we, not necessarily always me, the very strong developers we have in the organization, the strong engineering teams and the SRE teams that we have in the organizations to keep all these services running at scale for billions of users. And that is the ability what you can do. I would have to scale up a server for a few users and still have challenges about getting good performance for 100 users. Now, we're doing this at scale with up to date information, be that place information for over 200 million places, or information about locations, which is constant being updated every day, or routing and real-time traffic information that's constantly being updated every day. You can then run a few lines of code, use one of our APIs on Google Maps platform, and you get that information directly into your application. So, you can build on top of that, and build your business on top of that, and that's one of the things. What we do in our team at Google is to work with developers, be they just, a lot of developers who want to get understanding about the platform, or they have a specific business need for in their terms, hundreds, millions of users themselves to get applications enabled. Because we're standing on the shoulders of giants who have built these sort of systems, then they can get those access to our data very easily, because that's what powers their applications. [0:15:08] JG: Let's talk about that then. Could you give us just a one or two-sentence tagline. What is the Google Maps platform? [0:15:14] MT: It's a series of APIs that allows you to build geospatial applications on top of Google Maps data and services. I think that's the simplest way of explaining it. It's integrated with Google Cloud Platform. It's built on top of Google's scalable services. It has lots and lots of different types of geospatial and location-based data, such as places information, Street View information, routing information. All these services that allow you to build applications that your users will want, and then it integrates with mobile devices, web devices to bring your location to the application. You see all sorts of things now that you can do that, we've added development time to things like the ability to use live view, to visualize where you are in the real world, and add that to your applications, or the ability to, as we've been doing recently, to add 3D maps and 3D visualizations and immersive visualizations to your applications, in order to take - I think everybody's used, or many people have used Google Earth, and take the rich imagery and the rich 3D imagery in Google Earth into your applications. This is something that's been very hard to do on the web over time and we've been engaging with that now. So, we're constantly updating the platform, and we're constantly adding new ways of processing the data and getting it out to people in such a way that they can easily consume it. [0:17:01] JG: There's a really nifty demo. If you just Google the Google 3D maps JavaScript demos, you have this, it's called the mapsplatform.google.com. There's this wonderful demo of a few different things you can do with it and one that I'm currently really enjoying on this side monitor is this video kind of stream through like a helicopter view of the Amalfi Coast in Italy that you can watch as the point of view moves around the coast. You can see the mountains and the trees and the town load in from rough polygons to much more detailed tiling. Is that the type of thing that you're imagining with the geospatial applications? [0:17:37] MT: Yes. You've got a number of different layers there to unpack in terms of what we have. Google's got millions of aerial photography images, satellite images, that we process terrain information in order to create that mesh of 3D information. That is then served into the browser using photorealistic 3D maps in JavaScript, which is effectively the 3D view added into our wildly popular JavaScript API that's been around for, again, almost as long as Google Maps itself. Again, because it's in the browser, it's a web component. You can then use any JavaScript technique you want to do, to change the elements, change the visualization, power animation, per se, using JavaScript. Because it's using Google's experience in processing and serving out 3D in a very fast way, but also then rendering that 3D in the browser. Because we've got experience, I had experience with Google Earth for many years. The speed of that allows you to create those visuals, and to do it in such a way that looks like a smooth fly-through, like you'll be doing in any sort of like flight simulator software or visualization for a game. By having that sort of functionality, it really does allow you to think about the sort of new solutions, immersive solutions, that you might want to build. It's just a different way of visualizing the data in a very quick way. I think back to our point that we made earlier that you were talking about the Chrome team, we're talking about usability studies that you might have had. The speed of this means that people and you can integrate it into all sorts of applications, and this is still early in terms of our implementation of that within the browser, and we're looking at adding more functionality to it, and actually see what things that customers or users or developers want to do with the product, and then also what's missing from the product, and getting feedback from everybody about what they would like to see us do in the product. As we try and get this out and add more features to it, we will look at those areas to try and prioritize, where possible, the functionality. [0:20:12] JG: You bring on. Some cool points of tech here that I want to touch on a little. You mentioned web components. If you look at the demos, you can actually see in the Inspect Element tab in Chrome or other browsers, there's a GMP map 3D web component with some props, and then inside it, you render with Canvas. So, can you just tell us, as the expert here, how are those web components set up to run in the browser? [0:20:33] MT: I think in the back of the services, those components basically call off into things like WebAssembly to run the services in a very fast way. Actually, that powers the speed, they then, in the back end call other servers to get the information and the mesh information back to the application. So yes, I think the use of web components allows two different ways of accessing the components. There are ways, in terms of Google Maps, you can use components. You can use tags to embed things like polygons, polylines into the service, so it allows you to add new features in there using code, HTML tags that allow you to build those services up, or you can use JavaScript to create these and change all the services as if you work with any browser. [0:21:34] JG: So, you're using WebAssembly to spin off separate chunks of work, such as processing the data sent from the server that then gets put onto the main thread. This is all done by including, say, the GMP map 3D web component in your page, which is just JavaScript. It's not specific to like React or Angular or any some such. [0:21:51] MT: No. It's just a JavaScript component. We have libraries that bring these components into different areas like React and other areas that you can do. But this component can be used in any JavaScript environment at the moment. So, the key thing as we go on is to do two different things. It's basically to have things like, get things into the hands of developers in the easiest way possible, but also to also update our libraries to work, to make sure they're being able to be consumed by the most modern technologies, so we get the widest sort of adoption at scale. I think those are two different areas that we try and work with, within our team and within the organization as a whole. [0:22:42] JG: Are there any particular features or tech shifts that have happened recently that are public, that you're excited about with the platform? [0:22:48] MT: Well, for me, I've been working mainly on the way that we've been trying to bring the 3D immersive view into maps, and the speed that that has happened, and the way that we are able to bring the volume of data down to users is the key area for me. I think on my side, I'm just always constantly amazed about how you can take the world's information and actually serve it up at speed to a user, and then animate that for, as you said, the Amalfi Coast to visualize what a user might want to do. It's all-encompassed within, I keep going on about it, but the magic for me has always been about the minimum amount of code that you need to do this. The libraries are all there. You can link them in with a few lines of code, or bundle them into whatever application you want to do, and then then you're ready to go. You don't have to do anything more than that. [0:23:53] JG: Yes. The Hello World is about 20 lines of code at most, and most of that is a style tag in the head. The Hello World body is just GMP map 3D and then a script async to include the Google Maps API with the user's key. That's it. That's all you have to do. [0:24:10] MT: Yes. I've recently released a code lab which allows you to just do that Hello World. You know, it's very easy to get on board with. It doesn't require you to have a lot of concepts. The biggest concept you have to get your head around, or I had to get my head around when you start working with 3D, with 2D maps, it's very easy, because you just have an X and Y coordinate, and that's just a point on the map like any sort of image or anything like that. It seems very straightforward to us now, to everybody now, because they're everybody's aware of that. When I was learning this in the past, less people have had access to it. They had paper maps, they had other services, but it was very hard to do. When you're working with 3D and there'll be a lots of developers out there who have spent lots of time working with different things like game development and building complicated game systems. But when you haven't been doing that, understanding that you're looking at a point on the ground in three dimensions, and you're a certain range from that point, that point has a location, but also has an altitude, and then changing the position of your virtual camera around is what you're doing, rather than changing the position of the center of the map or the point on the map, and then getting your head around the virtual camera is always the hardest thing, and the pitch and the role of the camera, and setting those in the right way, and then working out the going back to your school math stays and working out the relationships to angles and those sort of things and rotations is sort of like, in my head, the most complicated thing. But what we are adding to the platform is functions that allow you to do that very easily. So, if you want to move between two different areas, or move around, or something like that, we'll add those sort of functionalities to the platform so that users won't have to work too much with math beyond just working out where they are in the space, how far they are from a location, how much they want to move up. When they want to visualize the top of Mount Whitney, they need me to make sure they're higher high enough up to see the top of Mount Whitney. When they're visualizing, say, where I am in London, they have to be much lower down, because I'm much lower down. So, understanding the 3D concepts is the thing that you need to work on, understanding the code to actually move things around, that's very straightforward. [0:26:47] JG: Just as an intellectual exercise, I'd love to walk through with you the actual number of dimensions involved in 3D work, because it's more than just X, Y, Z, as you said. There's also the angle, the pitch, the role of the camera. So, how many variables does one need to describe a certain viewer at a certain point above the map, at some certain viewpoints? [0:27:07] MT: Now, you're setting me a challenge here. You need X, Y, Z, because that's it. You also need the altitude. So, that's the altitude. Obviously, when you do the altitude, so you take altitude off the fore, because that's it. But the altitude is can be related to how, whether it's an absolute altitude, or it can be relative to the underlying absolute the height of the mesh and things like that. So, there are other things. Obviously, the pitch of the view and the role of north that you want to be pointing at. So, that's that. Oh, there probably are a few more. [0:27:48] JG: I actually don't know these things. What are the differences between? Or just what are pitch and roll? [0:27:53] MT: Well, I say pitch. I mean tilt. So, default tilt pointing down is zero, and then you have an angle. You have roll, which is the plane like that. If you want to have the pole rolling over left or right, and then you have the heading due north is zero, then everything else is - those are the main things. Then you have the center, which is a latitude, longitude, altitude, and then the range from that center. [0:28:26] JG: So, from all that information at the base, what we as the end user actually want is, I want to start at the Empire State Building, and then fly north to Central Park and that's what your platform gives us the ability to do. We set those, let's say, endpoints, and then there's a nice path calculated for us between them by you. [0:28:43] MT: Yes, definitely. We will do that. At the moment, with the experimental version that we're working on, we're adding that functionality in. You can currently look at the - you set the lat, long altitude, you set the tilt, you set the range how far you are from the point you're looking at, and potentially you can set the heading so where around that point you're looking at it from, and you can use the roll, if you're if you're being extra spicy. But most of the time that the lat, long altitude is what you set, and the tilt, and then the range, which are the parameters that control what you're looking at, and then which direction you're looking at it from, and then you're good to go. Then you can change those parameters. So, you can use libraries like tween.js to tween between values, which allow you to move around the scene if you want, which it changes - it basically just changes the elements on the map element to update the values, and then you can use an animation loop within the browser to animate that value. Browsers all have animation loops that you can access and tween can change the values of the components using math. Then, you can set the sort of like, there are obviously algorithms that you can use to allow the views to go in more slowly or quicker, depending upon how you might want to visualize that. [0:30:21] JG: That's interesting. So, you can take your existing or pre-made knowledge from a library such as TweenJS, which lets you have nice animations or tweens mathematically between points, and you can use the Google Maps platform as an output or as a target for your tweening using the stuff that already exists in JavaScript. [0:30:40] MT: Yes. You have things like request animation frame to actually change the frame at that particular point and move yourself around. With the current solution, that's what we'll do. As we move further on, we will hopefully make that easier for customers to do and people to do. If we talk about something like easing functions, when you navigate between places. You can have easing functions that allow you to allow you to change how fast and how slow you move between places. Those are the sort of things that with a library or with your own code that you want to build up, you can change the way and the speed you move between points and that allows you to do it. Now, it's as complicated as you want to make it. You're just changing a few parameters of the camera, and those parameters are done with either something like tween.js or as an external library, your own code, if you want to do it. It's all known, known things that you can do in the browser. Then you have request animation frame to keep that going and move your browser around, and then you can get the magical fly-throughs, like you were saying through the Amalfi Coast. [0:31:52] JG: Lovely. I want to take a little bit of a step back and talk about some of the more industry-wide trends or new things that are coming up. Like Google I/O, there were a few announcements about today's current favorite buzzword and topic, AI. Are there any experiments or things you're excited about that have been announced for Google Maps' SDK and platform? [0:32:12] MT: So, with Google Maps and the processing of data and machine learning, a lot of machine learning is done to - if you take the idea of 3D maps and scale and processing of data, you take the 3D maps, you take the satellite imagery, and you process all that at very high resolutions using actually, old technology called photogrammetry, which basically takes aerial photos in multiple directions, and then processes them all together to work out the height and to work out the values. When I was doing this as an undergraduate student, we were using analog systems to do this. Now, you can do this at scale for the for the globe, to take the data, use machines to process them and process information, then you can use things like - but with Generative AI, we've added some features and functionalities around places recently, where you can get summaries of places, so you can get the vibe and the information about places, and get that information from our Places API to give your users some more information about the areas. Doing that in thoughtful ways is the key thing. [0:33:28] JG: It's incredible what you can achieve when you combine traditional techniques and nuance. Photogrammetry with the traditional techniques of, say, extracting info from the photographs with the last little bit added there from, say, Gen AI, of being able to fill in what was completely inferable, what seemed pretty accurate, or being able to link it to say you're looking at a building that's a restaurant. Okay, now I want restaurant recommendations or menu items. It just seems like a little extra niceness for user's little spiciness. [0:33:57] MT: Yes. I think, adding thoughtful ways of summarizing information and giving that to people from the wide amount of information contained and about a place allows people to be more productive and get information quicker and summaries in a more succinct way and make decisions better. I think that's a key thing about all of this, is to try and allow users to make more informed decisions from a wider set of information. [0:34:33] JG: Matt, we only have a little bit of time left, so I want to start talking about more tangential topics. Folks may remember back in, when was it 2016, 2017 when Pokémon GO hit the streets and everyone was - I was personally Team Mystic. Shout out. But I'd love to ask Matt, are there any particular applications or uses for maps that you personally interact with that we haven't covered yet? [0:34:56] MT: Actually, I can give you an example of an application. It was very useful to me recently. I won't name any particular thing, but the magic of location is to be able to get up-to-the-minute information about something that is important to you. Recently, I went for a vacation to Colorado, and I got a flat tire in a very remote location, and was very concerned about what was going to happen. Now, it wasn't anything dangerous, but I managed to contact, in this case, the hire car company, and they sent, and this was 200 miles. They sent a flatbed truck with a new vehicle on the back of it for me, because my car had a flat and I was in the middle of nowhere. The thing that they allowed me to see at that point was an application that showed me the location of the truck in real-time, so I can have an information about where my vehicle was, because I couldn't move. I was stuck where I was and getting that update in real-time. This was, in a good way, on a Google Map, powered by Google Maps platform. I could see that this person, where they were, how long they were going to take to get to me, and it would reduce my anxiety, no end, and the anxiety of my family. That sort of thing, it wasn't possible, even probably 15 years ago, and to get that real-time, and to get an update of the real-time, time it would take to get here. There was a three-and-a-half-hour journey for the poor person who had the car on the truck, and I was very appreciative of the time they took to get to me. That sort of application is replicated in all sorts of things. As we said back in the beginning, it's replicated in things like gaming applications. It's replicated in tracking applications. It's reckoning to the applications you might want to do to work out where you are on a trail or how far you are off the trail. I did lots of hiking and used applications all the time to find myself, to try and find where the trail was because I was off the trail. And to, obviously, in the basics, is to use Google Maps to find the way to get between different areas, especially in a new place. There are lots of different areas that you can do, lots of different applications you can get that allow that, and the whole power of Google Maps and Google Maps platform allows these applications to be built and delivered to people. [0:37:43] JG: Speaking of hiking, what's the favorite hiking place you've been to in your life? [0:37:47] MT: So, I shouldn't really tell people about this place, but I've been really sold on place called - again, we went hiking with - it's very recency bias. Very sold on a place called Marble in Colorado. Please look it up, everybody. Actually, don't go there because it's not very big. It's only got one restaurant, but it's got some really nice - it's got one of the most photographed meals in the world there, the crystal meal. It's an amazing place. Very small, very local. Not too far from Aspen, but completely the opposites end to Aspen, but it has some of the really nice hikes all around there that you can do. Not easy, but some nice hikes. Coming from somebody in the UK who doesn't have a wilderness, you can really go off in peace there very easily to find places where nobody is walking for hours. It's an amazing place. So, I really like the high mountains around those areas in Colorado, Crested Butte, Marble, Erie, or Silverton, great places around there. So, get hiking around there. That's what I would suggest. [0:39:06] JG: That's beautiful. I'm looking at it, of course, on Google Maps now, seeing the historical place notes. It's rated 4.8. Very nice. There's this incredible mill on the water with this mini stream flowing right next to it. That's a beautiful area. [0:39:19] MT: Yes. Try not to go there when I'm there, because I like the solitude. But there a lot there. It's a great place to go. [0:39:26] JG: Colorado is just a beautiful state overall, just to visit, to hike through, to drive through any of the above. [0:39:32] MT: Yes. And use Google Maps to find out more about it. [0:39:36] JG: It all ties together. Great. Well, this is all the time we have, but Matt, thank you so much for coming on the show. Is there anything that you'd like to direct people to try out or find on the Internet about you or your team, or Google Maps, SDK, and platform? [0:39:47] MT: I think, on our side, is like, try photorealistic 3D maps in the JavaScript API. Go through my code lab to build your first 3D map. Look at the different ways of manipulating the view to build those nice little Amalfi Coast-type visualizations add features to the map. We're adding more and more functionality over the next few months. So, keep looking at what we're doing and come up with ideas about the sort of applications you can build. [0:40:18] JG: That sounds great. For Software Engineering Daily, this is Josh Goldberg, thanks for listening everyone. Cheers. [END]