Workflow for flotting GPS data over map background

The workflow for plotting GPS data over a map background with a given projection is pretty common. However, I did not find any tutorial or documentation about it. https://juliageo.org/ mentions many packages to deal with this kind of data but all deal with specific part of the job.
These examples (1, 2) look like what I’m looking for but deal with python bindings. Any pointer?

If you can share an example data set we can try to help you. If you are after a pure Julia experience, check the GeoStats.jl stack. It contains all sorts of visualizations of geospatial data with a consistent interface: [ANN] Announcing Meshes.jl - #33 by juliohm

1 Like

I’m planning to plot this open data: https://g1-stats.axiom-team.fr/data/geoloc-members.json. Here is a detailed example workflow that could be automatized:

  • download geo data
  • download vector objects like country boundaries, main cities boundaries
  • plot one on top of the other with custom colors
  • repeat plot for many frames to produce an animation

I’ll explore GeoStats.

PS:
these data can already be visualized in browser at this link: WorldWotMap Ğ1
but I wish to fit it in my Julia workflow.

First try to load the data with GeoJSON.jl or alternative package. At the end you should have a table with a geometry column. This table could then be plotted directly.

For the country boundaries, etc. You can use GeoTables.jl directly to download any region in the world. The link I shared above has examples.

Thanks for GeoTables utility which helps automating the download of shapefile!

In the example, you’re plotting the geo data using MeshViz. I don’t feel it’s the good way to go to display vectorial data (why would you like tho turn them to a mesh?). Plus I get a crash with this stacktrace:

julia> viz(FRA.geometry)
Illegal inttoptr
          %269 = ptrtoint [1 x [1 x [2 x double]]] addrspace(13)* %259 to i64, !dbg !264
Illegal inttoptr
          %270 = inttoptr i64 %269 to {} addrspace(10)*, !dbg !264

