From 98c83e2fcba6e4ef4f0ca2ae2a40bcaa7af15baf Mon Sep 17 00:00:00 2001 From: Fen Dweller Date: Mon, 15 Mar 2021 14:09:16 -0400 Subject: [PATCH] Add US interstates --- media/naturals/us-interstates/I-10.svg | 16 +++ media/naturals/us-interstates/I-12.svg | 7 ++ media/naturals/us-interstates/I-15.svg | 15 +++ media/naturals/us-interstates/I-16.svg | 6 ++ media/naturals/us-interstates/I-17.svg | 7 ++ media/naturals/us-interstates/I-19.svg | 6 ++ media/naturals/us-interstates/I-20.svg | 16 +++ media/naturals/us-interstates/I-24.svg | 12 +++ media/naturals/us-interstates/I-27.svg | 7 ++ media/naturals/us-interstates/I-29.svg | 12 +++ media/naturals/us-interstates/I-30.svg | 8 ++ media/naturals/us-interstates/I-35.svg | 20 ++++ media/naturals/us-interstates/I-37.svg | 7 ++ media/naturals/us-interstates/I-39.svg | 7 ++ media/naturals/us-interstates/I-4.svg | 6 ++ media/naturals/us-interstates/I-40.svg | 21 ++++ media/naturals/us-interstates/I-43.svg | 8 ++ media/naturals/us-interstates/I-44.svg | 15 +++ media/naturals/us-interstates/I-45.svg | 8 ++ media/naturals/us-interstates/I-49.svg | 6 ++ media/naturals/us-interstates/I-5.svg | 11 ++ media/naturals/us-interstates/I-55.svg | 17 ++++ media/naturals/us-interstates/I-57.svg | 10 ++ media/naturals/us-interstates/I-59.svg | 10 ++ media/naturals/us-interstates/I-64.svg | 21 ++++ media/naturals/us-interstates/I-65.svg | 13 +++ media/naturals/us-interstates/I-66.svg | 8 ++ media/naturals/us-interstates/I-68.svg | 7 ++ media/naturals/us-interstates/I-69.svg | 8 ++ media/naturals/us-interstates/I-70.svg | 28 ++++++ media/naturals/us-interstates/I-71.svg | 9 ++ media/naturals/us-interstates/I-72.svg | 8 ++ media/naturals/us-interstates/I-73.svg | 7 ++ media/naturals/us-interstates/I-74.svg | 14 +++ media/naturals/us-interstates/I-75.svg | 26 +++++ media/naturals/us-interstates/I-76.svg | 19 ++++ media/naturals/us-interstates/I-77.svg | 14 +++ media/naturals/us-interstates/I-78.svg | 11 ++ media/naturals/us-interstates/I-79.svg | 10 ++ media/naturals/us-interstates/I-8.svg | 12 +++ media/naturals/us-interstates/I-80.svg | 32 ++++++ media/naturals/us-interstates/I-81.svg | 19 ++++ media/naturals/us-interstates/I-82.svg | 7 ++ media/naturals/us-interstates/I-83.svg | 10 ++ media/naturals/us-interstates/I-84.svg | 16 +++ media/naturals/us-interstates/I-85.svg | 13 +++ media/naturals/us-interstates/I-86.svg | 9 ++ media/naturals/us-interstates/I-87.svg | 14 +++ media/naturals/us-interstates/I-88.svg | 8 ++ media/naturals/us-interstates/I-89.svg | 7 ++ media/naturals/us-interstates/I-90.svg | 38 +++++++ media/naturals/us-interstates/I-91.svg | 10 ++ media/naturals/us-interstates/I-93.svg | 14 +++ media/naturals/us-interstates/I-94.svg | 24 +++++ media/naturals/us-interstates/I-95.svg | 44 ++++++++ media/naturals/us-interstates/I-96.svg | 8 ++ media/naturals/us-interstates/I-97.svg | 7 ++ media/naturals/us-interstates/I-99.svg | 6 ++ presets/naturals.js | 35 +++++-- scripts/mapshaper/map-coords.py | 134 +++++++++++++++++++------ scripts/mapshaper/straits.json | 1 + scripts/mapshaper/us-interstates.json | 9 ++ 62 files changed, 897 insertions(+), 41 deletions(-) create mode 100644 media/naturals/us-interstates/I-10.svg create mode 100644 media/naturals/us-interstates/I-12.svg create mode 100644 media/naturals/us-interstates/I-15.svg create mode 100644 media/naturals/us-interstates/I-16.svg create mode 100644 media/naturals/us-interstates/I-17.svg create mode 100644 media/naturals/us-interstates/I-19.svg create mode 100644 media/naturals/us-interstates/I-20.svg create mode 100644 media/naturals/us-interstates/I-24.svg create mode 100644 media/naturals/us-interstates/I-27.svg create mode 100644 media/naturals/us-interstates/I-29.svg create mode 100644 media/naturals/us-interstates/I-30.svg create mode 100644 media/naturals/us-interstates/I-35.svg create mode 100644 media/naturals/us-interstates/I-37.svg create mode 100644 media/naturals/us-interstates/I-39.svg create mode 100644 media/naturals/us-interstates/I-4.svg create mode 100644 media/naturals/us-interstates/I-40.svg create mode 100644 media/naturals/us-interstates/I-43.svg create mode 100644 media/naturals/us-interstates/I-44.svg create mode 100644 media/naturals/us-interstates/I-45.svg create mode 100644 media/naturals/us-interstates/I-49.svg create mode 100644 media/naturals/us-interstates/I-5.svg create mode 100644 media/naturals/us-interstates/I-55.svg create mode 100644 media/naturals/us-interstates/I-57.svg create mode 100644 media/naturals/us-interstates/I-59.svg create mode 100644 media/naturals/us-interstates/I-64.svg create mode 100644 media/naturals/us-interstates/I-65.svg create mode 100644 media/naturals/us-interstates/I-66.svg create mode 100644 media/naturals/us-interstates/I-68.svg create mode 100644 media/naturals/us-interstates/I-69.svg create mode 100644 media/naturals/us-interstates/I-70.svg create mode 100644 media/naturals/us-interstates/I-71.svg create mode 100644 media/naturals/us-interstates/I-72.svg create mode 100644 media/naturals/us-interstates/I-73.svg create mode 100644 media/naturals/us-interstates/I-74.svg create mode 100644 media/naturals/us-interstates/I-75.svg create mode 100644 media/naturals/us-interstates/I-76.svg create mode 100644 media/naturals/us-interstates/I-77.svg create mode 100644 media/naturals/us-interstates/I-78.svg create mode 100644 media/naturals/us-interstates/I-79.svg create mode 100644 media/naturals/us-interstates/I-8.svg create mode 100644 media/naturals/us-interstates/I-80.svg create mode 100644 media/naturals/us-interstates/I-81.svg create mode 100644 media/naturals/us-interstates/I-82.svg create mode 100644 media/naturals/us-interstates/I-83.svg create mode 100644 media/naturals/us-interstates/I-84.svg create mode 100644 media/naturals/us-interstates/I-85.svg create mode 100644 media/naturals/us-interstates/I-86.svg create mode 100644 media/naturals/us-interstates/I-87.svg create mode 100644 media/naturals/us-interstates/I-88.svg create mode 100644 media/naturals/us-interstates/I-89.svg create mode 100644 media/naturals/us-interstates/I-90.svg create mode 100644 media/naturals/us-interstates/I-91.svg create mode 100644 media/naturals/us-interstates/I-93.svg create mode 100644 media/naturals/us-interstates/I-94.svg create mode 100644 media/naturals/us-interstates/I-95.svg create mode 100644 media/naturals/us-interstates/I-96.svg create mode 100644 media/naturals/us-interstates/I-97.svg create mode 100644 media/naturals/us-interstates/I-99.svg create mode 100644 scripts/mapshaper/us-interstates.json diff --git a/media/naturals/us-interstates/I-10.svg b/media/naturals/us-interstates/I-10.svg new file mode 100644 index 00000000..157c3301 --- /dev/null +++ b/media/naturals/us-interstates/I-10.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-12.svg b/media/naturals/us-interstates/I-12.svg new file mode 100644 index 00000000..2c2b3ac0 --- /dev/null +++ b/media/naturals/us-interstates/I-12.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-15.svg b/media/naturals/us-interstates/I-15.svg new file mode 100644 index 00000000..2da0281e --- /dev/null +++ b/media/naturals/us-interstates/I-15.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-16.svg b/media/naturals/us-interstates/I-16.svg new file mode 100644 index 00000000..127e5db5 --- /dev/null +++ b/media/naturals/us-interstates/I-16.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-17.svg b/media/naturals/us-interstates/I-17.svg new file mode 100644 index 00000000..fdf02bf4 --- /dev/null +++ b/media/naturals/us-interstates/I-17.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-19.svg b/media/naturals/us-interstates/I-19.svg new file mode 100644 index 00000000..a89953aa --- /dev/null +++ b/media/naturals/us-interstates/I-19.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-20.svg b/media/naturals/us-interstates/I-20.svg new file mode 100644 index 00000000..d2b03bf7 --- /dev/null +++ b/media/naturals/us-interstates/I-20.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-24.svg b/media/naturals/us-interstates/I-24.svg new file mode 100644 index 00000000..09b58bf7 --- /dev/null +++ b/media/naturals/us-interstates/I-24.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-27.svg b/media/naturals/us-interstates/I-27.svg new file mode 100644 index 00000000..b100de5e --- /dev/null +++ b/media/naturals/us-interstates/I-27.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-29.svg b/media/naturals/us-interstates/I-29.svg new file mode 100644 index 00000000..6691e340 --- /dev/null +++ b/media/naturals/us-interstates/I-29.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-30.svg b/media/naturals/us-interstates/I-30.svg new file mode 100644 index 00000000..68ded050 --- /dev/null +++ b/media/naturals/us-interstates/I-30.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-35.svg b/media/naturals/us-interstates/I-35.svg new file mode 100644 index 00000000..799148da --- /dev/null +++ b/media/naturals/us-interstates/I-35.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-37.svg b/media/naturals/us-interstates/I-37.svg new file mode 100644 index 00000000..b15fcc13 --- /dev/null +++ b/media/naturals/us-interstates/I-37.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-39.svg b/media/naturals/us-interstates/I-39.svg new file mode 100644 index 00000000..b2ac5839 --- /dev/null +++ b/media/naturals/us-interstates/I-39.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-4.svg b/media/naturals/us-interstates/I-4.svg new file mode 100644 index 00000000..e730b8a8 --- /dev/null +++ b/media/naturals/us-interstates/I-4.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-40.svg b/media/naturals/us-interstates/I-40.svg new file mode 100644 index 00000000..5f155a98 --- /dev/null +++ b/media/naturals/us-interstates/I-40.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-43.svg b/media/naturals/us-interstates/I-43.svg new file mode 100644 index 00000000..3e4db61d --- /dev/null +++ b/media/naturals/us-interstates/I-43.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-44.svg b/media/naturals/us-interstates/I-44.svg new file mode 100644 index 00000000..52fae175 --- /dev/null +++ b/media/naturals/us-interstates/I-44.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-45.svg b/media/naturals/us-interstates/I-45.svg new file mode 100644 index 00000000..89095b1f --- /dev/null +++ b/media/naturals/us-interstates/I-45.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-49.svg b/media/naturals/us-interstates/I-49.svg new file mode 100644 index 00000000..0352ef5b --- /dev/null +++ b/media/naturals/us-interstates/I-49.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-5.svg b/media/naturals/us-interstates/I-5.svg new file mode 100644 index 00000000..107e198c --- /dev/null +++ b/media/naturals/us-interstates/I-5.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-55.svg b/media/naturals/us-interstates/I-55.svg new file mode 100644 index 00000000..f2f5999a --- /dev/null +++ b/media/naturals/us-interstates/I-55.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-57.svg b/media/naturals/us-interstates/I-57.svg new file mode 100644 index 00000000..1e35fcff --- /dev/null +++ b/media/naturals/us-interstates/I-57.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-59.svg b/media/naturals/us-interstates/I-59.svg new file mode 100644 index 00000000..1eb16786 --- /dev/null +++ b/media/naturals/us-interstates/I-59.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-64.svg b/media/naturals/us-interstates/I-64.svg new file mode 100644 index 00000000..c43c7e5a --- /dev/null +++ b/media/naturals/us-interstates/I-64.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-65.svg b/media/naturals/us-interstates/I-65.svg new file mode 100644 index 00000000..3d46637f --- /dev/null +++ b/media/naturals/us-interstates/I-65.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-66.svg b/media/naturals/us-interstates/I-66.svg new file mode 100644 index 00000000..6c662c12 --- /dev/null +++ b/media/naturals/us-interstates/I-66.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-68.svg b/media/naturals/us-interstates/I-68.svg new file mode 100644 index 00000000..576b2b9d --- /dev/null +++ b/media/naturals/us-interstates/I-68.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-69.svg b/media/naturals/us-interstates/I-69.svg new file mode 100644 index 00000000..a1bff738 --- /dev/null +++ b/media/naturals/us-interstates/I-69.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-70.svg b/media/naturals/us-interstates/I-70.svg new file mode 100644 index 00000000..c6a05cb5 --- /dev/null +++ b/media/naturals/us-interstates/I-70.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-71.svg b/media/naturals/us-interstates/I-71.svg new file mode 100644 index 00000000..35123006 --- /dev/null +++ b/media/naturals/us-interstates/I-71.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-72.svg b/media/naturals/us-interstates/I-72.svg new file mode 100644 index 00000000..0bb19494 --- /dev/null +++ b/media/naturals/us-interstates/I-72.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-73.svg b/media/naturals/us-interstates/I-73.svg new file mode 100644 index 00000000..008f3110 --- /dev/null +++ b/media/naturals/us-interstates/I-73.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-74.svg b/media/naturals/us-interstates/I-74.svg new file mode 100644 index 00000000..a4fdc667 --- /dev/null +++ b/media/naturals/us-interstates/I-74.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-75.svg b/media/naturals/us-interstates/I-75.svg new file mode 100644 index 00000000..f721ff4c --- /dev/null +++ b/media/naturals/us-interstates/I-75.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-76.svg b/media/naturals/us-interstates/I-76.svg new file mode 100644 index 00000000..a73647ad --- /dev/null +++ b/media/naturals/us-interstates/I-76.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-77.svg b/media/naturals/us-interstates/I-77.svg new file mode 100644 index 00000000..9b6e11e9 --- /dev/null +++ b/media/naturals/us-interstates/I-77.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-78.svg b/media/naturals/us-interstates/I-78.svg new file mode 100644 index 00000000..08acc612 --- /dev/null +++ b/media/naturals/us-interstates/I-78.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-79.svg b/media/naturals/us-interstates/I-79.svg new file mode 100644 index 00000000..fb18d56c --- /dev/null +++ b/media/naturals/us-interstates/I-79.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-8.svg b/media/naturals/us-interstates/I-8.svg new file mode 100644 index 00000000..644e6f5f --- /dev/null +++ b/media/naturals/us-interstates/I-8.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-80.svg b/media/naturals/us-interstates/I-80.svg new file mode 100644 index 00000000..10080600 --- /dev/null +++ b/media/naturals/us-interstates/I-80.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-81.svg b/media/naturals/us-interstates/I-81.svg new file mode 100644 index 00000000..7e5282c9 --- /dev/null +++ b/media/naturals/us-interstates/I-81.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-82.svg b/media/naturals/us-interstates/I-82.svg new file mode 100644 index 00000000..f23c5e53 --- /dev/null +++ b/media/naturals/us-interstates/I-82.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-83.svg b/media/naturals/us-interstates/I-83.svg new file mode 100644 index 00000000..e4b04187 --- /dev/null +++ b/media/naturals/us-interstates/I-83.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-84.svg b/media/naturals/us-interstates/I-84.svg new file mode 100644 index 00000000..0396e672 --- /dev/null +++ b/media/naturals/us-interstates/I-84.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-85.svg b/media/naturals/us-interstates/I-85.svg new file mode 100644 index 00000000..7a67166d --- /dev/null +++ b/media/naturals/us-interstates/I-85.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-86.svg b/media/naturals/us-interstates/I-86.svg new file mode 100644 index 00000000..009297ff --- /dev/null +++ b/media/naturals/us-interstates/I-86.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-87.svg b/media/naturals/us-interstates/I-87.svg new file mode 100644 index 00000000..ba93ba6f --- /dev/null +++ b/media/naturals/us-interstates/I-87.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-88.svg b/media/naturals/us-interstates/I-88.svg new file mode 100644 index 00000000..05e0b9d9 --- /dev/null +++ b/media/naturals/us-interstates/I-88.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-89.svg b/media/naturals/us-interstates/I-89.svg new file mode 100644 index 00000000..c4fcd36c --- /dev/null +++ b/media/naturals/us-interstates/I-89.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-90.svg b/media/naturals/us-interstates/I-90.svg new file mode 100644 index 00000000..18f72d0a --- /dev/null +++ b/media/naturals/us-interstates/I-90.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-91.svg b/media/naturals/us-interstates/I-91.svg new file mode 100644 index 00000000..18f7e7bb --- /dev/null +++ b/media/naturals/us-interstates/I-91.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-93.svg b/media/naturals/us-interstates/I-93.svg new file mode 100644 index 00000000..a83d2114 --- /dev/null +++ b/media/naturals/us-interstates/I-93.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-94.svg b/media/naturals/us-interstates/I-94.svg new file mode 100644 index 00000000..abb52d66 --- /dev/null +++ b/media/naturals/us-interstates/I-94.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-95.svg b/media/naturals/us-interstates/I-95.svg new file mode 100644 index 00000000..e9c230ea --- /dev/null +++ b/media/naturals/us-interstates/I-95.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-96.svg b/media/naturals/us-interstates/I-96.svg new file mode 100644 index 00000000..a62aa01d --- /dev/null +++ b/media/naturals/us-interstates/I-96.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-97.svg b/media/naturals/us-interstates/I-97.svg new file mode 100644 index 00000000..f8bf96e3 --- /dev/null +++ b/media/naturals/us-interstates/I-97.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/media/naturals/us-interstates/I-99.svg b/media/naturals/us-interstates/I-99.svg new file mode 100644 index 00000000..247b50d0 --- /dev/null +++ b/media/naturals/us-interstates/I-99.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/presets/naturals.js b/presets/naturals.js index 114da455..63984ac2 100644 --- a/presets/naturals.js +++ b/presets/naturals.js @@ -895,7 +895,7 @@ const globalCityData = [ ] const straitData = [["Strait of Dover", 31174983454.928658, 222577.01735751258], ["Strait of Gibraltar", 4012438156.156927, 55658.19643643095], ["Strait of Hormuz", 25574748008.534893, 122431.35146918982], ["Strait of Messina", 97316549.67370307, 11131.941670965367], ["Strait of Otranto", 30353100830.64735, 189202.32829987607], ["Strait of Juan de Fuca", 36469939347.95791, 178049.49203886717], ["Bering Strait", 49612154086.2841, 211274.1384794921], ["Bass Strait", 278145181872.9597, 477687.07599560975], ["Palk Strait", 36632925592.65483, 166948.86982564948], ["Hudson Strait", 235671965415.1174, 353978.9165560771], ["Cook Strait", 14519643084.23072, 133569.43807438243], ["Sunda Strait", 2465200363.833765, 44527.260899000394], ["Taiwan Strait", 166569712655.73682, 411498.3631607854], ["Dardanelles Strait", 11897169147.76046, 100178.63730052409]] - +const usInterstateData = [['I-4', 133860.30238806643], ['I-5', 1841743.6685230015], ['I-8', 34419.884328052016], ['I-10', 662879.3942106421], ['I-12', 19601.661536140884], ['I-15', 1816556.2052351916], ['I-16', 88682.21453954442], ['I-17', 196173.201019035], ['I-19', 96426.05795676696], ['I-20', 347517.6947013905], ['I-24', 422558.98468291573], ['I-27', 617402.3082503016], ['I-29', 1111036.612182809], ['I-30', 231405.98002341753], ['I-35', 2158534.7689142646], ['I-37', 184231.0220610815], ['I-39', 489892.86533484043], ['I-40', 284554.8659969368], ['I-43', 228844.0768209733], ['I-44', 529117.6640772996], ['I-45', 394580.1764593749], ['I-49', 251521.75720683142], ['I-55', 1320388.2525614214], ['I-57', 544229.4386494028], ['I-59', 524278.150028191], ['I-64', 211843.6849640966], ['I-65', 1231049.0138181376], ['I-66', 24025.370784500737], ['I-66', 24025.370784500737], ['I-68', 15236.945179002872], ['I-69', 919351.2585854017], ['I-70', 277234.499188129], ['I-71', 361487.36346668913], ['I-72', 51460.97992201334], ['I-73', 97266.49617697322], ['I-74', 787056.102051467], ['I-75', 2278563.590324183], ['I-76', 118573.83898121146], ['I-76', 118573.83898121146], ['I-77', 850346.766475037], ['I-78', 34308.43505956534], ['I-79', 419586.7946081714], ['I-80', 335341.92972237605], ['I-81', 928130.9026841171], ['I-82', 132340.54932080585], ['I-83', 114410.28676654567], ['I-84', 709596.756786839], ['I-84', 709596.756786839], ['I-85', 546086.7051157606], ['I-86', 136716.7078032001], ['I-86', 136716.7078032001], ['I-87', 472844.76602409093], ['I-87', 472844.76602409093], ['I-88', 140816.2124300237], ['I-88', 140816.2124300237], ['I-89', 207356.9330399862], ['I-90', 930313.3415125563], ['I-91', 416438.4476691138], ['I-93', 250192.56712266232], ['I-94', 632131.6607593653], ['I-95', 2284530.2371507674], ['I-96', 96262.96337466157], ['I-97', 27501.47734637078], ['I-99', 96624.23888346303]] function makePlanet(name, diameter, mass, image) { return { name: name, @@ -943,6 +943,7 @@ function makeMountains() { }; } +// TODO area should come second, not first function makeGIS(data, category, rename=true) { const baseLength = math.unit(1, "meters"); const baseArea = math.unit(1, "meters^2"); @@ -951,11 +952,15 @@ function makeGIS(data, category, rename=true) { constructor: () => { views = {}; data.forEach(entry => { - name = entry[0] + name = entry[0]; length = baseLength.clone(); area = baseArea.clone(); - length.value = entry[2]; - area.value = entry[1]; + if (entry.length == 2) { + length.value = entry[1]; + } else { + length.value = entry[2]; + area.value = entry[1]; + } views[entry[0]] = { attributes: { @@ -965,12 +970,6 @@ function makeGIS(data, category, rename=true) { type: "length", base: length }, - area: { - name: "Area", - power: 2, - type: "area", - base: area - }, }, name: name, rename: true, @@ -978,6 +977,15 @@ function makeGIS(data, category, rename=true) { source: "./media/naturals/" + category.toLowerCase().replace(/ /g, "-") + "/" + (rename ? name.toLowerCase().replace(/ /g, "-") + ".svg" : name + ".svg") } } + + if (entry.length != 2) { + views[entry[0]].attributes.area = { + name: "Area", + power: 2, + type: "area", + base: area + } + } }); return makeEntity({ name: category }, views); @@ -1119,6 +1127,13 @@ function makeNaturals() { false )); + results.push(makeGIS( + usInterstateData.sort((c1, c2) => { + return c1[0].localeCompare(c2[0]) + }), + "US Interstates" + )); + results.sort((b1, b2) => { e1 = b1.constructor(); e2 = b2.constructor(); diff --git a/scripts/mapshaper/map-coords.py b/scripts/mapshaper/map-coords.py index 4837cd0e..ee02bfb5 100644 --- a/scripts/mapshaper/map-coords.py +++ b/scripts/mapshaper/map-coords.py @@ -3,40 +3,112 @@ import sys import subprocess config = json.load(open(sys.argv[1])) -results = [] - -for item in config["items"]: - lon0 = item["lon0"] - lat0 = item["lat0"] - lon1 = item["lon1"] - lat1 = item["lat1"] - - center_lat = (lat0 + lat1) / 2 - center_lon = (lon0 + lon1) / 2 - - path = "../../" + config["directory"] + "/" + item["name"] + ".svg" - - CMD = """\ - mapshaper -i {7} \ - -rectangle bbox={0},{1},{2},{3} name=rect \ - -clip rect target=ne_10m_land \ - -proj crs="+proj=nsper +h=10000000 +lon_0={4} +lat_0={5}" target=ne_10m_land,rect \ - -each 'console.log(this.bounds.concat([this.area]))' target=rect \ - -o "{6}" target=ne_10m_land - """ - - prepared = CMD.format(lon0, lat0, lon1, lat1, center_lon, center_lat, path, config["shapefile"]) - print(prepared) + +if config["mode"] == "bounding-boxes": + results = [] + + for item in config["items"]: + lon0 = item["lon0"] + lat0 = item["lat0"] + lon1 = item["lon1"] + lat1 = item["lat1"] + + center_lat = (lat0 + lat1) / 2 + center_lon = (lon0 + lon1) / 2 + + path = "../../" + config["directory"] + "/" + item["name"] + ".svg" + + CMD = """\ + mapshaper -i {7} \ + -rectangle bbox={0},{1},{2},{3} name=rect \ + -clip rect target=ne_10m_land \ + -proj crs="+proj=nsper +h=10000000 +lon_0={4} +lat_0={5}" target=ne_10m_land,rect \ + -each 'console.log(this.bounds.concat([this.area]))' target=rect \ + -o "{6}" target=ne_10m_land + """ + + prepared = CMD.format(lon0, lat0, lon1, lat1, center_lon, center_lat, path, config["shapefile"]) + result = subprocess.check_output( + prepared, + shell=True + ) + + data = json.loads(result.decode("utf-8")) + + height = data[3] - data[1] + area = data[4] + + results.append([item["name"], area, height]) + + print(json.dumps(results)) +elif config["mode"] == "filter": + results = [] + + CMD = ( + f"""mapshaper -i {config["shapefile"]} """ + f"""-filter "{config["base-filter"]}" """ + f"""-o temp.shp""" + ) + result = subprocess.check_output( - prepared, - shell=True + CMD, + shell=True, + stderr=subprocess.STDOUT ) - data = json.loads(result.decode("utf-8")) + for item in config["items"]: + CMD = ( + f"""mapshaper -i temp.shp """ + f"""-filter "{config["base-filter"]}" """ + f"""-filter "{item["filter"]}" """ + f"""-simplify interval=1000 """ + f"""-info """ + ) + + result = subprocess.check_output( + CMD, + shell=True, + stderr=subprocess.STDOUT + ) + + found = False + for line in result.decode("utf-8").split("\n"): + if "Bounds:" in line: + coords = list(map(float, line[7:].strip().split(","))) + lat = coords[1] + coords[3] + lat /= 2 + lon = coords[0] + coords[2] + lon /= 2 + found = True + break - height = data[3] - data[1] - area = data[4] + if not found: + print("Did not find ", item["name"]) + continue - results.append([item["name"], area, height]) + CMD = ( + f"""mapshaper -i temp.shp """ + f"""-filter "{config["base-filter"]}" """ + f"""-filter "{item["filter"]}" """ + f"""-simplify interval=1000 """ + f"""-proj "+proj=ortho +lat_0={lat} +lon_0={lon}" """ + f"""-info """ + + f"""-style stroke-width={config["stroke-width"]} """ + f"""-o ../../{config["directory"]}/{item["name"]}.svg margin={config["stroke-width"]/2} height=1000 """ + ) -print(json.dumps(results)) \ No newline at end of file + result = subprocess.check_output( + CMD, + shell=True, + stderr=subprocess.STDOUT + ) + + for line in result.decode("utf-8").split("\n"): + if "Bounds:" in line: + coords = list(map(float, line[7:].strip().split(","))) + print(coords) + height = coords[3] - coords[1] + height *= 1000 / (1000 - config["stroke-width"]) # accounts for the margin + results.append([item["name"], height]) + + print(results) diff --git a/scripts/mapshaper/straits.json b/scripts/mapshaper/straits.json index 25ed9685..07bbc70f 100644 --- a/scripts/mapshaper/straits.json +++ b/scripts/mapshaper/straits.json @@ -2,6 +2,7 @@ "name": "Straits", "directory": "/media/naturals/straits/", "shapefile": "E:/macrovision/mapshaper/straits/ne_10m_land.shp", + "mode": "bounding-boxes", "items": [ { "name": "Strait of Dover", diff --git a/scripts/mapshaper/us-interstates.json b/scripts/mapshaper/us-interstates.json new file mode 100644 index 00000000..b8572f07 --- /dev/null +++ b/scripts/mapshaper/us-interstates.json @@ -0,0 +1,9 @@ +{ + "name": "US Interstates", + "directory": "/media/naturals/us-interstates", + "shapefile": "E:/macrovision/mapshaper/us-roads/ne_10m_roads_north_america.shp", + "mode": "filter", + "base-filter": "this.properties.prefix == 'I' && this.properties.class == 'Interstate'", + "stroke-width": 10, + "items": [{"name": "I-2", "filter": "this.properties.number == 2"}, {"name": "I-4", "filter": "this.properties.number == 4"}, {"name": "I-5", "filter": "this.properties.number == 5"}, {"name": "I-8", "filter": "this.properties.number == 8"}, {"name": "I-10", "filter": "this.properties.number == 10"}, {"name": "I-11", "filter": "this.properties.number == 11"}, {"name": "I-12", "filter": "this.properties.number == 12"}, {"name": "I-14", "filter": "this.properties.number == 14"}, {"name": "I-15", "filter": "this.properties.number == 15"}, {"name": "I-16", "filter": "this.properties.number == 16"}, {"name": "I-17", "filter": "this.properties.number == 17"}, {"name": "I-19", "filter": "this.properties.number == 19"}, {"name": "I-20", "filter": "this.properties.number == 20"}, {"name": "I-22", "filter": "this.properties.number == 22"}, {"name": "I-24", "filter": "this.properties.number == 26"}, {"name": "I-27", "filter": "this.properties.number == 27"}, {"name": "I-29", "filter": "this.properties.number == 29"}, {"name": "I-30", "filter": "this.properties.number == 30"}, {"name": "I-31", "filter": "this.properties.number == 31"}, {"name": "I-35", "filter": "this.properties.number == 35"}, {"name": "I-37", "filter": "this.properties.number == 37"}, {"name": "I-39", "filter": "this.properties.number == 39"}, {"name": "I-40", "filter": "this.properties.number == 40"}, {"name": "I-41", "filter": "this.properties.number == 41"}, {"name": "I-43", "filter": "this.properties.number == 43"}, {"name": "I-44", "filter": "this.properties.number == 44"}, {"name": "I-45", "filter": "this.properties.number == 45"}, {"name": "I-49", "filter": "this.properties.number == 49"}, {"name": "I-55", "filter": "this.properties.number == 55"}, {"name": "I-57", "filter": "this.properties.number == 57"}, {"name": "I-59", "filter": "this.properties.number == 59"}, {"name": "I-64", "filter": "this.properties.number == 64"}, {"name": "I-65", "filter": "this.properties.number == 65"}, {"name": "I-66", "filter": "this.properties.number == 66"}, {"name": "I-66", "filter": "this.properties.number == 66"}, {"name": "I-68", "filter": "this.properties.number == 68"}, {"name": "I-69", "filter": "this.properties.number == 69"}, {"name": "I-70", "filter": "this.properties.number == 70"}, {"name": "I-71", "filter": "this.properties.number == 71"}, {"name": "I-72", "filter": "this.properties.number == 72"}, {"name": "I-73", "filter": "this.properties.number == 73"}, {"name": "I-74", "filter": "this.properties.number == 74"}, {"name": "I-75", "filter": "this.properties.number == 75"}, {"name": "I-76", "filter": "this.properties.number == 76"}, {"name": "I-76", "filter": "this.properties.number == 76"}, {"name": "I-77", "filter": "this.properties.number == 77"}, {"name": "I-78", "filter": "this.properties.number == 78"}, {"name": "I-79", "filter": "this.properties.number == 79"}, {"name": "I-80", "filter": "this.properties.number == 80"}, {"name": "I-81", "filter": "this.properties.number == 81"}, {"name": "I-82", "filter": "this.properties.number == 82"}, {"name": "I-83", "filter": "this.properties.number == 83"}, {"name": "I-84", "filter": "this.properties.number == 84"}, {"name": "I-84", "filter": "this.properties.number == 84"}, {"name": "I-85", "filter": "this.properties.number == 85"}, {"name": "I-86", "filter": "this.properties.number == 86"}, {"name": "I-86", "filter": "this.properties.number == 86"}, {"name": "I-87", "filter": "this.properties.number == 87"}, {"name": "I-87", "filter": "this.properties.number == 87"}, {"name": "I-88", "filter": "this.properties.number == 88"}, {"name": "I-88", "filter": "this.properties.number == 88"}, {"name": "I-89", "filter": "this.properties.number == 89"}, {"name": "I-90", "filter": "this.properties.number == 90"}, {"name": "I-91", "filter": "this.properties.number == 91"}, {"name": "I-93", "filter": "this.properties.number == 93"}, {"name": "I-94", "filter": "this.properties.number == 94"}, {"name": "I-95", "filter": "this.properties.number == 95"}, {"name": "I-96", "filter": "this.properties.number == 96"}, {"name": "I-97", "filter": "this.properties.number == 97"}, {"name": "I-99", "filter": "this.properties.number == 99"}] +} \ No newline at end of file