The data for these network maps is stored and maintained in a Geographic Information System (GIS). These systems have been around a lot longer than Google Maps, for 30 years or so, and tend to be powerful but complex to use. We have focused on working with data from GE Smallworld for utility GIS, but can also work with data from ESRI and others. We render the network data from the GIS to raster map tiles to create an image map overlay that is displayed on top of the Google Maps basemap. The advantage of this approach versus using a vector data format is that it is much easier to match the cartographic design of the network maps used in the GIS, and the users expect consistency between the systems.
All features on the map need to be clickable so that users can display information about any of the network items such as cables, poles, transformers, etc. To handle this we just define a click event that queries a server to find items close to that point. We use a system called Arc2Earth Cloud, which stores spatial data in Google App Engine.
One cool feature of our application is its tight integration with Google Street View. You can click on an object on the map, such as a pole or a building, and see a Street View of that object. This gives the user additional information that they can’t get from their existing GIS database. We calculate the right bearing for the Street View automatically, and this works surprisingly well, given the potential for mismatches between the Street View and GIS location data. When necessary, the user can adjust and save the view, over-riding the automatic view. We can display markers in the Street View and click on them to display attributes of poles or other characteristics – this is a great feature of the V3 API.