signal (6): Abandon
in expression starting at REPL[31]:1
gsignal at /usr/bin/../lib/libc.so.6 (unknown line)
abort at /usr/bin/../lib/libc.so.6 (unknown line)
unknown function (ip: 0x7f84c8a8a333)
_ZN4llvm13FPPassManager13runOnFunctionERNS_8FunctionE at /usr/bin/../lib/julia/../libLLVM-11.so (unknown line)
_ZN4llvm13FPPassManager11runOnModuleERNS_6ModuleE at /usr/bin/../lib/julia/../libLLVM-11.so (unknown line)
_ZN4llvm6legacy15PassManagerImpl3runERNS_6ModuleE at /usr/bin/../lib/julia/../libLLVM-11.so (unknown line)
unknown function (ip: 0x7f84c8b95a2c)
_ZN4llvm3orc14IRCompileLayer4emitENS0_29MaterializationResponsibilityENS0_16ThreadSafeModuleE at /usr/bin/../lib/julia/../libLLVM-11.so (unknown line)
_ZN4llvm3orc31BasicIRLayerMaterializationUnit11materializeENS0_29MaterializationResponsibilityE at /usr/bin/../lib/julia/../libLLVM-11.so (unknown line)
unknown function (ip: 0x7f84c55aaaff)
unknown function (ip: 0x7f84c55aac5d)
_ZN4llvm3orc16ExecutionSession17runOutstandingMUsEv at /usr/bin/../lib/julia/../libLLVM-11.so (unknown line)
_ZN4llvm3orc16ExecutionSession6lookupENS0_10LookupKindERKSt6vectorISt4pairIPNS0_8JITDylibENS0_19JITDylibLookupFlagsEESaIS8_EENS0_15SymbolLookupSetENS0_11SymbolStateENS_15unique_functionIFvNS_8ExpectedINS_8DenseMapINS0_15SymbolStringPtrENS_18JITEvaluatedSymbolENS_12DenseMapInfoISI_EENS_6detail12DenseMapPairISI_SJ_EEEEEEEEESt8functionIFvRKNSH_IS6_NS_8DenseSetISI_SL_EENSK_IS6_EENSN_IS6_SV_EEEEEE at /usr/bin/../lib/julia/../libLLVM-11.so (unknown line)
_ZN4llvm3orc16ExecutionSession6lookupERKSt6vectorISt4pairIPNS0_8JITDylibENS0_19JITDylibLookupFlagsEESaIS7_EERKNS0_15SymbolLookupSetENS0_10LookupKindENS0_11SymbolStateESt8functionIFvRKNS_8DenseMapIS5_NS_8DenseSetINS0_15SymbolStringPtrENS_12DenseMapInfoISK_EEEENSL_IS5_EENS_6detail12DenseMapPairIS5_SN_EEEEEE at /usr/bin/../lib/julia/../libLLVM-11.so (unknown line)
_ZN4llvm3orc16ExecutionSession6lookupERKSt6vectorISt4pairIPNS0_8JITDylibENS0_19JITDylibLookupFlagsEESaIS7_EENS0_15SymbolStringPtrENS0_11SymbolStateE at /usr/bin/../lib/julia/../libLLVM-11.so (unknown line)
_ZN4llvm3orc16ExecutionSession6lookupENS_8ArrayRefIPNS0_8JITDylibEEENS0_15SymbolStringPtrENS0_11SymbolStateE at /usr/bin/../lib/julia/../libLLVM-11.so (unknown line)
_ZN4llvm3orc16ExecutionSession6lookupENS_8ArrayRefIPNS0_8JITDylibEEENS_9StringRefENS0_11SymbolStateE at /usr/bin/../lib/julia/../libLLVM-11.so (unknown line)
unknown function (ip: 0x7f84c8b99544)
unknown function (ip: 0x7f84c8b9b22b)
unknown function (ip: 0x7f84c8b9c5f2)
unknown function (ip: 0x7f84c8b9dab0)
unknown function (ip: 0x7f84c8b1670f)
jl_apply_generic at /usr/bin/../lib/julia/libjulia-internal.so.1 (unknown line)
iterate at ./generator.jl:47 [inlined]
collect at ./array.jl:678
unknown function (ip: 0x7f84507b44b1)
bridge at /home/hugo/.julia/packages/Meshes/5SpQw/src/polytopes.jl:173
unknown function (ip: 0x7f84507b41a1)
unknown function (ip: 0x7f84507ae4c6)
unknown function (ip: 0x7f84507ae490)
|> at ./operators.jl:858 [inlined]
discretize at /home/hugo/.julia/packages/Meshes/5SpQw/src/discretization.jl:25
#195 at /home/hugo/.julia/packages/Meshes/5SpQw/src/discretization.jl:20 [inlined]
MappingRF at ./reduce.jl:93 [inlined]
_foldl_impl at ./reduce.jl:58
foldl_impl at ./reduce.jl:48 [inlined]
mapfoldl_impl at ./reduce.jl:44 [inlined]
#mapfoldl#214 at ./reduce.jl:160 [inlined]
mapfoldl at ./reduce.jl:160 [inlined]
#mapreduce#218 at ./reduce.jl:287 [inlined]
mapreduce at ./reduce.jl:287 [inlined]
discretize at /home/hugo/.julia/packages/Meshes/5SpQw/src/discretization.jl:19 [inlined]
triangulate at /home/hugo/.julia/packages/MeshViz/GpoD2/src/collection.jl:21 [inlined]
_broadcast_getindex_evalf at ./broadcast.jl:648 [inlined]
_broadcast_getindex at ./broadcast.jl:621 [inlined]
getindex at ./broadcast.jl:575 [inlined]
copy at ./broadcast.jl:922 [inlined]
materialize at ./broadcast.jl:883
unknown function (ip: 0x7f84507aee21)
plot! at /home/hugo/.julia/packages/MeshViz/GpoD2/src/collection.jl:40
unknown function (ip: 0x7f845401b1d1)
plot! at /home/hugo/.julia/packages/Makie/u02af/src/interfaces.jl:815
#plot!#218 at /home/hugo/.julia/packages/Makie/u02af/src/interfaces.jl:642 [inlined]
plot!##kw at /home/hugo/.julia/packages/Makie/u02af/src/interfaces.jl:641
unknown function (ip: 0x7f8454015f66)
unknown function (ip: 0x7f84c8b26f24)
#viz!#2 at /home/hugo/.julia/packages/Makie/u02af/src/recipes.jl:19
unknown function (ip: 0x7f84c8b26f24)
viz!##kw at /home/hugo/.julia/packages/Makie/u02af/src/recipes.jl:19
plot! at /home/hugo/.julia/packages/MeshViz/GpoD2/src/fallbacks.jl:21
plot! at /home/hugo/.julia/packages/Makie/u02af/src/interfaces.jl:787
unknown function (ip: 0x7f845400f5ea)
#plot!#222 at /home/hugo/.julia/packages/Makie/u02af/src/interfaces.jl:698
plot!##kw at /home/hugo/.julia/packages/Makie/u02af/src/interfaces.jl:667 [inlined]
#plot#934 at /home/hugo/.julia/packages/Makie/u02af/src/figureplotting.jl:28
plot at /home/hugo/.julia/packages/Makie/u02af/src/figureplotting.jl:18 [inlined]
#viz#1 at /home/hugo/.julia/packages/Makie/u02af/src/recipes.jl:15
unknown function (ip: 0x7f8453fda2b6)
viz at /home/hugo/.julia/packages/Makie/u02af/src/recipes.jl:15
unknown function (ip: 0x7f8453fcf7d5)
unknown function (ip: 0x7f84c8b30115)
unknown function (ip: 0x7f84c8b2fcd5)
unknown function (ip: 0x7f84c8b308d0)
unknown function (ip: 0x7f84c8b313d0)
unknown function (ip: 0x7f84c8b4c5c7)
unknown function (ip: 0x7f84c8b4d257)
jl_toplevel_eval_in at /usr/bin/../lib/julia/libjulia-internal.so.1 (unknown line)
unknown function (ip: 0x7f84b74ac1a0)
unknown function (ip: 0x7f84b74ac72b)
unknown function (ip: 0x7f84b74acd0d)
unknown function (ip: 0x7f84b74b94d6)
unknown function (ip: 0x7f84b74b9598)
unknown function (ip: 0x7f84b771c448)
unknown function (ip: 0x7f84b771c4e8)
jl_f__call_latest at /usr/bin/../lib/julia/libjulia-internal.so.1 (unknown line)
unknown function (ip: 0x7f84b76c0e78)
unknown function (ip: 0x7f84b76d9300)
unknown function (ip: 0x7f84b76e49ec)
unknown function (ip: 0x7f84b76e4b55)
unknown function (ip: 0x7f84c8b6f72e)
repl_entrypoint at /usr/bin/../lib/julia/libjulia-internal.so.1 (unknown line)
main at julia (unknown line)
__libc_start_main at /usr/bin/../lib/libc.so.6 (unknown line)
_start at julia (unknown line)
Allocations: 126602262 (Pool: 126546939; Big: 55323); GC: 159
Abandon (core dumped)

