Edit in JSFiddle

var points = [ {x:120,y:110}, {x:150,y:190}, {x:280,y:150}];

var renderMarker = function(point) {
    ctx.save();
    ctx.translate(point.x, point.y);
    ctx.rotate(Math.PI/4);
    ctx.fillRect(-5,-5,10,10);
    ctx.restore();
};

var renderScannerFill = function(point, radius) {
    ctx.save();
    ctx.translate(point.x, point.y);
    ctx.beginPath();
    ctx.arc(0,0,radius,0,2*Math.PI);
    ctx.fill();
    ctx.restore();
};

var ctx = document.getElementById('map').getContext('2d');
ctx.fillStyle = "rgba(120,256,120,1.0)";

var i;
for(i=0; i<points.length; i++) {
    renderScannerFill(points[i], 75);
    renderMarker(points[i]);
}
ctx.save();
ctx.globalCompositeOperation = "destination-out";
ctx.fillStyle = "rgba(0,0,0,1)"; // destination-out only cares about opacity
for(i=0; i<points.length; i++) {
    renderScannerFill(points[i], 70);
}

ctx.fillStyle = "rgba(0,0,0,0.7)"; // shave off 70% opacity off the whole scene
ctx.fillRect(0,0,400,300);

ctx.restore();
ctx.fillStyle = "rgba(120,256,120,0.7)";
for(i=0; i<points.length; i++) {
    renderMarker(points[i]);
}




<canvas id="map" width="400" height="300"></canvas>
#map {
    background: url(http://droneage.com/img/battle/bg/starfield-navy.jpg)
}