JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script src="http://jquery-ui-map.googlecode.com/svn/trunk/ui/jquery.ui.map.js"></script>
<script src="http://jquery-ui-map.googlecode.com/svn/trunk/ui/jquery.ui.map.extensions.js"></script>
<script src="http://www.google.com/jsapi"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-ui-map/3.0-rc1/jquery.ui.map.js"></script>
<div id="map_canvas" style="width:100%; height:500px;"></div>

JavaScript

google.load('visualization', '1.0');

//the mozambique polygon
var mozambique;


//Initialize the map
    var mapa = $('#map_canvas').gmap({'center': '-18.646245,35.815918'});
    $('#map_canvas').gmap('option', 'zoom', 3);

    //create the layer (all countries except Mozambique)
    var world_geometry;
    $('#map_canvas').gmap().bind('init', function(event, map) {
        world_geometry = new google.maps.FusionTablesLayer({
            query: {
                select: 'geometry',
                from: '1N2LBk4JHwWpOY4d9fobIn27lfnZ5MDy-NoqqRpk',
                where: "ISO_2DIGIT NOT EQUAL TO 'MZ'"
            },
            styles: [{
                    polygonOptions: {
                        fillColor: "#333333",
                        fillOpacity: 0.3
                    }
                }],
            map: map,
            suppressInfoWindows: true
        });
    });

    $('#map_canvas').gmap().bind('init', function(event, map) {
        initMozambique(map);
        $(map).click(function(event) {
            $('#map_canvas').gmap('clear', 'markers');
            $('#map_canvas').gmap('addMarker', {
                'position': event.latLng,
                'draggable': true,
                'bounds': false
            }, function(map, marker) {
            }).dragend(function(event) {
                if (!google.maps.geometry.poly.containsLocation(event.latLng, mozambique)) {
                   alert('You are not allowed to drag the marker outside Mozambique');
                }
                //I need to check if the marker is over the FusionTablesLayer and block the drag.
                //var test = google.maps.geometry.poly.containsLocation(event.latLng, world_geometry);
            }).click(function() {
            })
        });
    });

function initMozambique(map) {
    //init the query string, select mozambique borders
    var sql = encodeURIComponent("SELECT 'geometry' FROM 1N2LBk4JHwWpOY4d9fobIn27lfnZ5MDy-NoqqRpk WHERE ISO_2DIGIT...