Vectorial data is geometric data, and in order to fill it colors you will need to create a mesh. This is what plotting libraries do behind the scenes and is exactly what is done in MeshViz.jl

This issue is unrelated to our stack. Make sure you have a working Makie.jl installation in your system. The latest version is assumed, which I think is Makie.jl 0.13 or something.

You mean, to do plots like this?
https://www.google.com/search?source=univ&tbm=isch&q=GPS+vectors+GMT&client=firefox-b-d&sa=X&ved=2ahUKEwj6ksjX5oXxAhUvx4UKHY4iAgcQjJkEegQIFRAB&biw=1309&bih=689

GMT.jl

1 Like

I thought that plotting libraries did some kind of polygon filling algorithm (counting crosses) when producing a raster image, did not know that they used mesh internally.

Makie seems correctly installed:

(@v1.6) pkg> status Makie
      Status `~/.julia/environments/v1.6/Project.toml`
  [ee78f7c6] Makie v0.13.12

@joa-quim, not plotting vectors on a map background, but interpreting vector data (like roads and buildings) to plot them in a raster way.

Well all plots shown in the links of your first post can be done with GMT

1 Like

@HugoTrentesaux it worked fine for me:

julia> FRA = GeoTables.gadm("FRA", children=true)
13 GeoTable{2,Float64}
  variables (rank 2)
    └─CC_1 (String)
    └─ENGTYPE_1 (String)
    └─GID_0 (String)
    └─GID_1 (String)
    └─HASC_1 (String)
    └─NAME_0 (String)
    └─NAME_1 (String)
    └─NL_NAME_1 (String)
    └─TYPE_1 (String)
    └─VARNAME_1 (String)
  domain: 13 GeometrySet{2,Float64}

