7
$\begingroup$

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

$\endgroup$
7
$\begingroup$

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

$\endgroup$
  • $\begingroup$ Neat, +1. But how does it correspond to the border right above Trasimeno in the plot in the question? $\endgroup$ – corey979 Apr 15 '18 at 7:06
  • $\begingroup$ @corey979 I added the answer to the original question. $\endgroup$ – Maturin Apr 15 '18 at 16:56
  • 1
    $\begingroup$ Cool. Geography is not my thing, but I think I'll play with it a bit. And I guess you can safely accept your own answer. $\endgroup$ – corey979 Apr 15 '18 at 17:38
3
$\begingroup$
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

$\endgroup$
  • 1
    $\begingroup$ 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. $\endgroup$ – corey979 Apr 14 '18 at 23:12
  • $\begingroup$ Looks like there is only one "RomanEmpire" in the database, corresponding to the period of maximum expansion, most likely... $\endgroup$ – ulvi Apr 14 '18 at 23:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.