On 7/15/2021 6:22 PM, Aditya Mahajan wrote:
On Thu, 15 Jul 2021, Hans Hagen wrote:
Hello ConTeXters,
I’d like to use the mp-geo Metapost package with ConTeXt to draw simple globes viewed from various directions. The package is here:
https://melusine.eu.org/syracuse/poulecl/mp-geo/
It looks like the last update was 2008 and I don’t read French, so I though my chances of getting anything to work were pretty small. However, I was
On 7/14/2021 4:43 PM, Gavin wrote: pleasantly surprised that this MWE found the mp-geo package, the necessary Metapost files in the ConTeXt installation, and the data files.
\starttext \startMPcode input mp-geo; figure(-10u,-10u,10u,10u); Mercator(3,48,30); fin; end \stopMPcode \stoptext
While all of the files were found, it did not produce a globe. Instead I got
an error complaining about an invalid character in the data files. This error is repeated for about 20 files (a small fraction of the total). I put the first error and its data file below. All the others are identical with different .dat files.
Maybe it’s just an encoding mismatch or a hidden character I can easily
delete or replace. On the other hand, maybe I shouldn't even be attempting this? 2008 is a long time ago in ConTeXt time. Feel free to tell me this project is crazy, but if you have an idea how I can make this work, I’d really appreciate it! It looks like a fun package. Looks interesting (I didn't know about it, also the surface stuff). Anyway, the message relates to scantokens not liking what gets read from a file, quite probably a missing file (I'll make it return a different message but still one needs to be aware of the fact that fiel reading in mp is kind of weird so it really expects a file).
Actually the data files are fairly simple:
no_of_points <list of coordinates>
So, it would be much simpler to read and parse it via lua rather than scantokens. Rest of the code simply determines a "view" of what to show. So, it can be a good exercise in lua-MP interface.
I was wondering about that too. I admit that I looked into maps years ago but never could find quality data files. \starttext \startluacode function mp.maptopath(filename) local t = { cycle = true } for x, y in string.gmatch(io.loaddata(filename),"%(([%+%-%d]+),([%+%-%d]+)%)") do t[#t+1] = { tonumber(x), tonumber(y) } end mp.inject.path(t) end \stopluacode \startMPpage draw lua.mp.maptopath("slovenia.dat") ; \stopMPpage \startMPpage draw lua.mp.maptopath("usa1.dat") rotated 90 ; \stopMPpage \startMPpage draw lua.mp.maptopath("usa2.dat") ; \stopMPpage \stoptext way to low quality ... we also want multiple shapes i guess .. i wonder if someone knows where to get good free data (projections are more your turf) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------