477 Commits

Author SHA1 Message Date
Justin Kunimune
8ca6a9aedf Merge branch 'master' of https://github.com/jkunimune/Map-Projections 2024-06-29 07:59:40 -07:00
Justin Kunimune
6b62a5ee0a fix Waterman projection bug
when I redefined the Waterman projection coordinates (I don't even remember when) to use four-times-larger units, I apparently missed *one* constant, and it was increasing the slope of this line between these two pieces of the Waterman face that was causing the projections at that interface to not line up.  goodness, what an asinine bug.  good on me for finding it in less than an our of its reporting, tho!
2024-06-29 07:39:47 -07:00
Justin Kunimune
f722048ab4
write that blurb 2024-05-02 07:32:57 -04:00
Justin Kunimune
b1dfeaec50
fix link in readme 2024-05-02 07:08:13 -04:00
Justin Kunimune
ce7ddeb028 build new version
new year, also!
2024-04-25 21:03:37 -04:00
Justin Kunimune
4c89fd8ffb enable extension of gores map
I can imagine this could be useful if you're making a globe and you want to minimize the visibility of the cuts.
2024-04-25 20:34:38 -04:00
Justin Kunimune
1f49c5b16f add option for number of gores
I had to adjust the projection code a little bit to account for odd numbers.
2024-04-25 20:32:38 -04:00
Justin Kunimune
9098c4d87d Miller is more common than Gall-stereographic 2024-02-10 08:49:10 -05:00
Justin Kunimune
71dd66bb2c fix issue with unicode in SVG
apparently map projections with unicode in their names create invalid SVG when using the executable (even tho it works fine when I run the source code...).  something about the encoding I gess?  I don't really understand, but it's better to escape the map projection names anyway just to be consistent with the templates that are already escaped.  I did that and now it seems fine.
2024-01-09 15:23:56 -05:00
Justin Kunimune
bd07cf8e11 improve SVG descriptions 2024-01-09 15:03:09 -05:00
Justin Kunimune
71e99191c9 I don't know when this changed 😭 2024-01-09 13:16:44 -05:00
Justin Kunimune
00c7fd9193 new blanker world map template
to complete the trifecta.  it has rivers, and no political borders.
2024-01-09 13:16:23 -05:00
Justin Kunimune
3d35c305b6 fix fed up file description 2024-01-09 13:15:10 -05:00
Justin Kunimune
b417e0ba18 fix weird coastlines
they were getting Zed by fuse_russia.
2024-01-08 22:02:03 -05:00
Justin Kunimune
990205bec6 thin lines between sub-country units
I ended up not really using the new political boundary data structure.  oh, well.
2024-01-08 21:42:44 -05:00
Justin Kunimune
793e5e8be6 refactor political map generation
I refactord the ploitical map generation.  I broke the plot_political_shapes function into two parts: the loading part (which generates a nested dictionary) and the plotting part.  this will enable me to process the data between those two steps.  I haven't gotten to that yet, but that's my next step in thinning the lines between geounits within countries.
2024-01-07 16:30:16 -05:00
Justin Kunimune
eb2834bc60 delete Population.svg
I still think this bubble plot is a good idea, but this is not the way I want to go about it and it's cluttering up the directory.  someday I'll rite a python script outside of github to modify Template provinces.svg with population bubbles.
2024-01-07 09:58:08 -05:00
Justin Kunimune
1bd58a2669 EU and united kingdoms
I enhanced the hierarchical stuff to lalow supranational entities and sub-country geounits.  now the provinces map has england, srpska, french guiana, and more.  the only issue is the borders between geounits are thick but I want them to be thin like province borders.  so that's the next step.
2024-01-07 09:55:00 -05:00
Justin Kunimune
48d1cdd839 rebuild again 2024-01-03 21:57:32 -05:00
Justin Kunimune
e1bf7086ab do not localize numbers in SVGs
SVGs only accept «0» as the zero character and «.» as the decimal separator.  when I started aggressively using String.format(), it started localizing numbers to sometimes use ⋅ and ,, tho, which of course resulted in invalid SVGs.  luckily when it *reads* doubles it seems to assume US locale.
2024-01-02 09:25:44 -10:00
Justin Kunimune
33bfa1deb9 rebuild 2023-12-30 11:01:32 -10:00
Justin Kunimune
9958526b2c keeping the old graticule as an option
after I implemented the sparse graticule thing at th epoles, I realized some people mite like to have the old graticule behavior in some situations.  I added an option to graticule.txt to do just that.  now you can set it to make the poles look however you want.
2023-12-29 16:12:57 -10:00
Justin Kunimune
e7fe536a07 Merge branch 'master' of https://github.com/jkunimune/Map-Projections 2023-12-28 22:21:02 -10:00
Justin Kunimune
59e1605016 make maps work better in Wikipedia
apparently compound CSS selectors don't work in the Wikimedia Commons' SVG renderer?  also, href isn't supported, so you have to use xlink:href.  but xlink:href is deprecated so you actually have to use both...
2023-12-28 22:20:55 -10:00
Justin Kunimune
7904ab9218
Update README.md
make it a little clear which parts use the file explorer and which use the command line.
2023-12-28 17:09:37 -05:00
Justin Kunimune
d28f65fecc "Crop at antimeridian" -> "Extend map area"
calling it "crop at antimeridian" is not accurate anymore (and hasn't been for a long time), since many map projections that use this feature do not use the antimeridian as their boundary.  also, antimeridian isn't a real word.
2023-12-27 11:02:35 -10:00
Justin Kunimune
9c1d6af752 bubble plots
I added a feature to generate a population bubble plot.  I want to make it do separate bubbles for the different provinces of big countries, but for now those bubbles are all the same size.  I need to find some good databases for those numbers.
2023-12-24 21:05:25 -10:00
Justin Kunimune
f2180c7be5 improve SVG descriptions
I realized that "110m" doesn't mean that data are precise to 110km; it means that it's suitable for 1:110M scale.  oops.  I deleted the corresponding false statements and also added a bunch of references to natural earth.
2023-12-24 20:55:15 -10:00
Justin Kunimune
e74328e014 India was in here the whole time‽
apparently I do have province borders for India and I just missd it.  that's definitely going in.
2023-12-24 20:43:29 -10:00
Justin Kunimune
4b1dc67c34 remove south africa's provinces
I was at first operating on the principle of the more resolution the better, but then I realized that South Africa is really not a big country.  23rd in population, 24th in area.  I don't know why it has provincial resolution in this dataset and argentina, mexico, algeria, DRC, saudi arabia, kazakhstan, and india don't.  but the fact that it does is slitely insulting.  I'm removing it from the provinces map because I can't imagine a situation where it would make sense to draw these lines but not the others for which I don't have data.
2023-12-23 07:03:23 -10:00
Justin Kunimune
324bc9e0b4 reposition circles many times at once
I automated the circle spacing algorithm thing a bit more, so now it's easier to do a bunch of maps at once, as I just did.
2023-12-22 18:06:51 -10:00
Justin Kunimune
769f5e5644 ISO alpha2 codes for dependencies 2023-12-22 17:46:19 -10:00
Justin Kunimune
c08553f5d4 support maps with units
I realized that the supermap has been incompatible with the mapdesignervector for some time now, ever since I set the width to 150cm, because the SVG parser didn't know how to account for units in the width and heit.  I made a simple Quantity class to keep track of the units as well as the value and now it works fine.  now, I did realize that more than just the width and heit can have units.  in principle I need to check every number I parse from the SVG for units. but I don't want to do that rite now.  I think the width and the height are the most likely numbers to have units attached, so I'm calling this fine for now.
2023-12-22 11:43:50 -10:00
Justin Kunimune
62de75cba3 clip maps to background
this is so good.  I must have thaut of this at some point in the past, but it wasn't much of an option until I added backgrounds.  the geographic content now clips to the background, so if you have a map with a lot of interruptions and there are lines that didn't get cut properly or shapes enclosing singularities such that there's gunk extending off the map, it will be invisible.  the clipping path hides it.  it looks incredible instead of always garbage!  it doesn't fix all such issues of course – there are often excess lines inside the geographic region that won't get removed by clipping.  but it gets like a lot of them.  I can't get over how much better these maps look out of the box now than they did  a year ago.
2023-12-22 11:40:33 -10:00
Justin Kunimune
1b3a8f4b3c remove unused imports
this is from when I was testing the begone line stuff.
2023-12-22 10:48:11 -10:00
Justin Kunimune
3462e23060 new version, new bugs
it feels like maybe the jar files should either automaticly build so that they're up-to-date in every commit, or I should gitignore them so that I don't need a commit just to update them.  shrug.  I gess I would have to commit to update the version number in build.xml anyway.
2023-12-21 21:54:26 -10:00
Justin Kunimune
3ffb340f31 fix AuthaGraph slider
a few commits ago, I decided to remove the power slider from the IMAGO (AuthaGraph) projection, since the original AuthaGraph wasn't technically parametirizable, and I figured I already had "TetraPower", which was the same thing but explicitly parameterized.  there were two problems with this.  one was that I forgot to remove the parameter, so the "Power" slider was still there it just didn't do anything.  the twoth was that the "TetraPower" projection differed from AuthaGraph in arrangement as well as parameterization, so I can easily imagine someone wanting to tune the scaling on the AuthaGraph projection but not being satisfied with the alternate version.  plus, "TetraPower" was buried in the "Created by Justin" section of the map projections so I wouldn't blame people for not noticing it.

thus, rather than simply deleting the slider, which would be the more straitforward fix here, I'm erring on the side of not removing functionality and putting the parameterization back on IMAGO, while also rebranding "TetraPower" as an alternate arrangement of IMAGO/AuthaGraph.
2023-12-21 21:34:58 -10:00
Justin Kunimune
98a22a7304 begone, line!
I set the political svgs to remove the divide thru russia at the antimeridian.  I'm a bit surprised I didn't try this sooner since it's just kind of an ugly erroneus line in most of my map projections.  unfortunately, the solution I found doesn't work for the physical maps.  that's a bit of a bummer for the tissot ellipse maps specificly.  however, it was most notable (and most potentially confusing) in the blank political templates, so I'm very glad that I fixd that.
2023-12-21 21:21:02 -10:00
Justin Kunimune
9912d00ae7 he, she, me, indicatrices.
I dubble-checked the terminology, and actually an indicatrix is a single circle and the plural is indicatrices.  I think I had this exact same revelation in the past, but the end result is that I was rite before.  thankfully, I did also find out that there's a preexisting non-terrible alternative, which is to simply call them Tissot's ellipses.  which is good because now I don't have to come up with my own (I was leaning toward "Tissot's indicators").  I went ahead and changed the terminology to "ellipse" everywhere in the SVGs.
2023-12-21 18:45:55 -08:00
Justin Kunimune
0ddd0609ba I don't think indicatrices is a real word.
idk how I got "Tissot's indicatrices" in my head, but this thing is called "Tissot's indicatrix".  I mean, "indicatrix" isn't a real word either but it's better than "indicatrices".
2023-12-21 18:25:42 -08:00
Justin Kunimune
c0d7abd448 clarify some SVG descriptions
also remove simplified because I think it's just a lower-resolution version of basic?  users can darn well simplify their own maps.  besides, if I wanted such a thing I could get it more effectively by just using the 110km dataset.
2023-12-21 18:19:19 -08:00
Justin Kunimune
e3e42fe636 update MapPlotter
drop Danseiji projections, add Elastic projections and Bertin projection.  the resulting graph looks different now owing to my lower-resolution laptop, so that's fun.
2023-12-21 18:16:38 -08:00
Justin Kunimune
273b4fea64 less is more
I made varius improvements to the input SVG maps.  I changed the provinces map to use 50km borders rather than 10km borders, reducing its filesize by a factor of 10.  this does unfortunately mean that I can *only* have province borders for seven or so countries, not even including argentina.  that sucks, but to be fair I really didn't need admin1 boundaries for, like, armenia.  I just wish I could have them for more like the top twenty biggest countries.  I've decided that the decrease in filesize is well worth it, tho.  25MB was just too big for an SVG, and made it rather difficult to use for practical purposes (not to mention, it was about 10% of the total program size).

I also made it so that all countries in the political maps are classed with both their ISO 3166 A3 code and their ISO 3166 A2 code, so that you can use either in the stylesheet.  it seems the A2 codes are more common, so I thaut it worth including.

I removed the circles for Cyprus No-mans-land and the Siachen Glacier.  even tho they are both decently inhabited, neither of them has any presence in international politics, so I find it very unlikely anyone using these maps will even have data to put on them.

I removed some empty parentheses that were appearing next to Palestine's name.  I fleshd out the descriptions to include more information.  and I added more comments to the CSS.
2023-12-21 12:07:56 -08:00
Justin Kunimune
8f14bc4290 back to square 8
turns out the reason it wasn't working was that I was using newer Java!  I'm a bit confused because I *thaut* I had used Java 17 or something to build this in the past, but I gess for whatever reason I've always used 8 to make the JAR and EXE files.  whatever, what matters is that it *finally* works!
2023-12-20 20:54:09 -08:00
Justin Kunimune
cf0453e606 unused imports
oops
2023-12-20 20:19:18 -08:00
Justin Kunimune
6960477da6 restyle example styles in template SVGs 2023-12-20 17:45:06 -08:00
Justin Kunimune
c7871be46b fixed EXEs
so the installers don't work; or rather you can install the program just fine but when you try to start the program you get "Class apps/MapDesignerVector not found" or whatever.  I figured out why EXEs weren't working (the version of Inno Setup) and changed it back to EXE in the hope of fixing it, but it's the same problem still.  but since that's one thing figured out I'm committing it here.
2023-12-20 17:44:40 -08:00
Justin Kunimune
56f85a35a8 remembering how to rebuild
I tried to bild the exe files for the next release and found that it didn't work.  I got confused for a really long time.  then I figured it out.  it turns out Java 17 is kind of completely different from Java 8.  I kind of wish I had stayd on Java 8, but I don't want to go back now.  also for some reason it has to be msi now not exe.  I deleted the eclipse files as well because it's outdated and has a bunch of java 8 stuff.
2023-12-19 11:08:55 -08:00
Justin Kunimune
c44b7763c5 better default image sizes
this rounding to 10 thing wasn't great, and the images were also a bit bigger than they needed to be.
2023-12-18 15:05:14 -08:00
Justin Kunimune
dcaa087cf9 FINAL VERSION OF ELASTIC PROJECTIONS
I made some final improvements to the map data files and accordingly to the inverse code.  in particular there are nans in the inverse raster now, and an extra check when returning an inverse solution from a local minimum.  it turns out there's kind of a concerning number of local minima in Elastic III, which I think means there's a concerning amount of self-intersection in the spline surface.  it makes me wonder if linear interpolation isn't just better for this one.  but I really don't want to implement two different types of interpolation, so for now this is it.
2023-12-18 15:04:52 -08:00