I am trying to combine the Google Maps API Ground Overlay example with CartoDB.js example using Google Maps. It appears both APIs are displaying their layers correctly.

However, the ground overlay is always displayed on top. I would like to see the positions from the CartoDB viz layer to appear on top of the ground overlay. Any suggestions?

1 Answer 1


After trying a couple of different things, and based on information from this SO post and Google Maps Custom Overlays. I ended up with this solution:

      // Constructor
      function CustomOverlay(map) {

      // Inside main function
      // ...
         Custom Overlay

         Overlay holds the Pane that holds GroundOverlay, so we can
         accquire the handle to set the appropriate zIndex.

      var customOverlay;
      CustomOverlay.prototype = new google.maps.OverlayView();
      overlay = new CustomOverlay(map);

      CustomOverlay.prototype.onAdd = function() {
        var panes = this.getPanes();    
        panes.overlayLayer.style['zIndex'] = 10; <!-- Magic # based on experimentation! -->

      CustomOverlay.prototype.draw = function() {
        // NOOP
        // The overlay is just a container, we are not adding any custom
        // graphics/text onto it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.