StadiumShape can be used instead of two semicircles and a rectangle to render the gray field:
stadium = {LightGray, EdgeForm[Gray], StadiumShape[{{-1, 0}, {2, 0}}, 1]};
cols = {Red, Blue, Green, Black};
disks = Thread[{EdgeForm@Gray, cols, Disk[#, .03]&/@ {{-1, 0}, {0, 0}, {2, 0}, {0, 1}}}];
lines = {Gray, Line/@{{{Cos[5 Pi/6]-1, Sin[5 Pi/6]}, {-1,0}, {2,0}}, {{0,-1}, {0,1}}}};
rectangle = {Opacity[.25, Blue], EdgeForm[Thin], Rectangle[{0, 0}, {.15, .15}]};
labels = {Opacity[1], Black,
Text[Style[Subscript[d, 1], 10, Italic], 3 {Cos[5 Pi/6] - 1, Sin[5 Pi/6]}/4, Right],
Text[Style[Subscript[d, 2], 10, Italic], Offset[{-10, 10}, {0, .5}]],
Text[Style[Subscript[d, 3], 10, Italic], Offset[{-10, -10}, {0, -.5}]],
Text[Style[L, 10, Italic], Offset[{0, -10}, {1, 0}]],
Text[Style[G, 10, Italic], Offset[{10, 10}, {0, 1}]],
Text[Style[ATM, 10, Green], Offset[{10, 10}, {2, 0}]],
Text[Style[LPK, 10, Red], Offset[{10, 10}, {-1, 0}]]};
Graphics[{stadium, lines, disks, labels, rectangle}, Axes -> False, ImageSize -> 600]
