I did this once a long time ago (2009) so I suspect the Google API for map is much better now.
Here is how I did it back then.
I had an html page that I configured in EPPM.
In the page initialize function, I make a call to a URL that returns an XML data payload response (using the P6 Web Services) with all the projects that I wanted to show on the map.
I then parse the XML response document into an array of GLatLng with GMarker for each project.
Once I had my GLatLng array, I set the map bounds base on the values in the GLatLng array, call map.setCenter on the bounds center and then rendered the map into a targeted DIV with the html page.