15
$\begingroup$

I'm using GeoGraphics and Polygon[Interpreter["USState"]["Colorado"]] to create a map of Colorado and several bordering states. With automatic GeoStyling, I get a decent map with cities and roads indicated.

I am plotting some data points on top of this map. This unfortunately makes the map difficult to read -- it's rather busy. Is there a way I can remove the roads from this map (keeping the cities and state borders)?

GeoGraphics[{GeoStyling[Automatic], Polygon[Interpreter["USState"]
["Colorado"]]}, GeoRangePadding -> Quantity[150, "Kilometers"], 
GeoProjection -> "Mercator", ImageSize -> {800}, GeoScaleBar ->  
Placed[{"Imperial", "Metric"}, Scaled[{0.05, .96}]]]

I used GeoBackground->GeoStyling["StreetMapLabelsOnly"] to get rid of the roads (keeping the cities), but it also got rid of the state borders.

I feel like I am almost there! Thanks in advance for your help!

$\endgroup$
  • 1
    $\begingroup$ Welcome to Mathematica.SE! I hope you will become a regular contributor. To get started, 1) take the introductory Tour now, 2) when you see good questions and answers, vote them up by clicking the gray triangles, because the credibility of the system is based on the reputation gained by users sharing their knowledge, 3) remember to accept the answer, if any, that solves your problem, by clicking the checkmark sign, and 4) give help too, by answering questions in your areas of expertise. $\endgroup$ – bbgodfrey Sep 4 '15 at 17:33
  • 1
    $\begingroup$ You might wish to search simultaneously for roads and maps on this site. $\endgroup$ – bbgodfrey Sep 4 '15 at 17:34
6
$\begingroup$

To get the state borders, one can overlay an "OutlineMap" on top of a background with GeoStyles["SreetMapLabelsOnly"]. The key is to ask for a map that is big enough to catch all of the states you want to see, and then specify

  1. the center of the area of interest via GeoCenter
  2. the range of the area you want to plot via GeoRange
  3. the level of detail via GeoZoomLevel and ImageSize

Perhaps something like this will work:

GeoGraphics[
 {GeoStyling["OutlineMap"], Opacity@0, Polygon[Interpreter["USStateClass"]["WesternStates"]]},
 GeoBackground -> GeoStyling["StreetMapLabelsOnly"],
 GeoCenter -> Interpreter["USState"]["Colorado"],
 GeoProjection -> "Mercator",
 GeoRange -> Interpreter["USState"]["Colorado"],
 GeoRangePadding -> Quantity[150, "Kilometers"],
 GeoScaleBar -> Placed[{"Imperial", "Metric"}, Scaled[{0.05, .96}]],
 GeoZoomLevel -> 7,
 ImageSize -> {600}
]

map

Notes

  1. Since the only control one has over the level of detail is via GeoZoomLevel, which can be finicky, and ImageSize, expect some odd features, such as city names covered by state lines or a floating "United States" label in Kansas. If one goes too high in zoom level, road route symbols are also displayed, although there are no roads to match them to.
$\endgroup$

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.