8

I managed to generate a map of the Italic Peninsula with the borders corresponding to 250BC. Is there a way I can shade the area of the Roman empire of the time?

redDot = Graphics[{Red, Disk[]}];
blueDot = Graphics[{Blue, Disk[]}];

Rome = Entity["City", {"Rome", "Lazio", "Italy"}];
LakeTrasimeno = Entity["Lake", "LakeTrasimeno::946n7"];

GeoGraphics[{
  {GeoMarker[Rome, redDot, "Scale" -> Scaled[0.02]], Black, 
   Text[Style["Rome", Bold], Rome, {-1.5, 0}]},
  {GeoMarker[LakeTrasimeno, blueDot, "Scale" -> Scaled[0.02]], Black, 
   Text[Style["Trasimeno", Bold], LakeTrasimeno, {-1.2, 0}]}},
 GeoBackground -> Dated["CountryBorders", -250],
 GeoRange -> Quantity[1000, "Kilometers"]
 ]

enter image description here

Maturin
  • 281
  • 1
  • 6

2 Answers2

9

I finally found a way of doing it. I must say, I'm speechless about the versatility of Mathematica. Watching this YouTube video was key: Historical Information in Wolfram|Alpha and the Wolfram Language.

redDot = Graphics[{Red, Disk[]}];
blueDot = Graphics[{Blue, Disk[]}];

Rome = Entity["City", {"Rome", "Lazio", "Italy"}];
LakeTrasimeno = Entity["Lake", "LakeTrasimeno::946n7"];

GeoGraphics[{{Polygon[
    Dated[Entity["HistoricalCountry", "RomanRepublic"], 
     Entity["MilitaryConflict", "SecondPunicWar"]["StartDate"]]]},
  {GeoMarker[Rome, redDot, "Scale" -> Scaled[0.02]], Black, 
   Text[Style["Rome", Bold], Rome, {-1.5, 0}]},
  {GeoMarker[LakeTrasimeno, blueDot, "Scale" -> Scaled[0.02]], Black, 
   Text[Style["Trasimeno", Bold], LakeTrasimeno, {-1.2, 0}]}
  },
 GeoBackground -> {"CountryBorders", 
   Entity["MilitaryConflict", "SecondPunicWar"]["StartDate"]},
 GeoRange -> Quantity[1000, "Kilometers"]]

enter image description here

Note: I used the natural language input feature a lot, but it doesn't show in the code above. For example, I would type ^= and write Second Punic War and get Entity["MilitaryConflict", "SecondPunicWar"]. I wish I knew a way to see what are the attributes of Entities like these. It took me a while to figure out how to extract the start date...

Answer to the original question

Here's the map of the Roman Republic in 250BC.

redDot = Graphics[{Red, Disk[]}];
blueDot = Graphics[{Blue, Disk[]}];

Rome = Entity["City", {"Rome", "Lazio", "Italy"}];
LakeTrasimeno = Entity["Lake", "LakeTrasimeno::946n7"];

GeoGraphics[{{Polygon[
    Dated[Entity["HistoricalCountry", "RomanRepublic"], 
     DateObject[{-250}]]]},
  {GeoMarker[Rome, redDot, "Scale" -> Scaled[0.02]], Black, 
   Text[Style["Rome", Bold], Rome, {-1.5, 0}]},
  {GeoMarker[LakeTrasimeno, blueDot, "Scale" -> Scaled[0.02]], Black, 
   Text[Style["Trasimeno", Bold], LakeTrasimeno, {-1.2, 0}]}
  },
 GeoBackground -> {"CountryBorders", DateObject[{-250}]},
 GeoRange -> Quantity[1000, "Kilometers"]]

enter image description here

Maturin
  • 281
  • 1
  • 6
3
redDot = Graphics[{Red, Disk[]}];
blueDot = Graphics[{Blue, Disk[]}];
Rome = Entity["City", {"Rome", "Lazio", "Italy"}];
LakeTrasimeno = Entity["Lake", "LakeTrasimeno::946n7"];
GeoGraphics[{Polygon[
   Entity["HistoricalCountry", "RomanEmpire"]], {GeoMarker[Rome, 
    redDot, "Scale" -> Scaled[0.02]], Black, 
   Text[Style["Rome", Bold], Rome, {-1.5, 0}]}, {GeoMarker[
    LakeTrasimeno, blueDot, "Scale" -> Scaled[0.02]], Black, 
   Text[Style["Trasimeno", Bold], LakeTrasimeno, {-1.2, 0}]}}, 
 GeoBackground -> Dated["CountryBorders", -250], 
 GeoRange -> Quantity[1000, "Kilometers"]]

enter image description here

C. E.
  • 70,533
  • 6
  • 140
  • 264
ulvi
  • 1,808
  • 10
  • 15
  • 1
    Entity["HistoricalCountry", "RomanEmpire"]["StartDate"] yields DateObject[{-27, 1, 16}, "Day", "Gregorian", 2.] (and an "EndDate" of 395), so this does not match the borders at -250. I haven't found a match among Select[Entity["HistoricalCountry"]["Name"], StringContainsQ[#, "Roman"] &] either. – corey979 Apr 14 '18 at 23:12
  • Looks like there is only one "RomanEmpire" in the database, corresponding to the period of maximum expansion, most likely... – ulvi Apr 14 '18 at 23:57