julia> viz(FRA.geometry, decimation=0.01)

2 Likes

It’s strange. I ran Makie tests successfully:

(@v1.6) pkg> test Makie
# [...]
Test Summary: | Pass  Total
Record tests  |  112    112

Test Summary: | Pass  Total
Unit tests    |  625    625

But viz stills give me this stacktrace.

I’ll have a look at GMT too :slight_smile:

I am using GLMakie.jl, maybe you are using another backend?

juliohm : My first install of Makie is as a dependency of MeshViz. I did not change anything. It failed out of the box :see_no_evil:

joa-quim : GMT fails at loading maps trough ftp. I’d rather avoid dealing with this mess.

GMT fails at loading maps trough ftp

grdimage("https://www.researchgate.net/profile/Ayca-Cirmik/publication/331309175/figure/fig1/AS:730109086531601@1551082979853/GPS-velocities-and-their-95-confidence-ellipses-in-a-Eurasia-fixed-reference-frame.png", frame=:none, show=1)

Try to install GLMakie.jl instead of Makie.jl and things should work.

1 Like

Installing gives me the same stacktrace. Should I activate it somehow? I do not find it on GLMakie readme.

No you should just import it as in the examples. Perhaps you have older versions of other packages installed. Try to install in a fresh environment. ] activate @myenv

Fresh environment and following code still gives me the same stacktrace.

using GeoTables, MeshViz
import GLMakie
FRA = GeoTables.gadm("FRA", children=true)
viz(FRA.geometry) # crashes julia

I’ll look VegaLite and GeoMakie.

Please share your environment ] status -m. GeoMakie is outdated and VegaLite has a separate pipeline, you won’t be able to plot GeoTables data directly with it. They have a different method for plotting shape files.

1 Like

(@v1.6) pkg> status -m returns:

