graphs and networks – mapping a digraph across sectors of countries

Given a (9,9) matrix representing three countries (for example, the US, China, Russia), each one of which has three sectors (vertices/sectors {1, 2, 3) for the US; {4, 5, 6} for China; and {7,8,9} for Russia), I like to create a map of the directed linkages between all 9 sectors using the actual world map.

SeedRandom(01);
g={{1.09738, 0.0440055, 0.113012, 0.0436654, 0.0550311, 0.0365684, 
 0.0990232, 0.0550859, 0.0629618}, {0.0850364, 1.05189, 0.0803699, 
 0.0999457, 0.0846171, 0.115742, 0.078153, 0.111992, 
 0.0828957}, {0.0982489, 0.0712597, 1.07401, 0.0723417, 0.0431498, 
 0.0824737, 0.126777, 0.0569532, 0.0808742}, {0.089248, 0.114673, 
 0.135009, 1.10033, 0.0743107, 0.107282, 0.133689, 0.0850109, 
 0.0467125}, {0.0921911, 0.0582554, 0.0937256, 0.0535134, 1.10261, 
 0.0882558, 0.0366383, 0.154662, 0.0893078}, {0.0835567, 0.0541454, 
 0.0971447, 0.0458107, 0.132431, 1.08961, 0.0726788, 0.108789, 
 0.118664}, {0.0747554, 0.150188, 0.139565, 0.0936757, 0.132907, 
 0.140158, 1.05936, 0.0964287, 0.116732}, {0.0667764, 0.0489254, 
 0.137437, 0.0962666, 0.0882702, 0.0704283, 0.0807027, 1.05768, 
 0.101375}, {0.0824603, 0.11258, 0.135069, 0.110204, 0.102288, 
 0.103722, 0.0453945, 0.0473116, 1.10549}};
n = 9;
d = 0.12;
G = RandomGraph({Round(n), Round(n*(n - 1)*d)}, DirectedEdges ->True);
Ga = AdjacencyMatrix(G)*g;
sa = SparseArray(Ga);
weightedG = 
  Graph(sa("NonzeroPositions"), EdgeWeight -> sa("NonzeroValues"), 
  DirectedEdges -> True, VertexCapacity -> {i_ :> i}, 
  VertexSize -> .3);
SetProperty(weightedG, 
  VertexLabels -> {i_ :> 
  Placed(PropertyValue({weightedG, i}, VertexCapacity), Center)})