Hidden
(@v1.6) pkg> status -m
      Status `~/.julia/environments/v1.6/Manifest.toml`
  [621f4979] AbstractFFTs v1.0.1
  [1520ce14] AbstractTrees v0.3.4
  [79e6a3ab] Adapt v3.3.1
  [27a7e980] Animations v0.4.1
  [c9ce4bd3] ArchGDAL v0.6.0
  [dce04be8] ArgCheck v2.1.0
  [4fba245c] ArrayInterface v3.1.17
  [77b51b56] AverageShiftedHistograms v0.8.6
  [13072b0f] AxisAlgorithms v1.0.0
  [198e06fe] BangBang v0.3.30
  [9718e550] Baselet v0.1.1
  [b99e7846] BinaryProvider v0.5.10
  [fa961155] CEnum v0.4.1
  [336ed68f] CSV v0.8.5
  [324d7699] CategoricalArrays v0.10.0
  [d360d2e6] ChainRulesCore v0.10.2
  [7a955b69] CircularArrays v1.2.0
  [944b1d66] CodecZlib v0.7.0
  [a2cac450] ColorBrewer v0.4.0
  [35d6a980] ColorSchemes v3.12.1
  [3da002f7] ColorTypes v0.10.12
  [c3611d14] ColorVectorSpace v0.9.5
  [5ae59095] Colors v0.12.8
  [861a8166] Combinatorics v1.0.2
  [bbf7d656] CommonSubexpressions v0.3.0
  [34da2185] Compat v3.30.0
  [a33af91c] CompositionsBase v0.1.0
  [8f4d0f93] Conda v1.5.2
  [187b0558] ConstructionBase v1.2.1
  [d38c429a] Contour v0.5.7
  [adafc99b] CpuId v0.3.0
  [a8cc5b0e] Crayons v4.0.4
  [75c7ada1] DBFTables v0.2.3
  [9a962f9c] DataAPI v1.6.0
  [124859b0] DataDeps v0.7.7
  [864edb3b] DataStructures v0.18.9
  [e2d170a0] DataValueInterfaces v1.0.0
  [e7dc6d0d] DataValues v0.4.13
  [244e2a9f] DefineSingletons v0.1.1
  [ab46fb84] DensityRatioEstimation v0.4.3
  [85a47980] Dictionaries v0.3.8
  [163ba53b] DiffResults v1.0.3
  [b552c78f] DiffRules v1.0.2
  [3c3547ce] DiskArrays v0.2.9
  [b4f34e82] Distances v0.10.3
  [31c24e10] Distributions v0.25.2
  [ffbed154] DocStringExtensions v0.8.4
  [497a8b3b] DoubleFloats v1.1.22
  [da5c29d0] EllipsisNotation v1.1.0
  [e2ba6199] ExprTools v0.1.3
  [8f5d6c58] EzXML v1.1.0
  [c87230d0] FFMPEG v0.4.1
  [7a1cc6ca] FFTW v1.4.1
  [5789e2e9] FileIO v1.9.1
  [8fc22ac5] FilePaths v0.8.3
  [48062228] FilePathsBase v0.9.10
  [1a297f60] FillArrays v0.11.7
  [6a86dc24] FiniteDiff v2.8.0
  [53c48c17] FixedPointNumbers v0.8.4
  [59287772] Formatting v0.4.2
  [f6369f11] ForwardDiff v0.10.18
  [b38be410] FreeType v4.0.0
  [663a7486] FreeTypeAbstraction v0.9.1
  [a8dd9ffe] GADM v0.2.1
  [add2ef01] GDAL v1.2.2
  [f7f18e0c] GLFW v3.4.1
  [e9467ef8] GLMakie v0.3.3
  [5752ebe1] GMT v0.33.0
  [14197337] GenericLinearAlgebra v0.2.5
  [c145ed77] GenericSchur v0.5.0
  [7472b188] GeoClustering v0.1.4
  [a4aa24f8] GeoEstimation v0.7.2
  [68eda718] GeoFormatTypes v0.3.0
  [cf35fbd7] GeoInterface v0.5.5
  [61d90e0f] GeoJSON v0.5.1
  [90c4468e] GeoLearning v0.1.4
  [220efe8a] GeoSimulation v0.3.6
  [dcc97b0b] GeoStats v0.25.1
  [323cb8eb] GeoStatsBase v0.21.8
  [e502b557] GeoTables v0.1.5
  [5c1252a2] GeometryBasics v0.3.12
  [a2bd30eb] Graphics v1.1.0
  [3955a311] GridLayoutBase v0.5.4
  [42e2da0e] Grisu v1.0.2
  [708ec375] Gumbo v0.8.0
  [cd3eb016] HTTP v0.9.9
  [615f187c] IfElse v0.1.0
  [a09fc81d] ImageCore v0.9.0
  [82e4d734] ImageIO v0.5.5
  [313cdc1a] Indexing v1.1.1
  [9b13fd28] IndirectArrays v0.5.1
  [83e8ac13] IniFile v0.5.0
  [22cec73e] InitialValues v0.2.10
  [a98d9a8b] Interpolations v0.13.2
  [8197267c] IntervalSets v0.5.3
  [d8418881] Intervals v1.5.0
  [f1662d9f] Isoband v0.1.1
  [c8e1da08] IterTools v1.3.0
  [1c8ee90f] IterableTables v1.0.0
  [82899510] IteratorInterfaceExtensions v1.0.0
  [692b3bcd] JLLWrappers v1.3.0
  [682c06a0] JSON v0.21.1
  [0f8b85d8] JSON3 v1.8.2
  [7d188eb4] JSONSchema v0.3.3
  [5ab0869b] KernelDensity v0.6.3
  [d293930c] KrigingEstimators v0.7.5
  [7f8f8fb0] LearnBase v0.4.1
  [d3d80556] LineSearches v7.1.1
  [2ab3a3ac] LogExpFunctions v0.2.4
  [30fc2ffe] LossFunctions v0.7.0
  [e80e1ace] MLJModelInterface v1.1.0
  [1914dd2f] MacroTools v0.5.6
  [ee78f7c6] Makie v0.13.12
  [dbb5928d] MappedArrays v0.4.0
  [7eb4fadd] Match v1.1.0
  [739be429] MbedTLS v1.0.3
  [7269a6da] MeshIO v0.4.7
  [9ecf9c4f] MeshViz v0.1.3
  [eacbb407] Meshes v0.16.4
  [128add7d] MicroCollections v0.1.0
  [e1d29d7a] Missings v0.4.5
  [78c3b35d] Mocking v0.7.1
  [66fc600b] ModernGL v1.1.2
  [e94cdb99] MosaicViews v0.3.3
  [d8a4904e] MutableArithmetics v0.2.19
  [d41bc354] NLSolversBase v7.8.0
  [77ba4419] NaNMath v0.3.5
  [b8a86587] NearestNeighbors v0.4.8
  [f09324ee] Netpbm v1.0.2
  [2bd173c7] NodeJS v1.3.0
  [4d1e1d77] Nullables v1.0.0
  [510215fc] Observables v0.4.0
  [6fe1bfb0] OffsetArrays v1.9.2
  [429524aa] Optim v1.3.0
  [bac558e1] OrderedCollections v1.4.1
  [90014a1f] PDMats v0.11.0
  [f57f5aa1] PNGFiles v0.3.7
  [19eb6ba3] Packing v0.4.1
  [5432bcbf] PaddedViews v0.5.8
  [d96e819e] Parameters v0.12.2
  [69de0a69] Parsers v1.1.0
  [eebad327] PkgVersion v0.1.1
  [995b91a9] PlotUtils v1.0.10
  [e61b41b6] PointPatterns v0.3.8
  [647866c9] PolygonOps v0.1.1
  [f27b6e38] Polynomials v2.0.12
  [2dfb63ee] PooledArrays v1.2.1
  [85a6dd25] PositiveFactorizations v0.2.4
  [21216c6a] Preferences v1.2.2
  [92933f4c] ProgressMeter v1.7.1
  [1fd47b50] QuadGK v2.4.1
  [be4d8f0f] Quadmath v0.5.5
  [c84ed2f1] Ratios v0.4.0
  [3cdcf5f2] RecipesBase v1.1.1
  [189a3867] Reexport v1.1.0
  [74f56ac7] ReferenceFrameRotations v1.0.0
  [ae029012] Requires v1.1.3
  [79098fc4] Rmath v0.7.0
  [321657f4] ScientificTypes v1.1.2
  [91c51154] SentinelArrays v1.3.2
  [efcf1570] Setfield v0.7.0
  [65257c39] ShaderAbstractions v0.2.6
  [8e980c4a] Shapefile v0.7.1
  [992d4aef] Showoff v1.0.3
  [73760f76] SignedDistanceFields v0.4.0
  [699a6c99] SimpleTraits v0.9.3
  [a2af1166] SortingAlgorithms v1.0.0
  [276daf66] SpecialFunctions v1.5.1
  [03a91e81] SplitApplyCombine v1.1.4
  [171d559e] SplittablesBase v0.1.13
  [cae243ae] StackViews v0.1.1
  [aedffcd0] Static v0.2.5
  [90137ffa] StaticArrays v1.2.2
  [64bff920] StatisticalTraits v1.1.0
  [82ae8749] StatsAPI v1.0.0
  [2913bbd2] StatsBase v0.33.8
  [4c63d2b9] StatsFuns v0.9.8
  [09ab397b] StructArrays v0.5.1
  [856f2bd8] StructTypes v1.7.2
  [ab02a1b2] TableOperations v1.0.0
  [5e66a065] TableShowUtils v0.2.5
  [3783bdb8] TableTraits v1.0.1
  [382cd787] TableTraitsUtils v1.0.1
  [bd369af6] Tables v1.4.3
  [62fd8b95] TensorCore v0.1.1
  [e0df1984] TextParse v1.0.1
  [731e570b] TiffImages v0.3.2
  [f269a46b] TimeZones v1.5.5
  [3bb67fe8] TranscodingStreams v0.9.5
  [28d57a85] Transducers v0.4.65
  [9d95f2ec] TypedTables v1.2.4
  [30578b45] URIParser v0.4.1
  [5c2747f8] URIs v1.3.0
  [3a884ed6] UnPack v1.0.2
  [1cfade01] UnicodeFun v0.4.1
  [b8865327] UnicodePlots v1.3.0
  [04a0146e] Variography v0.12.8
  [239c3e63] Vega v2.3.0
  [0ae4a718] VegaDatasets v2.1.1
  [112f6efa] VegaLite v2.6.0
  [81def892] VersionParsing v1.2.0
  [ea10d353] WeakRefStrings v0.6.2
  [efce3f68] WoodburyMatrices v0.5.3
  [a5390f91] ZipFile v0.9.3
  [700de1a5] ZygoteRules v0.2.1
  [6e34b625] Bzip2_jll v1.0.8+0
  [83423d85] Cairo_jll v1.16.1+0
  [5ae413db] EarCut_jll v2.1.5+1
  [2e619515] Expat_jll v2.2.10+0
  [b22a6f82] FFMPEG_jll v4.4.0+0
  [f5851436] FFTW_jll v3.3.9+7
  [a3f928ae] Fontconfig_jll v2.13.93+0
  [d7e528f0] FreeType2_jll v2.10.4+0
  [559328eb] FriBidi_jll v1.0.10+0
  [a7073274] GDAL_jll v300.202.100+0
  [d604d12d] GEOS_jll v3.9.0+0
  [0656b61e] GLFW_jll v3.3.5+0
  [78b55507] Gettext_jll v0.21.0+0
  [7746bdde] Glib_jll v2.68.1+0
  [3b182d85] Graphite2_jll v1.3.14+0
  [528830af] Gumbo_jll v0.10.1+1
  [2e76f6c2] HarfBuzz_jll v2.8.1+0
  [1d5cc7b8] IntelOpenMP_jll v2018.0.3+2
  [aacddb02] JpegTurbo_jll v2.1.0+0
  [c1c5ebd0] LAME_jll v3.100.1+0
  [dd4b983a] LZO_jll v2.10.1+0
  [e9f186c6] Libffi_jll v3.2.2+0
  [d4300ac3] Libgcrypt_jll v1.8.7+0
  [7e76a0d4] Libglvnd_jll v1.3.0+3
  [7add5ba3] Libgpg_error_jll v1.42.0+0
  [94ce4f54] Libiconv_jll v1.16.1+0
  [4b2f31a3] Libmount_jll v2.35.0+0
  [89763e89] Libtiff_jll v4.3.0+0
  [38a345b3] Libuuid_jll v2.36.0+0
  [d3a379c0] LittleCMS_jll v2.9.0+0
  [856f044c] MKL_jll v2021.1.1+1
  [e7412a2a] Ogg_jll v1.3.5+0
  [643b3616] OpenJpeg_jll v2.3.1+0
  [458c3c95] OpenSSL_jll v1.1.10+0
  [efe28fd5] OpenSpecFun_jll v0.5.5+0
  [91d4177d] Opus_jll v1.3.2+0
  [2f80f16e] PCRE_jll v8.44.0+0
  [58948b4f] PROJ_jll v700.202.100+0
  [30392449] Pixman_jll v0.40.1+0
  [f50d1b31] Rmath_jll v0.3.0+0
  [76ed43ae] SQLite_jll v3.35.5+0
  [02c8fc9c] XML2_jll v2.9.12+0
  [aed1982a] XSLT_jll v1.1.34+0
  [4f6342f7] Xorg_libX11_jll v1.6.9+4
  [0c0b7dd1] Xorg_libXau_jll v1.0.9+4
  [935fb764] Xorg_libXcursor_jll v1.2.0+4
  [a3789734] Xorg_libXdmcp_jll v1.1.3+4
  [1082639a] Xorg_libXext_jll v1.3.4+4
  [d091e8ba] Xorg_libXfixes_jll v5.0.3+4
  [a51aa0fd] Xorg_libXi_jll v1.7.10+4
  [d1454406] Xorg_libXinerama_jll v1.1.4+4
  [ec84b674] Xorg_libXrandr_jll v1.5.2+4
  [ea2f1a96] Xorg_libXrender_jll v0.9.10+4
  [14d82f49] Xorg_libpthread_stubs_jll v0.1.0+3
  [c7cfdc94] Xorg_libxcb_jll v1.13.0+3
  [c5fb5394] Xorg_xtrans_jll v1.4.0+3
  [3161d3a3] Zstd_jll v1.5.0+0
  [9a68df92] isoband_jll v0.2.2+0
  [0ac62f75] libass_jll v0.15.1+0
  [f638f0a6] libfdk_aac_jll v2.0.2+0
  [06c338fa] libgeotiff_jll v1.6.0+1
  [b53b4c65] libpng_jll v1.6.38+0
  [f27f6e37] libvorbis_jll v1.3.7+0
  [1270edf5] x264_jll v2021.5.5+0
  [dfaa095f] x265_jll v3.5.0+0
  [0dad84c5] ArgTools
  [56f22d72] Artifacts
  [2a0f44e3] Base64
  [ade2ca70] Dates
  [8bb1440f] DelimitedFiles
  [8ba89e20] Distributed
  [f43a241f] Downloads
  [9fa8497b] Future
  [b77e0a4c] InteractiveUtils
  [4af54fe1] LazyArtifacts
  [b27032c2] LibCURL
  [76f85450] LibGit2
  [8f399da3] Libdl
  [37e2e46d] LinearAlgebra
  [56ddb016] Logging
  [d6f4376e] Markdown
  [a63ad114] Mmap
  [ca575930] NetworkOptions
  [44cfe95a] Pkg
  [de0858da] Printf
  [3fa0cd96] REPL
  [9a3f8284] Random
  [ea8e919c] SHA
  [9e88b42a] Serialization
  [1a1011a3] SharedArrays
  [6462fe0b] Sockets
  [2f01184e] SparseArrays
  [10745b16] Statistics
  [4607b0f0] SuiteSparse
  [fa267f1f] TOML
  [a4e569a6] Tar
  [8dfed614] Test
  [cf7118a7] UUIDs
  [4ec0a83e] Unicode
  [e66e0078] CompilerSupportLibraries_jll
  [deac9b47] LibCURL_jll
  [29816b5a] LibSSH2_jll
  [c8ffd9c3] MbedTLS_jll
  [14a3606d] MozillaCACerts_jll
  [83775a58] Zlib_jll
  [8e850ede] nghttp2_jll
  [3f19e933] p7zip_jll

(I installed other things in the meanwhile)

Maybe the best will be if I write my own library using Compose.jl :smile_cat:

That’s not what they’re saying on GitHub (GitHub - MakieOrg/GeoMakie.jl: Geographical plotting utilities for Makie.jl) :

This package is in development